IP Library Granted Patent US 9,160,678
Granted Patent B2
US 9,160,678 · App. 13/863,287 · Granted Oct 13, 2015

Flow control credits for priority in lossless ethernet

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,160,678
App. No.
13/863,287
Granted
Oct 13, 2015
Kind
B2
Abstract

In one embodiment, a system includes an initiator port adapted to receive a traffic flow having a plurality of packets and a hardware processor and logic integrated with and/or executable by the processor, the logic being adapted to classify the traffic flow into a traffic class based on at least one criteria related to the traffic flow, the traffic class being selected from a plurality of traffic classes and transmit one or more packets of the traffic flow to a target port designated by the one or more packets of the traffic flow until an amount of flow credits allocated to the target port is insufficient to service additional packets. Other systems, methods, and computer program products for providing credit-based flow control are described in more embodiments.

Claims (61)

1. A system, comprising:

an initiator port configured to receive a traffic flow comprising a plurality of packets; and

a hardware processor and logic integrated with and/or executable by the processor, the logic being configured to:

classify the traffic flow into a traffic class based on at least one criteria related to the traffic flow, the traffic class being selected from a plurality of traffic classes, wherein an identifier indicating the traffic class of the plurality of packets is stored according to a virtual local area network (VLAN) identifier in a three bit VLAN tag portion of a header of each of the plurality of packets; and

transmit one or more packets of the traffic flow to a target port designated by the one or more packets of the traffic flow until an amount of flow credits allocated to the target port is insufficient to service additional packets.

2. The system as recited in claim 1 , wherein the logic is further configured to determine an amount of flow credits necessary to service the one or more packets of the traffic flow prior to transmitting the one or more packets of the traffic flow to the target port.

3. The system as recited in claim 2 , wherein the logic is further configured to, prior to transmitting the one or more packets of the traffic flow:

send a first notification to the target port designated by the one or more packets, the first notification indicating an amount of flow credits necessary to service the one or more packets of the traffic flow; and

receive a second notification from the target port, the second notification indicating an amount of flow credits available on the target port for servicing the one or more packets of the traffic flow.

4. The system as recited in claim 3 , wherein the logic is further configured to, prior to transmitting the one or more packets of the traffic flow:

reserve the necessary amount of flow credits on the target port to be exchanged with the initiator port when servicing the one or more packets of the traffic flow when the target port has the necessary amount of flow credits available for servicing the one or more packets of the traffic flow.

5. The system as recited in claim 3 , wherein the first and second notifications are exchanged via data plane Ethernet packets.

6. The system as recited in claim 1 , wherein the at least one criteria related to the traffic flow is chosen from a group consisting of: a priority of the traffic flow, a virtual local area network (VLAN) identifier of at least one packet of the traffic flow, and a size of the one or more packets of the traffic flow.

7. The system as recited in claim 1 , wherein a gateway switch comprises the processor, the gateway switch being accessible by all physical switches and virtual switches in a network.

8. The system as recited in claim 1 , wherein the plurality of traffic classes comprises eight possible priority levels designated with the three bit VLAN tag portion.

9. The system as recited in claim 1 , further comprising a credit manager, the credit manager being configured to distribute flow credits to all ports in a network according to a priority of each individual port.

10. The system as recited in claim 9 , wherein extended distances between the initiator and target ports are accounted for via at least one of:

increasing an amount of flow credits that the credit manager allocates to the target port to be used in exchanges with the initiator port having an extended distance therebetween; and

allowing an initiator port to transmit additional packets prior to receiving indication of successful delivery of prior transmitted packets in a speculative fashion.

11. The system as recited in claim 1 , wherein the logic is further configured to request flow credits from a credit manager which correspond to the traffic class of the one or more packets of the traffic flow.

12. The system as recited in claim 11 , wherein the logic is further configured to request that the credit manager remap flow credits corresponding to a first traffic class to flow credits corresponding to a second traffic class.

13. A computer program product for providing credit-based flow control, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code readable/executable by a processor to:

receive, using the processor, a traffic flow comprising a plurality of packets;

classify the traffic flow into a traffic class based on at least one criteria related to the traffic flow, the traffic class being selected from a plurality of traffic classes; and

transmit one or more packets of the traffic flow from an initiator port to a target port designated by the one or more packets of the traffic flow until an amount of flow credits allocated to the target port is insufficient to service additional packets,

wherein extended distances between the initiator port and the target port are accounted for via at least one of:

increasing an amount of flow credits allocated to the target port to be used in exchanges with the initiator port having an extended distance therebetween; and

allowing the initiator port to transmit additional packets to the target port prior to receiving indication of successful delivery of prior transmitted packets in a speculative fashion.

14. The computer program product as recited in claim 13 , wherein the program code readable/executable by the processor is further configured to determine an amount of flow credits necessary to service the one or more packets of the traffic flow prior to transmitting the one or more packets of the traffic flow to the target port.

15. The computer program product as recited in claim 14 , wherein the program code readable/executable by the processor is further configured to, prior to transmitting the one or more packets of the traffic flow:

send a first notification to the target port designated by the one or more packets, the first notification indicating an amount of flow credits necessary to service the one or more packets of the traffic flow;

receive a second notification from the target port, the second notification indicating an amount of flow credits available on the target port for servicing the one or more packets of the traffic flow; and

reserve the necessary amount of flow credits on the target port to be exchanged with an initiator port when servicing the one or more packets of the traffic flow when the target port has the necessary amount of flow credits available for servicing the one or more packets of the traffic flow,

wherein the first and second notifications are exchanged via data plane Ethernet packets.

16. The computer program product as recited in claim 13 , wherein the at least one criteria related to the traffic flow is chosen from a group consisting of: a priority of the traffic flow, a virtual local area network (VLAN) identifier of at least one packet of the traffic flow, and a size of the one or more packets of the traffic flow,

wherein a gateway switch is configured to execute the computer program product, the gateway switch being accessible by all physical switches and virtual switches in a network, and

wherein an identifier indicating the traffic class of the one or more packets is stored according to a VLAN identifier in a three bit VLAN tag portion of headers of the one or more packets.

17. The computer program product as recited in claim 13 , wherein flow credits are distributed, using a credit manager, to all ports in a network according to a priority of each individual port.

18. The computer program product as recited in claim 17 , wherein the credit manager allocates different fractions of available link bandwidth between the initiator port and the target port to different traffic classes according to priority groupings.

19. The computer program product as recited in claim 13 , wherein the program code readable/executable by the processor is further configured to request flow credits from a credit manager which correspond to the traffic class of the one or more packets of the traffic flow.

20. The computer program product as recited in claim 19 , wherein the program code readable/executable by the processor is further configured to request that the credit manager remap flow credits corresponding to a first traffic class to flow credits corresponding to a second traffic class.

21. A method for providing credit-based flow control, the method comprising:

receiving a traffic flow comprising a plurality of packets;

classifying the traffic flow into a traffic class based on at least one criteria related to the traffic flow, the traffic class being selected from a plurality of traffic classes;

requesting that a credit manager remap flow credits corresponding to a first traffic class to flow credits corresponding to a second traffic class; and

transmitting one or more packets of the traffic flow to a target port designated by the one or more packets of the traffic flow until an amount of flow credits allocated to the target port is insufficient to service additional packets, the flow credits being allocated to the target port by the credit manager.

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

determining an amount of flow credits necessary to service the one or more packets of the traffic flow prior to transmitting the one or more packets of the traffic flow to the target port;

sending a first notification to the target port designated by the one or more packets, the first notification indicating an amount of flow credits necessary to service the one or more packets of the traffic flow;

receiving a second notification from the target port, the second notification indicating an amount of flow credits available on the target port for servicing the one or more packets of the traffic flow; and

reserving the necessary amount of flow credits on the target port to be exchanged with an initiator port when servicing the one or more packets of the traffic flow when the target port has the necessary amount of flow credits available for servicing the one or more packets of the traffic flow,

wherein the first and second notifications are exchanged via data plane Ethernet packets.

23. The method as recited in claim 21 , wherein the at least one criteria related to the traffic flow is chosen from a group consisting of: a priority of the traffic flow, a virtual local area network (VLAN) identifier of at least one packet of the traffic flow, and a size of the one or more packets of the traffic flow,

wherein a gateway switch executes the method, the gateway switch being accessible by all physical switches and virtual switches in a network,

wherein an identifier indicating the traffic class of the one or more packets is stored according to a VLAN identifier in a three bit VLAN tag portion of headers of the one or more packets, and

wherein flow credits are distributed, using the credit manager, to all ports in the network according to a priority of each individual port.

24. The method as recited in claim 23 , wherein extended distances between an initiator port and the target port are accounted for via at least one of:

increasing an amount of flow credits that the credit manager allocates to the target port to be used in exchanges with the initiator port having an extended distance therebetween; and

allowing the initiator port to transmit additional packets prior to receiving indication of successful delivery of prior transmitted packets in a speculative fashion.

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

requesting flow credits from the credit manager which correspond to the traffic class of the one or more packets of the traffic flow.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2013
From: DECUSATIS, CASIMER M.; GUSAT, MIRCEA; KAMBLE, KESHAV G.; MINKENBERG, CYRIEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030218/0379 →