Method and apparatus for controlling the flow of variable-length packets through a multiport switch
DCFirst Claim
1. A method of controlling the flow of variable-length packets on data links connected to a multiport switch comprising steps of:
- receiving a packet that includes packet-specific header information at said multiport switch;
accessing a memory that contains forwarding information, said forwarding information including bandwidth management information;
searching said memory based on transmission control protocol, TCP, or user datagram protocol, UDP, information, and internet protocol, IP, or internet packet exchange, IPX, information found within said packet-specific header information of said packet;
locating, in said memory, forwarding information that is related to said packet;
extracting bandwidth management information from said forwarding information that is related to said packet, wherein said bandwidth management information includes a bandwidth consumption limit that is relevant to forwarding said packet;
comparing said extracted bandwidth management information to said packet;
forwarding said packet within said multiport switch when said comparison indicates that forwarding said packet will not exceed said bandwidth consumption limit; and
dropping said packet from said multiport switch or tagging said packet with an adjusted priority before forwarding of said packet within said multiport switch when said comparison indicates that forwarding said packet will exceed said bandwidth consumption limit.
7 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling the flow of variable-length packets to a multiport switch involve accessing forwarding information in a memory based at least partially on layer 4 information from a packet and then forwarding the packet only if the packet is within a bandwidth consumption limit that is specified in the forwarding information. In a preferred embodiment, a credit bucket algorithm is used to ensure that packet flows are within specified bandwidth consumption limits. The preferred method for implementing the credit bucket algorithm to control flows of packets involves first receiving a particular packet from a flow and then stripping the layer 2 header information from the packet. The layer 3 and layer 4 information from the packet is then used to look-up flow-specific forwarding and flow control information in a memory that stores a linked list of table entries that includes the fields necessary to implement the credit bucket algorithm. The credit bucket algorithm is implemented in embedded devices within an application-specific integrated circuit, allowing the control of packet flows based on the application of the flow.
305 Citations
19 Claims
-
1. A method of controlling the flow of variable-length packets on data links connected to a multiport switch comprising steps of:
-
receiving a packet that includes packet-specific header information at said multiport switch; accessing a memory that contains forwarding information, said forwarding information including bandwidth management information; searching said memory based on transmission control protocol, TCP, or user datagram protocol, UDP, information, and internet protocol, IP, or internet packet exchange, IPX, information found within said packet-specific header information of said packet; locating, in said memory, forwarding information that is related to said packet; extracting bandwidth management information from said forwarding information that is related to said packet, wherein said bandwidth management information includes a bandwidth consumption limit that is relevant to forwarding said packet; comparing said extracted bandwidth management information to said packet; forwarding said packet within said multiport switch when said comparison indicates that forwarding said packet will not exceed said bandwidth consumption limit; and dropping said packet from said multiport switch or tagging said packet with an adjusted priority before forwarding of said packet within said multiport switch when said comparison indicates that forwarding said packet will exceed said bandwidth consumption limit. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for controlling a flow of variable-length packets through a multiport switch comprising:
-
means for receiving a packet that is part of said flow of variable-length packets wherein said packet includes packet-specific header information related to layer 3 and layer 4 protocols; memory having searchable registers that store flow-specific packet forwarding information including application protocol information contained in said layer 4 protocol; means for locating, within said memory, flow-specific packet forwarding information specific to said flow of variable-length packets that said received packet is part of, based at least partially on said application protocol information; means, formed in circuitry that is specific to packet flow control, for comparing the time said received packet arrived in said switch to the time that said flow-specific packet forwarding information specific to said flow was previously accessed by another packet to determine if a pre-established time interval has expired; means, formed in circuitry that is specific to packet flow control, for comparing a credit bucket value that indicates a maximum size packet to the size of said received packet and for forwarding said received packet when the size of said received packet is less than or equal to said credit bucket value that indicates said maximum size packet, and for dropping or limiting said forwarding of said received packet when said received packet is larger than said credit bucket value that indicates said maximum size packet; and means for decrementing said credit bucket value each time a packet from said flow of variable-length packets is forwarded and for refreshing said credit bucket value back to a pre-established credit bucket value each time it is determined that said pre-established time interval has expired. - View Dependent Claims (6, 7, 8)
-
-
9. A method of controlling the flow of variable-length packets through a transmission control protocol, TCP, and internet protocols, IP, compatible multiport switch wherein said variable-length packets include layer 2, layer 3, and layer 4 header information comprising the steps of:
-
receiving a packet of a particular length within said multiport switch; stripping layer 2 header information from said packet; accessing a memory that contains flow-specific information; utilizing layer 3 and layer 4 header information from said received particular length packet to look-up flow-specific information in said accessed memory; comparing said flow-specific information to the length of said particular length packet and to a clock value that is representative of the time that said packet was received by said multiport switch; and forwarding said particular length packet through said multiport switch if the length of said particular length packet does not exceed a maximum packet length as determined by a credit bucket indicator included within said flow-specific information. - View Dependent Claims (10, 11, 12)
-
-
13. A method of controlling the flow of variable-length packets on data links connected to a multiport switch comprising steps of:
-
receiving a packet that includes packet-specific header information at said multiport switch; accessing a memory that contains forwarding information, said forwarding information including bandwidth management information; searching said memory based on said packet-specific header information of said packet; locating, in said memory, forwarding information that is related to said packet; extracting bandwidth management information from said forwarding information that is related to said packet, and isolating a time select vector that indicates significant bits of a system counter and determines a pre-established time interval, wherein said bandwidth management information includes a bandwidth consumption limit that is relevant to forwarding said packet; comparing said extracted bandwidth management information to said packet; forwarding said packet within said multiport switch when said comparison indicates that forwarding said packet will not exceed said bandwidth consumption limit; and dropping said packet from said multiport switch or tagging said packet with an adjusted priority before forwarding of said packet within said multiport switch when said comparison indicates that forwarding said packet will exceed said bandwidth consumption limit. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification