Rate limiting per-flow of traffic to CPU on network switching and routing devices
First Claim
Patent Images
1. A network device for use in a networking system, the network device comprising:
- a packet processor that;
receives a control packet at a network port of the network device, andassigns a first CPU code to the control packet from a plurality of CPU codes, the first CPU code indicative of a type of traffic associated with the control packet and the following;
a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system;
a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and
a statistical sampling parameter based on a packet truncation operation associated with the control packet;
the CPU being in communication with the packet processor; and
a memory in communication with the packet processor, the memory being configured to store a lookup table indexed by the plurality of CPU codes, wherein an entry in the lookup table associated with the first CPU code includes a rate limit that defines a rate at which packets associated with the type of traffic are delivered to the CPU,wherein the packet processor delivers the control packet to the CPU based on the rate limit associated with the type of traffic.
3 Assignments
0 Petitions
Accused Products
Abstract
A network device for use in a networking system. The network device includes a packet processor adapted to receive control packets at a network port of the network device. The packet processor is also adapted to assign a CPU code to the control packets. The network device also includes a CPU in communication with the packet processor and a lookup table indexed by the CPU code and in communication with the packet processor. According to embodiments of the present invention, one or more entries in the lookup table define a rate limit in accordance with which packets characterized by the CPU code are delivered from the packet processor to the CPU.
251 Citations
39 Claims
-
1. A network device for use in a networking system, the network device comprising:
-
a packet processor that; receives a control packet at a network port of the network device, and assigns a first CPU code to the control packet from a plurality of CPU codes, the first CPU code indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet; the CPU being in communication with the packet processor; and a memory in communication with the packet processor, the memory being configured to store a lookup table indexed by the plurality of CPU codes, wherein an entry in the lookup table associated with the first CPU code includes a rate limit that defines a rate at which packets associated with the type of traffic are delivered to the CPU, wherein the packet processor delivers the control packet to the CPU based on the rate limit associated with the type of traffic. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a network device for use in a networking system, the method comprising:
-
receiving a control packet at a network port of the network device; assigning a first CPU code to the control packet from a plurality of CPU codes using a packet processor, the first CPU code indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet; storing a lookup table indexed by the plurality of CPU codes, wherein an entry in the lookup table associated with the first CPU code includes a rate limit that defines a rate at which packets associated with the type of traffic are delivered to a CPU; and delivering, by the packet processor, the control packet to the CPU based on the rate limit associated with the type of traffic. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of managing control packets in a communications network, the method comprising:
-
receiving a control packet at a network device including a CPU; providing a CPU code table indexed by a plurality of CPU codes, the plurality of CPU codes respectively associated with a plurality of entries of the CPU code table, wherein an entry of the CPU code table comprises a rate limiting attribute defining a rate at which control packets associated with respective types of traffic are delivered to the CPU; and assigning a CPU code from the plurality of CPU codes to the control packet, the CPU code indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet; and routing the control packet to the CPU in accordance with the rate limiting attribute associated with the type of traffic. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A network device configured to manage control packets in a communications network, the network device comprising:
-
an ingress pipeline configured to receive a control packet at the network device, wherein the network device includes a CPU; a memory configured to store a CPU code table indexed by a plurality of CPU codes, the plurality of CPU codes respectively associated with a plurality of entries of the CPU code table, each entry of the CPU code table comprising a rate limiting attribute defining a rate at which control packets associated with respective types of traffic are delivered to the CPU; and a packet processor configured to assign a CPU code from the plurality of CPU codes to the control packet, the CPU code indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet, wherein the packet processor routes the control packet to the CPU in accordance with the rate limiting attribute associated with the type of traffic. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A method of rate limiting packet delivery to a CPU in a network device, the method comprising:
-
receiving a control packet at a port of the network device; assigning a CPU code to the control packet, the CPU code is indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet; comparing a value stored in a counter associated with the CPU code to a threshold value stored in a memory where the counter is configured to count a number of control packets associated with the type of traffic processed by the network device during a predetermined time; delivering the control packet to the CPU and incrementing the value stored in the counter when the value stored in the counter is less than the threshold value; dropping the control packet when the value stored in the counter is greater than or equal to the threshold value; and resetting the value stored in the counter to a baseline value after the predetermined time has passed. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. An apparatus that rate limits packet delivery to a CPU in a network device, the apparatus comprising:
-
a port of the network device that receives a control packet; and a processor configured to; assign a CPU code to the control packet, the CPU code is indicative of a type of traffic associated with the control packet and the following; a destination for the control packet, the indicated destination corresponds to a CPU to which the control packet is directed so as to enable distributed processing in compliance with protocols at multiple CPUs in the networking system; a quality of service (QoS) functionality including a traffic class and a drop precedence associated with the control packet; and a statistical sampling parameter based on a packet truncation operation associated with the control packet; compare a value stored in a counter associated with the CPU code to a threshold value stored in a memory where the counter is configured to count a number of control packets associated with the type of traffic processed by the network device during a predetermined time; deliver the control packet to the CPU and increment the value stored in the counter when the value stored in the counter is less than the threshold value; drop the control packet when the value stored in the counter is greater than or equal to the threshold value; and reset the value stored in the counter to a baseline value after the predetermined time has passed. - View Dependent Claims (35, 36, 37, 38, 39)
-
Specification