IP Library Granted Patent US 8,379,658
Granted Patent B2
US 8,379,658 · App. 12/826,959 · Granted Feb 19, 2013

Deferred queuing in a buffered switch

Inventors: Steven G. Schmidt (Westampton, NJ); Anthony G. Tornetta (King of Prussia, PA); Harry V. Paul (Haddonfield, NJ); Henry J. Gonzalez (Belle Mead, NJ)
Assignee: Brocade Communications Systems, Inc.
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,379,658
App. No.
12/826,959
Granted
Feb 19, 2013
Kind
B2
Abstract

A method and apparatus is disclosed for temporarily deferring transmission of frames to a destination in a data switch. When a request for transmission of a frame to the destination port is received, the congestion status of that destination is determined. If the destination is congested, the frame is stored in a deferred queue. When the status of a destination changes from congested to non-congested, the deferred queue is examined to see if any deferred frames can now be forwarded to their destination. While examining the deferred queue, incoming frames are placed on a backup queue. When the deferred queue is fully analyzed, the backup queue is emptied by either sending those frames to their destination or storing the frames in the deferred queue. While examining the deferred queue, the congested states of the destinations are not allowed to change from congested to non-congested.

Claims (82)

1. A method for queuing data packets in a switch comprising the steps of:

determining a switch destination for a first packet, each packet having a single switch destination;

determining a congestion status for the switch destination;

forwarding the first packet to the switch destination if the congestion status is non-congested;

storing the first packet in a deferred queue if the congestion status is congested; and

repeating the steps of determining a switch destination, determining a congestion status and storing the first packet in a deferred queue if the congestion status is congested, such that multiple packets that are routed to a plurality of different congested switch destinations are stored in the same deferred queue.

2. The method of claim 1 , further comprising the step of:

entering a deferred state wherein the packets in the deferred queue are examined so as to send packets to their switch destination if their switch destination has a non-congested status.

3. The method of claim 2 , further comprising the step of:

entering the deferred state when a first switch destination changes its congestion status from a congested state to a non-congested state.

4. The method of claim 3 , further comprising the step of:

using a congestion status mask to determine the congestion status of the switch destination.

5. The method of claim 4 , further comprising the step of:

during the deferred state, preventing changes in the congestion status mask for the switch destination from a congested status to a non-congested status.

6. The method of claim 5 , further comprising the step of:

during the deferred state, allowing changes in the congestion status mask for the switch destination from a non-congested status to a congested status.

7. The method of claim 6 , wherein, during the deferred state, changes in the congestion status for the switch destination from a congested status to a non-congested status are recorded in a history register, and

wherein the history register is used to update the congestion status mask after the entire deferred queue is examined.

8. The method of claim 3 , wherein, during the deferred state, packets in the deferred queue are stored back in the deferred queue if their switch destination has a congested status, and

wherein such re-storage in the deferred queue maintains a chronological order for packets in the queue.

9. The method of claim 1 , wherein the switch destination is chosen from a set comprising an egress port on the switch and a processor on the switch.

10. The method of claim 1 , wherein the data packet is of a format selected from a set comprising a Fibre Channel frame, an Ethernet frame, and an ATM cell.

11. A data switch comprising:

an input port that can receive a data packet having a packet destination;

a plurality of switch destinations;

a switch fabric for making a switched connection between the input port and one of the plurality of switch destinations;

a routing module having a routing table routing between the packet destination and the one switch destination so that each data packet has a single switch destination;

indicators containing a congestion status for the plurality of switch destinations;

a signaling mechanism in communication with the indicators indicating changes in the congestion status;

a deferred queue; and

a queue control module containing logic that places the data packet in the deferred queue if the congestion status of a switch destination is congested, and that submits the data packet to the switch fabric if the congestion status of a switch destination is not congested, such that multiple packets that are routed to a plurality of different congested switch destinations are stored in the deferred queue.

12. The data switch of claim 11 , wherein the queue control module examines packets in the deferred queue so as to send packets to their switch destination if their switch destination has a non-congested status.

13. The data switch of claim 12 , wherein the queue control module begins examining packets in the deferred queue when a first switch destination changes its congestion status from a congested state to a non-congested state.

14. The data switch of claim 13 , wherein the queue control module includes a congestion status mask used to determine the congestion status of the switch destination.

15. The data switch of claim 14 , wherein the queue control module prevents changes in the congestion status mask for the switch destination from a congested status to a non-congested status when the queue control module is examining packets in the deferred queue.

16. The data switch of claim 15 , wherein the queue control module allows changes in the congestion status mask for the switch destination from a non-congested status to a congested status when the queue control module is examining packets in the deferred queue.

17. The data switch of claim 16 , wherein the queue control module includes a history register and, when the queue control module is examining packets in the deferred queue, changes in the congestion status for the switch destination from a congested status to a non-congested status are recorded in the history register, and

wherein the queue control module uses the history register to update the congestion status mask after the entire deferred queue is examined.

18. The data switch of claim 13 , wherein the queue control module stores packets in the deferred queue back in the deferred queue if their switch destination has a congested status when the queue control module is examining packets in the deferred queue, and

wherein such re-storage in the deferred queue maintains a chronological order for packets in the deferred queue.

19. The data switch of claim 11 , wherein the switch destination is chosen from a set comprising an egress port on the switch and a processor on the switch.

20. The data switch of claim 11 , wherein the data packet is of a format selected from a set comprising a Fibre Channel frame, an Ethernet frame, and an ATM cell.

21. A method for queuing data packets in a switch comprising the steps of:

determining a switch output port for a first packet, each packet having a single switch output port;

determining a congestion status for the switch output port;

forwarding the first packet to the switch output port if the congestion status is non-congested;

storing the first packet in a deferred queue if the congestion status is congested; and

repeating the steps of determining a switch output port, determining a congestion status and storing the first packet in a deferred queue if the congestion status is congested, such that multiple packets that are routed to a plurality of different congested switch output ports are stored in the same deferred queue.

22. The method of claim 21 , further comprising the step of:

entering a deferred state wherein the packets in the deferred queue are examined so as to send packets to their switch output port if their switch output port has a non-congested status.

23. The method of claim 22 , further comprising the step of:

entering the deferred state when a first switch output port changes its congestion status from a congested state to a non-congested state.

24. The method of claim 23 , further comprising the step of:

using a congestion status mask to determine the congestion status of the switch output port.

25. The method of claim 24 , further comprising the step of:

during the deferred state, preventing changes in the congestion status mask for the switch output port from a congested status to a non-congested status.

26. The method of claim 25 , further comprising the step of:

during the deferred state, allowing changes in the congestion status mask for the switch output port from a non-congested status to a congested status.

27. The method of claim 26 , wherein, during the deferred state, changes in the congestion status for the switch output port from a congested status to a non-congested status are recorded in a history register, and

wherein the history register is used to update the congestion status mask after the entire deferred queue is examined.

28. The method of claim 23 , wherein, during the deferred state, packets in the deferred queue are stored back in the deferred queue if their switch output port has a congested status, and

wherein such re-storage in the deferred queue maintains a chronological order for packets in the queue.

29. The method of claim 21 , wherein the data packet is of a format selected from a set comprising a Fibre Channel frame, an Ethernet frame, and an ATM cell.

30. A data switch comprising:

an input port that can receive a data packet having a packet destination;

a plurality of switch output ports;

a switch fabric for making a switched connection between the input port and one of the plurality of switch output ports;

a routing module having a routing table routing between the packet destination and the one switch output port so that each data packet has a single switch output port;

indicators containing a congestion status for the plurality of switch output ports;

a signaling mechanism in communication with the indicators indicating changes in the congestion status;

a deferred queue; and

a queue control module containing logic that places the data packet in the deferred queue if the congestion status of a switch output port is congested, and that submits the data packet to the switch fabric if the congestion status of a switch output port is not congested, such that multiple packets that are routed to a plurality of different congested switch output ports are stored in the deferred queue.

31. The data switch of claim 30 , wherein the queue control module examines packets in the deferred queue so as to send packets to their switch output port if their switch output port has a non-congested status.

32. The data switch of claim 31 , wherein the queue control module begins examining packets in the deferred queue when a first switch output port changes its congestion status from a congested state to a non-congested state.

33. The data switch of claim 32 , wherein the queue control module includes a congestion status mask used to determine the congestion status of the switch output port.

34. The data switch of claim 33 , wherein the queue control module prevents changes in the congestion status mask for the switch output port from a congested status to a non-congested status when the queue control module is examining packets in the deferred queue.

35. The data switch of claim 34 , wherein the queue control module allows changes in the congestion status mask for the switch output port from a non-congested status to a congested status when the queue control module is examining packets in the deferred queue.

36. The data switch of claim 35 , wherein the queue control module includes a history register and, when the queue control module is examining packets in the deferred queue, changes in the congestion status for the switch output port from a congested status to a non-congested status are recorded in the history register, and

wherein the queue control module uses the history register to update the congestion status mask after the entire deferred queue is examined.

37. The data switch of claim 32 , wherein the queue control module stores packets in the deferred queue back in the deferred queue if their switch output port has a congested status when the queue control module is examining packets in the deferred queue, and

wherein such re-storage in the deferred queue maintains a chronological order for packets in the deferred queue.

38. The data switch of claim 30 , wherein the data packet is of a format selected from a set comprising a Fibre Channel frame, an Ethernet frame, and an ATM cell.

Assignments (2)
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 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
Continuity (3)
Continuation 10873430 · Jun 21, 2004
Continuation In Part 10020968 · Dec 19, 2001
Related Publication 20100265821A1 · Oct 21, 2010