IP Library Granted Patent US 10,698,718
Granted Patent B2
US 10,698,718 · App. 15/953,225 · Granted Jun 30, 2020

Virtual machine (VM)-to-VM flow control using congestion status messages for overlay networks

Inventors: Liang Rong (Jiangsu, CN); Gang Tang (Nanjing, CN); Zi Jin Tao (Wuxi, CN); Ming Shuang Xian (Wuxi, CN); Yi Jing Zhu (Wuxi, CN)
Assignee: International Business Machines Corporation
G06F9/45558H04L47/10H04L47/115H04L47/12H04L47/125H04L47/263H04L49/50H04L49/70H04L67/2842G06F2009/45595H04L47/11
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 10,698,718
App. No.
15/953,225
Granted
Jun 30, 2020
Kind
B2
Abstract

In one embodiment, a system includes a processing circuit and logic integrated with and/or executable by the processing circuit that causes the processing circuit to receive a congestion notification message from a first virtual switch of a first server indicating that a first virtual machine (VM) hosted by the first server is overloaded. The logic also causes the processing circuit to advertise a congestion status of the first VM in a congestion status message to one or more virtual switches in a network in response to receiving the congestion notification message. Moreover, the logic causes the processing circuit to cause all virtual switches in the network except for the first virtual switch to stop sending traffic destined for the first VM while the first VM is overloaded without restricting sending traffic that is destined for other VMs hosted by the first server.

Claims (52)

1. A system, comprising:

a processing circuit; and

logic integrated with and/or executable by the processing circuit, wherein the logic causes the processing circuit to:

receive, using a first virtual switch, a congestion status message from a physical switch controller, the congestion status message indicating that a second virtual machine (VM) is overloaded, the second VM being hosted by a second system;

stop sending traffic, from the first virtual switch, that is destined for the second VM without restricting sending traffic from the first virtual switch that is destined for other VMs hosted by the second system in response to receiving the congestion status message from the physical switch controller;

send traffic from the first virtual switch that is destined for at least one of the other VMs hosted by the second system;

receive, at the first virtual switch, a congestion notification message from a first VM hosted by the system, the congestion notification message indicating a congestion status of the first VM and having been generated in response to a determination that the first VM is overloaded due to lack of sufficient resources to process additional packets; and

send the congestion notification message from the first virtual switch to the physical switch controller in response to the first virtual switch receiving the congestion notification message,

wherein the physical switch controller, the system, and the second system are discrete devices.

2. The system as recited in claim 1 , wherein the logic further causes the processing circuit to:

cache, using the first virtual switch, any incoming traffic that is destined for the first VM while the first VM is overloaded.

3. The system as recited in claim 1 , wherein the logic further causes the processing circuit to:

cache, using the first virtual switch, any outgoing traffic that is destined for the second VM while the second VM is overloaded.

4. The system as recited in claim 1 , wherein the logic further causes the processing circuit to:

receive, at the first virtual switch, a second congestion notification message from the first VM, the second congestion notification message indicating a second congestion status of the first VM and having been generated in response to a determination that the first VM is not overloaded; and

send the second congestion notification message from the first virtual switch to the physical switch controller in response to receiving the second congestion notification message at the first virtual switch.

5. The system as recited in claim 1 , wherein the logic further causes the processing circuit to:

receive, using the first virtual switch, a second congestion status message from the physical switch controller, the second congestion status message indicating that the second VM is not overloaded; and

send traffic, from the first virtual switch, that is destined for the second VM in response to receiving the second congestion status message from the physical switch controller.

6. The system as recited in claim 1 , wherein the congestion status message utilizes a type-length-value (TLV) format that advertises a congestion status of the second VM.

7. A system, comprising:

a controller; and

logic integrated with and/or executable by the controller, wherein the logic causes the controller to:

receive, by the controller, a congestion notification message from a first virtual switch of a first server indicating that a first virtual machine (VM) hosted by the first server is overloaded;

advertise, by the controller, a congestion status of the first VM in a congestion status message to one or more virtual switches in a network in response to receiving the congestion notification message; and

cause, by the controller, all virtual switches in the network except for the first virtual switch to stop sending traffic destined for the first VM while the first VM is overloaded without restricting sending traffic that is destined for other VMs hosted by the first server,

wherein the congestion status message is not sent to the first virtual switch.

8. The system as recited in claim 7 , wherein the one or more virtual switches comprise all virtual switches in the network except for the first virtual switch from which the congestion notification message was received.

9. The system as recited in claim 7 , wherein the congestion status message utilizes a type-length-value (TLV) format to advertise the congestion status of the first VM.

10. The system as recited in claim 7 , wherein the logic further causes the processing circuit to:

receive a second congestion notification message from the first virtual switch indicating that the first VM is no longer overloaded; and

advertise a second congestion status of the first VM in a second congestion status message to the one or more virtual switches in the network in response to receiving the second congestion notification message,

wherein the second congestion status message is not sent to the first virtual switch.

11. The system as recited in claim 10 , wherein the logic further causes the processing circuit to provide control plane functionality to the first virtual switch of the first server.

12. A method comprising:

receiving, using a first virtual switch of a first server, a congestion status message from a physical switch controller, the congestion status message indicating that a second virtual machine (VM) is overloaded, the second VM being hosted by a second server;

ceasing to send traffic, from the first virtual switch, that is destined for the second VM without restricting sending traffic from the first virtual switch that is destined for other VMs hosted by the second server in response to receiving the congestion status message from the physical switch controller;

sending traffic from the first virtual switch that is destined for at least one of the other VMs hosted by the second server;

receiving, at the first virtual switch, a congestion notification message from a first VM hosted by the first server, the congestion notification message indicating a congestion status of the first VM and having been generated in response to a determination that the first VM is overloaded due to lack of sufficient resources to process additional packets; and

sending the congestion notification message from the first virtual switch to the physical switch controller in response to the first virtual switch receiving the congestion notification message,

wherein the physical switch controller, the first server, and the second server are discrete devices.

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

caching, using the first virtual switch of the first server, any incoming traffic that is destined for the first VM while the first VM is overloaded.

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

caching, using the first virtual switch of the first server, any outgoing traffic that is destined for the second VM while the second VM is overloaded.

15. The method as recited in claim 12 , further comprising:

receiving, at the first virtual switch, a second congestion notification message from the first VM, the second congestion notification message indicating a second congestion status of the first VM and having been generated in response to a determination that the first VM is not overloaded; and

sending the second congestion notification message from the first virtual switch to the physical switch controller in response to receiving the second congestion notification message at the first virtual switch.

16. The method as recited in claim 15 , further comprising:

receiving, using the first virtual switch, a second congestion status message from the physical switch controller, the second congestion status message indicating that the second VM is not overloaded; and

sending traffic, from the first virtual switch, that is destined for the second VM in response to receiving the second congestion status message from the physical switch controller.

17. The method as recited in claim 12 , wherein the congestion status message utilizes a type-length-value (TLV) format that advertises a congestion status of the second VM.

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 17, 2018
From: RONG, LIANG; TANG, GANG; TAO, ZI JIN; XIAN, MING SHUANG; ZHU, YI JING
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045966/0846 →
Continuity (2)
Continuation 14694950 · Apr 23, 2015
Related Publication 20180232252A1 · Aug 16, 2018
Cited By (1)
US 12,647,311