System and method for message routing in a network
US-9210073-B2 · Dec 8, 2015 · US
US10412015B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10412015-B2 |
| Application number | US-201715421313-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 31, 2017 |
| Priority date | Jun 30, 2014 |
| Publication date | Sep 10, 2019 |
| Grant date | Sep 10, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The congestion notification system of some embodiments sends congestion notification messages from lower layer (e.g., closer to a network) components to higher layer (e.g., closer to a packet sender) components. When the higher layer components receive the congestion notification messages, the higher layer components reduce the sending rate of packets (in some cases the rate is reduced to zero) to allow the lower layer components to lower congestion (i.e., create more space in their queues by sending more data packets along the series of components). In some embodiments, the higher layer components resume full speed sending of packets after a threshold time elapses without further notification of congestion. In other embodiments, the higher layer components resume full speed sending of packets after receiving a message indicating reduced congestion in the lower layers.
Opening claim text (preview).
The invention claimed is: 1. A method of reducing congestion in a network stack of a host machine having a virtual switch with a plurality of downlink ports each connected to a virtual network interface (VNIC) and at least one uplink port connected to a physical network interface (PNIC), the network stack comprising a series of components that send data packets through the network stack to a network, the method comprising: at the VNIC: sending data packets at an initial rate to a first lower-level component of the network stack, the first lower-level component being closer to the network than the VNIC; receiving a congestion notification message generated by a second lower-level component of the network stack, the second lower-level component having a packet queue and being closer to the network than the VNIC and the first lower-level component, wherein the congestion notification message includes a source address of a packet arriving at the second lower-level component before the congestion notification message is sent, the packet being the most recent packet to arrive at the second lower-level component, or wherein the congestion notification message includes a most common source address of a plurality of packets arriving at the second lower-level component before the congestion notification message is sent; and reducing the rate of sending data packets to the first lower-level component of the network stack in response to the congestion notification message. 2. The method of claim 1 , wherein the VNIC subscribes to a message bus to receive the congestion notification message before receiving the congestion notification message, the congestion notification message being received at the VNIC by way of the message bus. 3. The method of claim 1 , wherein the congestion notification message is sent when the packet queue of the second lower-level component is more than a threshold congestion setting. 4. The method of claim 1 , further comprising increasing the rate of sending data packets to the first lower-level component of the network stack in response to a second congestion notification being received. 5. The method of claim 4 , wherein the second congestion notification indicates that the packet queue is below a threshold. 6. The method of claim 1 , wherein the rate of sending data packets to the first lower-level component of the network stack is based on a level of congestion. 7. The method of claim 1 , wherein the second lower-level component is an uplink manager that sends packets to the PNIC. 8. A system for reducing congestion in a network stack, the system comprising: a host machine having a virtual switch with a plurality of downlink ports each connected to a virtual network interface (VNIC) and at least one uplink port connected to a physical network interface (PNIC), the network stack comprising a series of components that send data packets through the network stack to a network, and wherein the VNIC is configured to: send data packets at an initial rate to a first lower-level component of the network stack, the first lower-level component being closer to the network than the VNIC; receive a congestion notification message generated by a second lower-level component of the network stack, the second lower-level component having a packet queue and being closer to the network than the VNIC and the first lower-level component, wherein the congestion notification message includes a source address of a packet arriving at the second lower-level component before the congestion notification message is sent, the packet being the most recent packet to arrive at the second lower-level component, or wherein the congestion notification message includes a most common source address of a plurality of packets arriving at the second lower-level component before the congestion notification message is sent; and reduce the rate of sending data packets to the first lower-level component of the network stack in response to the congestion notification message. 9. The system of claim 8 , further comprising a message bus, and wherein the VNIC subscribes to the message bus to receive the congestion notification message before receiving the congestion notification message, the congestion notification message being received at the VNIC by way of the message bus. 10. The system of claim 8 , wherein the congestion notification message is sent when the packet queue of the second lower-level component is more than a threshold congestion setting. 11. The system of claim 8 , wherein the VNIC is further configured to increase the rate of sending data packets to the first lower-level component of the network stack in response to a second congestion notification being received. 12. The system of claim 11 , wherein the second congestion notification indicates that the packet queue is below a threshold. 13. The system of claim 8 , wherein an amount the rate of sending data packets to the first lower-level component of the network stack is reduced by is based on a level of congestion. 14. The system of claim 8 , wherein the second lower-level component is an uplink manager that sends packets to the PNIC. 15. A non-transitory machine readable medium storing a program that when executed by at least one processor implements a component of a network stack of a host machine having a virtual switch with a plurality of downlink ports each connected to a virtual network interface (VNIC) and at least one uplink port connected to a physical network interface (PNIC), the network stack comprising a plurality of components that transmit data packets from a data packet sender to a network, the program comprising sets of instructions for: at the VNIC; sending data packets at an initial rate to a first lower-level component of the network stack, the first lower-level component being closer to the network than the VNIC; receiving a congestion notification message generated by a second lower-level component of the network stack, the second lower level component having a packet queue and being closer to the network than the VNIC and the first lower-level component, wherein the congestion notification message includes a source address of a packet arriving at the second lower-level component before the congestion notification message is sent, the packet being the most recent packet to arrive at the second lower-level component, or wherein the congestion notification message includes a most common source address of a plurality of packets arriving at the second lower-level component before the congestion notification message is sent; and reducing the rate of sending data packets to the first lower-level component of the network stack in response to the congestion notification message. 16. The non-transitory machine readable medium of claim 15 , wherein the program further comprises a set of instructions for increasing the rate of sending data packets when a threshold time passes without receiving a congestion notification message. 17. The non-transitory machine readable medium of claim 15 , wherein the congestion notification message is sent when the packet queue of the second lower-level component is more than a threshold congestion setting of the second component. 18. The non-transitory machine readable medium of claim 15 , wherein the program further comprises sets of instructions for increasing the rate of sending data packets to the first lower-level component of the network stack in response to a second congestion notification being received, the second congestion notification indicating that the packe
with rate being modified by the source upon detecting a change of network conditions · CPC title
Identifying congestion · CPC title
Threshold monitoring · CPC title
Avoiding congestion; Recovering from congestion · CPC title
characterised by the switching fabric construction · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.