Dynamic header creation and flow control for a programmable communications processor, and applications thereof
First Claim
1. A method to determine whether a packet is to be transmitted by a processor, comprising:
- determining whether a size of the packet results in a bucket size parameter being above a predetermined low threshold and below a predetermined high threshold;
concatenating the packet with at least one other packet up to a maximum transmission unit size to generate a concatenated packet only if the size of the concatenated packet results in the bucket size parameter being above the predetermined low threshold and below the predetermined high threshold, otherwise sending the packet if the size of the packet results in the bucket size parameter being below the predetermined low threshold; and
sending the concatenated packet when the packet has been concatenated with the at least one other packet up to the maximum transmission unit size,wherein the bucket size parameter is a parameter that is incremented with a number of bytes in the packet excluding a number of bytes in a header of the packet, and wherein the bucket size parameter is decremented at a rate at which packets are transmitted from an output channel.
6 Assignments
0 Petitions
Accused Products
Abstract
A method, system and computer program product for creating dynamic custom headers and for controlling flow rate of Downstream External Physical layer Interface (DEPI) packets are described herein. The method comprises concatenating or fragmenting a packet descriptor of a DEPU packet based on one or more of associated packet size, maximum transmission unit, packet type, channel configuration information and flow control mode. The method further comprises creating a header for the packet based on data in a programmable header template and storing the header in a header buffer, determining whether to transmit the packet based on one of a flow meter or a maximum transmission unit size and transmitting the packet by sending the packet descriptor to an output direct memory access (DMA) controller. A flow meter flow control mode determines if a packet is to be transmitted based on packet size, bucket size, a low threshold and a high threshold. A maximum transmission unit flow control mode determines if a packet is to transmitted based on packet size and a maximum transmission unit size. The header can be customized for Packet Streaming Protocol (PSP) mode or Moving Picture Experts Group Transport Stream (MPT) mode and includes dynamic customizable fields such as User Datagram Protocol (UDP) port identification, flow identification and session identification.
16 Citations
22 Claims
-
1. A method to determine whether a packet is to be transmitted by a processor, comprising:
-
determining whether a size of the packet results in a bucket size parameter being above a predetermined low threshold and below a predetermined high threshold; concatenating the packet with at least one other packet up to a maximum transmission unit size to generate a concatenated packet only if the size of the concatenated packet results in the bucket size parameter being above the predetermined low threshold and below the predetermined high threshold, otherwise sending the packet if the size of the packet results in the bucket size parameter being below the predetermined low threshold; and sending the concatenated packet when the packet has been concatenated with the at least one other packet up to the maximum transmission unit size, wherein the bucket size parameter is a parameter that is incremented with a number of bytes in the packet excluding a number of bytes in a header of the packet, and wherein the bucket size parameter is decremented at a rate at which packets are transmitted from an output channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method to control flow of packets, each packet having a custom header created by a processor, comprising:
-
concatenating or fragmenting a packet descriptor associated with the packet based on one or more of associated packet size, maximum transmission unit, packet type, channel configuration information and flow control mode; creating a header for the packet based on data in a programmable header template and storing the header in a header buffer; determining whether to transmit the packet based on one of a flow meter flow control mode or a maximum transmission unit size flow control mode; and transmitting the packet by sending the packet descriptor to an output direct memory access (DMA) controller. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method to determine whether a packet is to be transmitted by a processor, comprising:
-
determining whether a size of the packet results in a bucket size parameter being above a predetermined low threshold and below a predetermined high threshold; concatenating the packet with at least one other packet up to a maximum transmission unit size to generate a concatenated packet only if the size of the concatenated packet results in the bucket size parameter being above the predetermined low threshold and below the predetermined high threshold, otherwise sending the packet if the size of the packet results in the bucket size parameter being below the predetermined low threshold; and sending the concatenated packet when the packet has been concatenated with the at least one other packet up to the maximum transmission unit size, wherein the bucket size parameter is a parameter that is incremented with a number of bytes in the packet excluding a number of bytes in a header of the packet, and wherein the bucket size parameter is decremented at a rate at which packets are transmitted from an output channel.
-
-
21. A method to determine whether a packet is to be transmitted by a processor, comprising:
-
determining whether a size of the packet results in a bucket size parameter being above a predetermined low threshold and below a predetermined high threshold; and concatenating the packet with at least one other packet up to a maximum transmission unit size to generate a concatenated packet only if the size of the concatenated packet results in the bucket size parameter being above the predetermined low threshold and below the predetermined high threshold, otherwise sending the packet if the size of the packet results in the bucket size parameter being below the predetermined low threshold; wherein the maximum transmission unit size is programmable via a command from a source external to the processor, and wherein the bucket size parameter is a parameter that is incremented with a number of bytes in the packet excluding a number of bytes in a header of the packet, and wherein the bucket size parameter is decremented at a rate at which packets are transmitted from an output channel.
-
-
22. A method to determine whether a packet is to be transmitted by a processor, comprising:
-
fragmenting the packet up to a maximum transmission unit size if a size of the packet is greater than the maximum transmission unit size; determining whether the size of the packet results in a bucket size parameter being above a predetermined low threshold and below a predetermined high threshold; and concatenating the packet with at least one other packet up to the maximum transmission unit size to generate a concatenated packet only if the size of the concatenated packet results in the bucket size parameter being above the predetermined low threshold and below the predetermined high threshold, otherwise sending the packet if the size of the packet results in the bucket size parameter being below the predetermined low threshold; wherein the bucket size parameter is a parameter that is incremented with a number of bytes in the packet excluding a number of bytes in a header of the packet, and wherein the bucket size parameter is decremented at a rate at which packets are transmitted from an output channel.
-
Specification