IP Library Granted Patent US 9,014,005
Granted Patent B2
US 9,014,005 · App. 13/741,346 · Granted Apr 21, 2015

Low-latency lossless switch fabric for use in a data center

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,014,005
App. No.
13/741,346
Granted
Apr 21, 2015
Kind
B2
Abstract

In one embodiment, a system includes a switch configured for communicating with a low-latency switch and a buffered switch, the switch having a processor adapted for executing logic, logic adapted for receiving a packet at an ingress port of a switch, logic adapted for receiving congestion information, logic adapted for determining that at least one congestion condition is net based on at least the congestion information, logic adapted for applying a packet forwarding policy to the packet when the at least one congestion condition is met, logic adapted for forwarding the packet to a buffered switch when the packet satisfies the packet forwarding policy, and logic adapted for forwarding the packet to a low-latency switch when the at least one congestion condition is not met.

Claims (61)

1. A system comprising:

a switch configured for communicating through a fabric with a low-latency switch and a buffered switch,

wherein the low-latency switch comprises an additional policy table provided with forwarding decisions based on a congestion of the fabric,

wherein the buffered switch is configured to evaluate congestion conditions on the fabric, and

wherein the switch comprises a processor configured to execute logic, the logic being configured to:

receive a packet at an ingress port of the switch;

receive congestion information;

determine that at least one congestion condition is met based on at least the congestion information;

apply a packet forwarding policy to the packet when the at least one congestion condition is met;

forward the packet to the buffered switch when the packet satisfies the packet forwarding policy; and

forward the packet to the low-latency switch when the at least one congestion condition is not met.

2. The system as recited in claim 1 , wherein the logic is further configured to:

determine if the packet forwarding policy indicates to drop the packet; and

drop the packet when the packet forwarding policy indicates to drop the packet.

3. The system as recited in claim 1 , wherein the at least one congestion condition comprises receipt of back pressure from one or more low-latency switches downstream of the switch, and wherein the logic is further configured to divert traffic from any low-latency switch indicating congestion until the low-latency switch is able to process the traffic already forwarded to the low-latency switch.

4. The system as recited in claim 1 , wherein the logic is further configured to process the packet to determine at least one property of the packet, the at least one property of the packet comprising one or more of: a packet priority, a destination application identifier, a source address, a destination address, a packet size, a virtual local area network (VLAN) identifier, and an acceptable latency for the packet.

5. The system as recited in claim 4 , wherein the logic is further configured to use the at least one property of the packet to determine when the packet satisfies the packet forwarding policy.

6. The system as recited in claim 4 , wherein the packet forwarding policy is a multi-stage policy which takes into account the at least one property of the packet and levels of congestion for downstream switches, the multi-stage policy categorizing packets and forwarding the packets to downstream switches based on the level of congestion of the downstream switches and the categorization of the packets.

7. A computer program product for providing low latency packet forwarding with guaranteed delivery, the computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:

computer readable program code configured for communicating through a fabric, using a switch, with a low-latency switch and a buffered switch;

computer readable program code configured for receiving a packet at an ingress port of the switch;

computer readable program code configured for receiving, at the switch, congestion information from one or more downstream low-latency switches;

computer readable program code configured for determining that at least one congestion condition is met based on at least the congestion information;

computer readable program code configured for processing the packet to determine at least one property of the packet;

computer readable program code configured for applying a packet forwarding policy to the packet in response to a determination that the at least one congestion condition is met, wherein the at least one property of the packet is used to determine whether the packet satisfies the packet forwarding policy;

computer readable program code configured for forwarding the packet to the buffered switch in response to a determination that the packet satisfies the packet forwarding policy; and

computer readable program code configured for forwarding the packet to the low-latency switch in response to a determination that the at least one congestion condition is not met such that traffic is diverted from any low-latency switch indicating congestion until the low-latency switch is able to process the traffic already forwarded to the low-latency switch.

8. The computer program product as recited in claim 7 , further comprising:

computer readable program code configured for determining whether the packet forwarding policy indicates to drop the packet; and

computer readable program code configured for dropping the packet in response to a determination that the packet forwarding policy indicates to drop the packet.

9. The computer program product as recited in claim 7 , wherein the at least one congestion condition comprises receipt of back pressure from one or more low-latency switches downstream of the switch, and further comprising computer readable program code configured for diverting traffic from any low-latency switch indicating congestion until the low-latency switch is able to process the traffic already forwarded to the low-latency switch.

10. The computer program product as recited in claim 7 , further comprising computer readable program code configured for processing the packet to determine at least one property of the packet, the at least one property of the packet comprises one or more of: a packet priority, a destination application identifier, a source address, a destination address, a packet size, a virtual local area network (VLAN) identifier, and an acceptable latency for the packet.

11. The computer program product as recited in claim 10 , further comprising computer readable program code configured for using the at least one property of the packet to determine whether the packet satisfies the packet forwarding policy.

12. The computer program product as recited in claim 10 , wherein the packet forwarding policy is a multi-stage policy which takes into account the at least one property of the packet and levels of congestion for downstream switches, the multi-stage policy categorizing packets and forwarding the packets to downstream switches based on the level of congestion of the downstream switches and the categorization of the packets.

13. A method for providing low latency packet forwarding with guaranteed delivery, the method comprising:

receiving a packet at an ingress port of a switch;

receiving congestion information at the switch from one or more low-latency downstream switches;

determining that at least one congestion condition is met based on at least the congestion information;

applying a packet forwarding policy to the packet in response to a determination that the at least one congestion condition is met, wherein the at least one property of the packet is used to determine whether the packet satisfies the packet forwarding policy;

forwarding the packet to a buffered switch in response to a determination that the packet satisfies the packet forwarding policy; and

forwarding the packet to a low-latency switch in response to a determination that the at least one congestion condition is not met such that traffic is diverted from any low-latency downstream switch indicating congestion until the low-latency downstream switch is able to process the traffic already forwarded to the low-latency downstream switch.

14. The method as recited in claim 13 , further comprising:

determining whether the packet forwarding policy indicates to drop the packet; and

dropping the packet in response to a determination that the packet forwarding policy indicates to drop the packet.

15. The method as recited in claim 13 , wherein the at least one congestion condition comprises receipt of back pressure from one or more low-latency switches downstream of the switch, and further comprising diverting traffic from any low-latency switch indicating congestion until the low-latency switch is able to process the traffic already forwarded to the low-latency switch.

16. The method as recited in claim 13 , further comprising processing the packet to determine at least one property of the packet, the at least one property of the packet comprises one or more of: a packet priority, a destination application identifier, a source address, a destination address, a packet size, a virtual local area network (VLAN) identifier, and an acceptable latency for the packet.

17. The method as recited in claim 16 , further comprising using the at least one property of the packet to determine whether the packet satisfies the packet forwarding policy.

18. The method as recited in claim 16 , wherein the packet forwarding policy is a multi-stage policy which takes into account the at least one property of the packet and levels of congestion for downstream switches, the multi-stage policy categorizing packets and forwarding the packets to downstream switches based on the level of congestion of the downstream switches and the categorization of the packets.

19. A method for providing low latency packet forwarding with guaranteed delivery, the method comprising:

receiving a packet at an ingress port of a switch;

receiving congestion information from one or more downstream low-latency switches;

determining that at least one congestion condition is met based on at least the congestion information;

processing the packet to determine at least one property of the packet;

applying a packet forwarding policy to the packet when the at least one congestion condition is met, wherein the at least one property of the packet is used to determine when the packet satisfies the packet forwarding policy;

forwarding the packet to a buffered switch when the packet satisfies the packet forwarding policy; and

forwarding the packet to a low-latency switch when the at least one congestion condition is not met such that traffic is diverted from any low-latency switch indicating congestion until the low-latency switch is able to process the traffic already forwarded to the low-latency switch.

20. The method as recited in claim 19 , wherein the at least one property of the packet comprises one or more of: a packet priority, a destination application identifier, a source address, a destination address, a packet size, a virtual local area network (VLAN) identifier, and an acceptable latency for the packet.

21. The method as recited in claim 19 , further comprising:

determining if the packet forwarding policy indicates to drop the packet; and

dropping the packet when the packet forwarding policy indicates to drop the packet.

22. The method as recited in claim 19 , wherein the congestion information comprises at least one of: 802.1Qbb—Priority Based Flow Control (PFC), 802.1az—Enhanced Transmission Selection (ETS), Quantized Congestion Notification (QCN), and regular flow control according to IEEE 802.3X.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050304/0277 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2013
From: CAMPBELL, ALEXANDER P.; KAMBLE, KESHAV G.; PANDEY, VIJOY A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029668/0437 →