IP Library Granted Patent US 8,671,219
Granted Patent B2
US 8,671,219 · App. 11/745,008 · Granted Mar 11, 2014

Method and apparatus for efficiently processing data packets in a computer network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,671,219
App. No.
11/745,008
Granted
Mar 11, 2014
Kind
B2
Abstract

According to an embodiment of the invention, a network device such as a router or switch provides efficient data packet handling capability. The network device includes one or more input ports for receiving data packets to be routed, as well as one or more output ports for transmitting data packets. The network device includes an integrated port controller integrated circuit for routing packets. The integrated circuit includes an interface circuit, a received packets circuit, a buffer manager circuit for receiving data packets from the received packets circuit and transmitting data packets in one or more buffers and reading data packets from the one or more buffers. The integrated circuit also includes a rate shaper counter for storing credit for a traffic class, so that the integrated circuit can support input and/or output rate shaping. The integrated circuit may be associated with an IRAM, a CAM, a parameter memory configured to hold routing and/or switching parameters, which may be implemented as a PRAM, and an aging RAM, which stores aging information. The aging information may be used by a CPU coupled to the integrated circuit via a system interface circuit to remove entries from the CAM and/or the PRAM when an age count exceeds an age limit threshold for the entries.

Claims (51)

1. A method comprising:

determining, by a network device, a first priority value based upon a first field of a data packet received by the network device;

determining, by the network device, a second priority value based upon a second field of the data packet, wherein the second field is different from the first field;

determining, by the network device, a maximum value from among a default priority value for the data packet, the first priority value, and the second priority value based upon the values of the default, the first, and the second priority values; and

setting a packet forwarding priority within the network device for the data packet based upon the determined maximum value.

2. A method as in claim 1 , wherein the first field is a VLAN field in the data packet.

3. A method as in claim 1 , wherein:

the first field is a VLAN field in the data packet; and

the second field is a TOS field in the data packet.

4. The method of claim 1 , wherein the default priority value is port-based.

5. The method of claim 1 , wherein setting the packet forwarding priority comprises:

determining a merge value from a packet evaluation of said data packet; and

wherein setting the packet forwarding priority based upon the maximum value comprises setting the packet forwarding priority to a priority value determined based upon the maximum value and the merge value.

6. The method of claim 5 , wherein said packet evaluation comprises performing a CAM lookup.

7. The method of claim 5 , wherein said packet evaluation comprises accessing a parameter in a parameter memory, said parameter chosen from the group consisting of a switching parameter and a routing parameter.

8. The method of claim 1 wherein:

determining the first priority value comprises:

upon determining that the data packet has a VLAN tag, determining a VLAN priority.

9. The method of claim 1 wherein determining the first priority comprises:

determining, by the network device, that the received data packet is of a first type; and

responsive to determining the data packet is of the first type, using the first field of the data packet to determine the first priority value.

10. The method of claim 9 , wherein the first type is an IP packet and the first field is a TOS field in the data packet.

11. A network device comprising:

a port configured to receive a data packet; and

a port controller coupled to the port;

wherein the port controller is configured to:

determine a first priority value based upon a first field of the data packet;

determine a second priority value based upon a second field of the data packet, wherein the second field is different from the first field;

determine a maximum value from among a default priority value, the first priority value, and the second priority value based upon the values of the default, the first, and the second priority values; and

set a packet forwarding priority within the network device for the data packet based upon the determined maximum value.

12. The network device of claim 11 , wherein the first field is a VLAN field in the data packet.

13. The network device of claim 11 , wherein:

the first field is a VLAN field in the data packet; and

the second field is a type of service (TOS) field in the data packet.

14. The network device of claim 11 , wherein the default priority value is port-based.

15. The network device of claim 11 , wherein the port controller is configured to:

determine a merge value from a packet evaluation of the data packet performed by the port controller; and

set the packet forwarding priority to a priority value based upon the maximum value and the merge value.

16. The network device of claim 15 further comprising a memory, and wherein the port controller is configured to perform a lookup in the memory as part of the packet evaluation.

17. The network device of claim 15 wherein, as part of the packet evaluation, the port controller is configured to access a parameter in a parameter memory, said parameter chosen from the group consisting of a switching parameter and a routing parameter.

18. The network device of claim 11 wherein the port controller is configured to:

upon determining that the data packet has a VLAN tag, determining VLAN priority.

19. The network device of claim 11 wherein the port controller is configured to:

determine that the received data packet is of a first type; and

responsive to determining the data packet is of the first type, use the first field of the data packet to determine the first priority value.

20. The network device of claim 19 , wherein the first type is an IP packet and the first field is a type of service (TOS) field in the data packet.

21. A method comprising:

determining, in a network device, a first priority value for a packet received by the network device, wherein the first priority value is determined based upon a first field of the packet;

determining, in the network device, a second priority value for the packet received by the network device, the second priority value determined based upon a second field of the packet, wherein the first field is different from the second field;

determining a maximum value from among the first priority value and the second priority value, wherein the maximum value is the first priority value if the first priority value is higher than the second priority value and the maximum value is the second priority value if the second priority value is higher than the first priority value; and

setting a packet forwarding priority within the network device for the packet based upon the determined maximum value.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
RELEASE OF SECURITY INTEREST Recorded Jan 21, 2015
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; INRANGE TECHNOLOGIES CORPORATION; FOUNDRY NETWORKS, LLC
Reel/Frame 034792/0540 →
CHANGE OF NAME Recorded Jul 21, 2010
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 024733/0739 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →
SECURITY AGREEMENT Recorded Dec 22, 2008
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, INC.; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION
To: BANK OF AMERICA, N.A. AS ADMINISTRATIVE AGENT
Reel/Frame 022012/0204 →