IP Library Granted Patent US 9,692,706
Granted Patent B2
US 9,692,706 · App. 13/863,275 · Granted Jun 27, 2017

Virtual enhanced transmission selection (VETS) for lossless ethernet

Inventors: Claude Basso (Nice, FR); Robert Birke (Kilchberg, CH); Daniel Crisan (Zug, CH); Casimer M. DeCusatis (Poughkeepsie, NY); Mircea Gusat (Langnau, CH); Keshav G. Kamble (Fremont, CA); Cyriel J. Minkenberg (Gutenswil, CH)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L47/2441H04L49/351H04L49/70
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,692,706
App. No.
13/863,275
Granted
Jun 27, 2017
Kind
B2
Abstract

In one embodiment, a system includes a hardware processor and logic integrated with and/or executable by the processor, the logic being adapted to receive a traffic flow having a plurality of packets, classify the traffic flow into a traffic class based on a characteristic of the traffic flow, the traffic class being selected from a plurality of traffic classes, store an identifier of the selected traffic class to one or more of the packets, and transmit the traffic flow according to its destination based on a priority of its selected traffic class. In more embodiments, additional systems, methods, and computer program products for prioritizing traffic flow handling are described.

Claims (62)

1. A system, comprising a hardware processor and logic integrated with and/or executable by the hardware processor, the logic being configured to:

receive a traffic flow comprising a plurality of packets in a lossless Ethernet network;

classify the traffic flow into a traffic class based on a characteristic of the traffic flow, the traffic class being selected from a plurality of traffic classes;

allocate one or more computing time slices of the hardware processor to the traffic flow based on the selected traffic class;

store an identifier of the selected traffic class to one or more of the packets; and

transmit the traffic flow according to its destination based on a priority of the selected traffic class.

2. The system as recited in claim 1 , wherein the logic is further configured to allocate computing time slices of the hardware processor to each of the plurality of traffic classes according to a priority of the traffic class.

3. The system as recited in claim 1 , wherein the characteristic is selected from the group consisting of: a packet type, packet usage, and link usage, and wherein the traffic flow is received using one or more virtual ports of a virtual switch (vSwitch) or a virtual network interface card (vNIC).

4. The system as recited in claim 1 , wherein the characteristic comprises a priority of the traffic flow, wherein the priority of the traffic flow is used to select a traffic class for the traffic flow, and wherein the logic is further configured to determine an amount of bandwidth which is available to transmit the traffic flow based on a priority of the traffic class, with traffic flows from a traffic class having a higher priority being allocated proportionally more bandwidth than traffic flows from a traffic class having a lower priority.

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

receive a request indicating a desired priority of a traffic flow;

assign the traffic flow to a traffic class corresponding to the desired priority; and

charge a monetary fee related to the desired priority for the traffic flow to a provider of the traffic flow.

6. The system as recited in claim 1 , wherein the identifier is stored to headers of the packets in the traffic flow in a standard Ethernet frame format.

7. The system as recited in claim 6 , wherein the identifier is stored according to a virtual local area network (VLAN) identifier in a three bit priority code point (PCP) field in a VLAN tag portion of the headers of the packets.

8. The system as recited in claim 1 , wherein a server comprises the system, the server comprising a virtualization platform providing:

a plurality of virtual machines (VMs);

a virtual network interface card (vNIC) configured to provide network interface functionality; and

a virtual switch (vSwitch) configured to provide virtual switching functionality,

wherein the server is configured to operate within a software-defined overlay network.

9. The system as recited in claim 1 , wherein the plurality of traffic classes are defined by a traffic manager.

10. The system as recited in claim 9 , wherein the traffic manager is configured to:

allocate an available bandwidth for each link of a virtual switch (vSwitch) amongst one or more of the plurality of traffic classes;

allocate an available bandwidth for each link of a virtual network interface card (vNIC) amongst one or more of the plurality of traffic classes; and

create identifiers for each of the traffic classes.

11. The system as recited in claim 10 , wherein up to eight traffic classes are created, and wherein the identifiers are three bits in length and stored to a virtual local area network (VLAN) identifier in a three bit priority code point (PCP) field in a VLAN tag portion of headers of the packets.

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

receive a second traffic flow;

determine a traffic class of the second traffic flow as an override traffic class; and

provide highest priority to the second traffic flow.

13. A computer program product for prioritizing traffic flow handling, the computer program product comprising a computer readable hardware storage device having program code embodied therewith, the embodied program code readable/executable by a processor to:

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

receive, using the processor, a request indicating a desired priority of the traffic flow;

classify, using the processor, the traffic flow into a traffic class based on the desired priority and a characteristic of the traffic flow, the traffic class being selected from a plurality of traffic classes, wherein the selected traffic class corresponds with the desired priority;

store, using the processor, an identifier of the selected traffic class to one or more of the packets; and

transmit, using the processor, the traffic flow according to its destination based on the desired priority.

14. The computer program product as recited in claim 13 , wherein the embodied program code is further readable/executable by the processor to allocate, using the processor, computing time slices of the processor to each of the plurality of traffic classes according to a priority of the traffic class.

15. The computer program product as recited in claim 13 , wherein the traffic flow is received in a lossless Ethernet network using one or more virtual ports of a virtual switch (vSwitch) or a virtual network interface card (vNIC).

16. The computer program product as recited in claim 13 , wherein the characteristic is selected from the group consisting of: a packet type, packet usage, link usage, and a priority of the traffic flow, and wherein the embodied program code is further readable/executable by the processor to determine, using the processor, an amount of bandwidth which is available to transmit the traffic flow based on a priority of its selected traffic class, with traffic flows from a traffic class having a higher priority being allocated proportionally more bandwidth than traffic flows from a traffic class having a lower priority.

17. The computer program product as recited in claim 13 , wherein the embodied program code is further readable/executable by the processor to:

charge, using the processor, a provider of the traffic flow a monetary fee related to the desired priority for the traffic flow.

18. The computer program product as recited in claim 13 , wherein the identifier is stored to headers of the packets in a standard Ethernet frame format in a virtual local area network (VLAN) identifier in a three bit priority code point (PCP) field in a VLAN tag portion of headers of the packets.

19. The computer program product as recited in claim 13 , wherein the embodied program code is further readable/executable by the processor to:

create, using the processor, the plurality of traffic classes, each traffic class representing a priority of one or more Ethernet traffic flows;

allocate, using the processor, an available bandwidth for each link amongst one or more of the plurality of traffic classes;

allocate, using the processor, an available bandwidth for each link of a virtual network interface card (vNIC) amongst one or more of the plurality of traffic classes; and

create, using the processor, identifiers for each of the traffic classes.

20. The computer program product as recited in claim 13 , wherein the embodied program code is further readable/executable by the processor to:

receive, using the processor, a second traffic flow;

determine, using the processor, a traffic class of the second traffic flow as an override traffic class; and

provide, using the processor, highest priority to the second traffic flow.

21. A method for prioritizing traffic flow handling, the method comprising:

receiving a traffic flow comprising a plurality of packets using one or more virtual ports of a virtual switch (vSwitch);

classifying the traffic flow into a traffic class based on a characteristic of the traffic flow, the traffic class being selected from a plurality of traffic classes, wherein the characteristic comprises a priority of the traffic flow, and wherein the priority of the traffic flow is used to select a traffic class for the traffic flow;

determining an amount of bandwidth which is available to transmit the traffic flow based on a priority of its selected traffic class, with traffic flows from a traffic class having a higher priority being allocated proportionally more bandwidth than traffic flows from a traffic class having a lower priority;

allocating computing time slices of a processor to each of the plurality of traffic classes according to a priority of the traffic class;

storing an identifier of the selected traffic class to one or more of the packets in a virtual local area network (VLAN) identifier in a three bit priority code point (PCP) field in a VLAN tag portion of a header of the one or more packets; and

transmitting the traffic flow according to its destination based on the priority of its selected traffic class.

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

receiving a request indicating a desired priority of a traffic flow;

assigning the traffic flow to a traffic class corresponding to the desired priority; and

charging a fee related to the desired priority for the traffic flow to a provider 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: BASSO, CLAUDE; BIRKE, ROBERT; CRISAN, DANIEL; DECUSATIS, CASIMER M.; GUSAT, MIRCEA; KAMBLE, KESHAV G.; MINKENBERG, CYRIEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030218/0362 →
Continuity (1)
Related Publication 20140307554A1 · Oct 16, 2014