IP Library Granted Patent US 9,654,410
Granted Patent B2
US 9,654,410 · App. 14/751,668 · Granted May 16, 2017

Virtual quantized congestion notification

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,654,410
App. No.
14/751,668
Granted
May 16, 2017
Kind
B2
Abstract

Congestion management for data traffic in a virtual domain identifies a congestion source and sends a message to the source to adjust data traffic rates. The source may be a virtual machine hosted by a physical server with one or more virtual servers incorporated. A congestion manager may identify the source and send the message to the source without affecting other data sources hosted by the physical server or the virtual servers. In some embodiments, information about the congestion source may be encapsulated in a packet payload readable only by the congestion source so only the congestion source receives the instruction to adjust the transmission rate.

Claims (49)

1. A non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor to:

read the number of data packets in a receiving queue of a virtual switching device;

determine if the number of data packets in the receiving queue exceeds a threshold number of data packets for the receiving queue;

read a virtual machine source address of the data packets in the receiving queue; and

send a notification message to the virtual machine source address instructing the virtual machine source address to decrease rate of transmission of the data packets, wherein information about a congestion virtual machine source is encapsulated in a data packet payload readable by the intended congestion virtual machine source such that the intended congestion virtual machine source receives the notification message, and wherein the notification message is based on a mismatch between a data packet injection rate and a data packet consumption rate, of the receiving queue, over time.

2. The computer readable storage medium of claim 1 , wherein the data packets in the receiving queue are from a plurality of sources.

3. The computer readable storage medium of claim 2 , wherein the program code is executable by a processor to:

attach a tag including the virtual machine source address to the data packets; and

determine the virtual machine source address by the tag of the data packets.

4. The computer readable storage medium of claim 3 , wherein the program code is executable by a processor to:

identify one of the plurality of sources by the determined virtual machine source address; and

send the notification message to the identified one of the plurality of sources.

5. The computer readable storage medium of claim 4 , wherein the identified one of the plurality of sources is a virtual machine.

6. The computer readable storage medium of claim 3 , wherein the data packets of the determined virtual machine source address are data packets in the receiving queue exceeding a threshold rate of receipt.

7. The computer readable storage medium of claim 6 , wherein the program code is executable by a processor to:

sample respective rates of data packets entering the receiving queue from each of the plurality of sources;

identify a sampling rate exceeding the threshold rate of receipt;

identify one of the plurality of sources associated with the identified sampling rate; and

send the notification message to the identified one of the plurality of sources.

8. A system for controlling congestion of data traffic in a virtual switching device, the system comprising:

a processor; and

a non-transitory computer readable storage medium having program code embodied therewith, the program code readable/executable by the processor to:

read the number of data packets in a receiving queue of a virtual switching device;

determine if the number of data packets in the receiving queue exceeds a threshold number of data packets for the receiving queue;

read a virtual machine source address of the data packets in the receiving queue; and

send a notification message to the virtual machine source address instructing the virtual machine source address to decrease rate of transmission of the data packets, wherein information about a congestion virtual machine source is encapsulated in a data packet payload readable by the intended congestion virtual machine source such that the intended congestion virtual machine source receives the notification message, and wherein the notification message is based on a mismatch between a data packet injection rate and a data packet consumption rate, of the receiving queue, over time.

9. The system of claim 8 , wherein the data packets in the receiving queue are from a plurality of sources.

10. The system of claim 9 , wherein the program code is further readable/executable by the processor to:

attach a tag including the virtual machine source address to the data packets; and

determine the virtual machine source address by the tag of the data packets.

11. The system of claim 10 , wherein the program code is further readable/executable by the processor to:

identify one of the plurality of sources by the determined virtual machine source address; and

send the notification message to the identified one of the plurality of sources.

12. The system of claim 11 , wherein the identified one of the plurality of sources is a virtual machine.

13. The system of claim 12 , wherein the program code is further readable/executable by the processor to send the notification message from the virtual switching device through a physical switch to the virtual machine.

14. The system of claim 10 , wherein the data packets of the determined virtual machine source address are data packets in the receiving queue exceeding a threshold rate of receipt.

15. The system of claim 14 , wherein the program code is further readable/executable by the processor to:

sample respective rates of data packets entering the receiving queue from each of the plurality of sources;

identify a sampling rate exceeding the threshold rate of receipt;

identify one of the plurality of sources associated with the identified sampling rate; and

send the notification message to the identified one of the plurality of sources.

16. The system of claim 8 , wherein the virtual machine source address corresponds to a local source in the virtual switching device and the notification message is sent to the local source using an explicit message.

17. A network switch, comprising:

a physical network interface card (NIC);

a virtual switching device interfaced with the physical NIC and connected to a source of data traffic; and

a buffer module connected to the virtual switching device including a receiving queue for data packets received by the virtual switching device from the source of data traffic, wherein the virtual switching device is configured to forward a notification message to the source of data traffic indicating congestion in the receiving queue, and wherein the notification message is based on a mismatch between a data packet injection rate and a data packet consumption rate, of the receiving queue, over time.

18. The network switch of claim 17 , wherein the notification message is generated by a local vNIC or a remote network entity connected to the network switch.

19. The network switch of claim 18 , wherein a destination of the notification message is a virtual machine MAC address.

20. The network switch of claim 17 , wherein the virtual switching device is configured to add a congestion notification tag to a data packet corresponding to the notification message, wherein the congestion notification tag is configured to identify the source of data traffic.

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 Jun 26, 2015
From: BIRKE, ROBERT; CRISAN, DANIEL; DECUSATIS, CASIMER M.; GUSAT, MIRCEA; KAMBLE, KESHAV; MINKENBERG, CYRIEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035984/0716 →