IP Library Granted Patent US 9,608,918
Granted Patent B2
US 9,608,918 · App. 14/512,950 · Granted Mar 28, 2017

Enabling concurrent operation of tail-drop and priority-based flow control in network devices

Inventors: Ling Yang (Pleasanton, CA); Ravi Swamy (Santa Clara, CA)
Assignee: Brocade Communications Systems, Inc.
H04L47/2441H04L47/32H04L47/60H04L47/627H04L47/6255H04L49/30H04L49/505H04L49/9084
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 9,608,918
App. No.
14/512,950
Granted
Mar 28, 2017
Kind
B2
Abstract

In one embodiment, a network device is provided that includes a plurality of ports, where each port is associated with a plurality of traffic classes for prioritizing traffic received on the port. The network device further includes a packet buffer memory, an ingress traffic management engine, and an egress traffic management engine. The network device is configured to allow, for each port, concurrent operation of tail-drop and priority-based flow control (PFC) with respect to different traffic classes of the port.

Claims (43)

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.

Assignments (11)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: ARRIS ENTERPRISES LLC
To: RUCKUS IP HOLDINGS LLC
Reel/Frame 066399/0561 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC F/K/A BROCADE COMMUNICATIONS SYSTEMS, INC; FOUNDRY NETWORKS LLC F/K/A FOUNDRY NETWORKS INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 045600/0755 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044861/0618 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2014
From: YANG, LING; SWAMY, RAVI
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 033939/0407 →
Continuity (2)
Provisional Application 61894698 · Oct 23, 2013
Related Publication 20150109928A1 · Apr 23, 2015