Legal claims defining the scope of protection, as filed with the USPTO.
1. A network device comprising: a plurality of ports, each port being associated with a plurality of traffic classes for categorizing traffic received on the port; a packet buffer memory comprising a lossy ingress pool and a lossless ingress pool; and an ingress traffic management engine-maintaining mappings between (port, traffic class) pairs and priority groups, each priority group being associated with the lossy ingress pool if the (port, traffic class) pair mapped to the priority group has tail-drop enabled and being associated with the lossless ingress pool if the (port, traffic class) pair mapped to the priority group has Priority-based Flow Control (PFC) enabled, wherein at a time of receiving a packet at an ingress port in the plurality of ports, the network device: determines a traffic class of the packet; determines a priority group for the packet based on the ingress port, the traffic class, and the mappings: and adds the packet to either the lossy ingress pool or the lossless ingress pool based on the packet's priority group.
2. The network device of claim 1 wherein the packet buffer memory further comprises a lossy egress pool and a lossless egress pool.
3. The network device of claim 2 wherein the lossy egress pool has a tail-drop threshold in effect and wherein the lossless egress pool does not have the tail-drop threshold in effect.
4. The network device of claim 1 wherein the network device further comprises an egress traffic management engine that maintains, for each port in the plurality of ports, a first set of egress queues and a second set of egress queues, wherein the first set of egress queues is allocated from a lossy egress pool in the packet buffer memory, wherein the second set of egress queues is allocated from a lossless egress pool in the packet buffer memory, and wherein each egress queue in the first and second sets is mapped to a traffic class in the plurality of traffic classes.
5. The network device of claim 1 wherein the network device further comprises, for each port in the plurality of ports, a hierarchical scheduler for scheduling the transmission of packets out of the port.
6. The network device of claim 5 wherein a first stage of the hierarchical scheduler comprises selecting, for each traffic class in the plurality of traffic classes: a packet from a first egress queue in a first set of egress queues allocated from a lossy egress pool in the packet buffer memory, the first egress queue corresponding to the traffic class; or a packet from a second egress queue in a second set of egress queues allocated from a lossless egress pool in the packet buffer memory, the second egress queue also corresponding to the traffic class.
7. The network device of claim 6 wherein the selecting is performed via a round-robin algorithm, a weighted round-robin algorithm, or a strict algorithm.
8. The network device of claim 6 wherein the selecting is performed using an algorithm that is configured to enforce minimum or maximum bandwidth guarantees.
9. The network device of claim 6 wherein a second stage of the hierarchical scheduler comprises selecting, from among the packets selected in the first stage, a packet for transmission out of the port.
10. The network device of claim 9 wherein the selecting of the second stage is performed using a round-robin algorithm, a weighted round-robin algorithm, or a strict algorithm.
11. The network device of claim 9 wherein the selecting of the second stage is performed using an algorithm that is configured to enforce minimum or maximum bandwidth guarantees.
12. The network device of claim 1 wherein the network device further: sends the packet to an egress traffic management engine for transmission out of an egress port; selects, from among a first set of egress queues and a second set of egress queues associated with the egress port, an egress queue for buffering the packet, wherein the egress queue is selected based on the packet's traffic class and whether tail-drop or PFC is enabled for the packet's ingress (port, traffic class) pair; and adds, via the egress traffic management engine, the packet to the selected egress queue.
13. The network device of claim 12 wherein the network device further: removes the packet from the selected egress queue and sends the packet out of the egress port using a hierarchical scheduler.
14. The network device of claim 1 wherein the lossless ingress pool has a PFC ingress buffer threshold in effect and wherein the lossy ingress pool does not have the PFC buffer threshold in effect.
15. A method comprising: maintaining, by a network device, a packet buffer memory comprising a lossy ingress pool and a lossless ingress pool: maintaining, by the network device, mappings between (port, traffic class) pairs and priority groups, each priority group being associated with the lossy ingress pod if the (port, traffic class) pair mapped to the priority group has tail-drop enabled and being associated with the lossless ingress pool if the (port, traffic class) pair mapped to the priority group has Priority-based Flow Control (PFC) enabled; and at a time of receiving a packet at an ingress port: determining a traffic class of the packet; determining a priority group for the packet based on the ingress port; the traffic class; and the mappings: and adding the packet to either the lossy ingress pool or the lossless ingress pool based on the packet's priority group.
16. The method of claim 15 wherein the traffic class is selected from a group of eight traffic classes defined under the IEEE 802.1Q standard.
17. A non-transitory computer readable medium having stored thereon program code executable by a processor of a network device, the program code comprising: code that causes the processor to maintain a packet buffer memory comprising a lossy ingress pool and a lossless ingress pool: code that causes the processor to maintain mappings between (port, traffic class) pairs and priority groups, each priority group being associated with the lossy ingress pool if the (port, traffic class) pair mapped to the priority group has tail-drop enabled and being associated with the lossless ingress pool if the (port, traffic class) pair mapped to the priority group has Priority-based flow Control (PFC) enabled; and code that causes the processor to, at a time of receiving a packet at an ingress port: determine a traffic class of the packet; determine a priority group for the packet based on the ingress port, the traffic class, and the mappings: and add the packet to either the lossy ingress pool or the lossless ingress pool based on the packet's priority group.
18. The non-transitory computer readable medium of claim 17 wherein the traffic class is selected from a group of eight traffic classes defined under the IEEE 802.1Q standard.
Unknown
March 28, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.