Transport-level bonding

US9787590B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9787590-B2
Application numberUS-201514666342-A
CountryUS
Kind codeB2
Filing dateMar 24, 2015
Priority dateMar 25, 2014
Publication dateOct 10, 2017
Grant dateOct 10, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A network node includes one or more network adapters and a bonding driver. The one or more network adapters are configured to communicate respective data flows over a communication network by applying a transport layer protocol that saves communication state information in a state of a respective network adapter. The bonding driver is configured to exchange traffic including the data flows of an application program that is executed in the network node, to communicate the data flows of the traffic via one or more physical links of the one or more network adapters, and, in response to a physical-transport failure, to switch a given data flow to a different physical link or a different network path, transparently to the application program.

First claim

Opening claim text (preview).

The invention claimed is: 1. A network node, comprising: one or more network adapters, which are configured to communicate respective data flows over a communication network by applying a transport layer protocol that saves communication state information in a state of a respective network adapter; and a bonding driver, which is configured to exchange traffic comprising the data flows of an application program that is executed in the network node, to communicate the data flows of the traffic via one or more physical links of the one or more network adapters, and, in response to a physical-transport failure, to exchange state information with a remote bonding driver, and to resume the data flow over a different physical link or a different network path, transparently to the application program, starting from a point determined from the exchanged state information. 2. The network node according to claim 1 , wherein the transport layer protocol comprises a Remote Direct Memory Access (RDMA) protocol. 3. The network node according to claim 1 , wherein the bonding driver is configured to manage a virtual state that the application program uses for interfacing with states of the network adapters. 4. The network node according to claim 3 , wherein the states of the network adapters comprise physical state elements, wherein the virtual state comprises virtual state elements, and wherein the bonding driver is configured to associate the virtual state elements with the physical state elements so that at least one virtual state element corresponds to one or more physical state elements. 5. The network node according to claim 1 , wherein the bonding driver is configured to switch a given data flow from one of the network adapters to another of the network adapters based on a switching criterion. 6. The network node according to claim 1 , wherein the bonding driver is configured, in response to the physical-transport failure, to identify requests of the application program that were completed but not acknowledged because of the failure and to generate respective completion queue entries for the identified requests. 7. The network node according to claim 1 , wherein the bonding driver is configured to resume the data flow starting from a packet which was being transmitted when the failure occurred. 8. A network node, comprising: one or more network adapters, which are configured to communicate respective data flows over a communication network by applying a transport layer protocol that saves communication state information in a state of a respective network adapter; and a bonding driver, which is configured to exchange traffic comprising the data flows of an application programs that is executed in the network node, to communicate the data flows of the traffic via one or more physical links of the one or more network adapters, and, in response to a physical-transport failure, to switch a given data flow to a different physical link or a different network path, transparently to the application program, wherein the bonding driver is configured to manage a virtual state that the application program uses for interfacing with states of the network adapters, wherein the bonding driver is configured to identify a data flow in which data transfers have been completed by polling one or more of the physical state elements associated with the virtual state element of the data flow. 9. A network node, comprising: one or more network adapters, which are configured to communicate respective data flows over a communication network by applying a transport layer protocol that saves communication state information in a state of a respective network adapter; and a bonding driver, which is configured to exchange traffic comprising the data flows of an application programs that is executed in the network node, to communicate the data flows of the traffic via one or more physical links of the one or more network adapters, and, in response to a physical-transport failure, to switch a given data flow to a different physical link or a different network path, transparently to the application program, wherein the network adapters are configured to communicate the data flows with a peer network node via respective physical links of the network adapters, and wherein the bonding driver is configured to switch a given data flow from a first physical link to a different second physical link using an out of band protocol. 10. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow in response to a failure event occurring on the first physical link. 11. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow to resolve a connectivity problem in the network. 12. The network node according to claim 9 , wherein the bonding driver is configured to resume the given data flow by establishing a connection with the peer network node over the second physical link. 13. The network node according to claim 12 , wherein the bonding driver is configured to resume the given data flow by exchanging failure state information obtained at a time of failure with a peer bonding driver of the peer network node during the establishment of a new physical connection. 14. The network node according to claim 13 , wherein the failure state information comprises a sequence number of a packet that was sent via the first physical link prior to the failure event and has arrived successfully at the peer network node. 15. The network node according to claim 13 , wherein the failure state information comprises an outcome of an atomic memory operation that was executed at the peer network node prior to the failure event. 16. The network node according to claim 13 , wherein the failure state information comprises resources for RDMA-READ operations that were handled by a responder of the peer network node prior to the failure event. 17. The network node according to claim 13 , wherein the failure state information comprises a responder state of the peer network node prior to the failure event, including at least one of: current virtual address, R_Key, and a number of bytes committed so far. 18. The network node according to claim 9 , wherein the physical links comprise respective first and second physical objects, and wherein the bonding driver is configured to switch the given data flow by replacing an association between a virtual object serving the given data flow from the first physical object to the second physical object. 19. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow as part of migrating a Virtual Machine (VM) communicating the given data flow to another network node. 20. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow when performing load balancing. 21. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow to a physical link that provides a higher bandwidth path to the peer network node. 22. The network node according to claim 9 , wherein the bonding driver is configured to switch the given data flow to apply a high-availability policy. 23. A method for communication, comprising: communicating via one or more network adapters respective data flows over a communication network by applying a transport layer protocol that saves communication state i

Assignees

Inventors

Classifications

  • Flow based routing · CPC title

  • using route fault recovery · CPC title

  • by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure · CPC title

  • H04L47/125Primary

    by balancing the load, e.g. traffic engineering · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9787590B2 cover?
A network node includes one or more network adapters and a bonding driver. The one or more network adapters are configured to communicate respective data flows over a communication network by applying a transport layer protocol that saves communication state information in a state of a respective network adapter. The bonding driver is configured to exchange traffic including the data flows of a…
Who is the assignee on this patent?
Mellanox Technologies Ltd, Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification H04L47/125. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 10 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).