IP Library Granted Patent US 11,196,651
Granted Patent B2
US 11,196,651 · App. 16/661,879 · Granted Dec 7, 2021

BFD offload in virtual network interface controller

Inventors: Yong Wang (Sunnyvale, CA); Boon Ang (Saratoga, CA); Guolin Yang (San Jose, CA); Wenyi Jiang (Fremont, CA)
Assignee: VMWARE, INC.
H04L43/0811H04L12/4633H04L12/4641H04L41/0686H04L67/141
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 11,196,651
App. No.
16/661,879
Granted
Dec 7, 2021
Kind
B2
Abstract

Some embodiments provide a method for monitoring the status of a network connection between first and second host computers. The method is performed in some embodiments by a tunnel monitor executing on the first host computer that also separately executes a machine, where the machine uses a tunnel to send and receive messages to and from the second host computer. The method establishes a liveness channel with the machine to iteratively determine whether the first machine is operational. The method further establishes a monitoring session with the second host computer to iteratively determine whether the tunnel is operational. When a determination is made through the liveness channel that the machine is no longer operational, the method terminates the monitoring session with the second host computer. When a determination is made that the tunnel is no longer operational, the method notifies the machine through the liveness channel.

Claims (39)

1. A method for monitoring a status of a tunnel between first and second host computers, the method comprising:

at a tunnel monitor executing on the first host computer that also separately executes a machine that uses the tunnel to send messages to or receive messages from the second host computer:

establishing a liveness channel with the machine to iteratively determine whether the machine is operational;

establishing a monitoring session with the second host computer to iteratively determine whether the tunnel is operational;

when a determination is made through the liveness channel that the machine is no longer operational, terminating the monitoring session with the second host computer; and

when a determination is made that the tunnel is no longer operational, notifying the machine through the liveness channel;

wherein a forwarding element executes separately from the machine on the first host computer, said forwarding element for forwarding messages between the machine and the second host computer;

wherein the forwarding element serves as an endpoint for the tunnel; and

wherein a virtual network interface card (VNIC) executes on the first host computer for providing messages to the machine and the forwarding element, wherein the VNIC comprises the tunnel monitor.

2. The method of claim 1 , wherein the first host computer comprises a physical network interface card (PNIC), wherein establishing a monitoring session with the second host computer comprises determining that the PNIC does not support executing a tunnel monitor.

3. The method of claim 1 , wherein a determination that is made through the established liveness channel that the machine is no longer operational comprises a determination that an application that is a source or destination of the data messages has failed.

4. The method of claim 3 further comprising receiving a set of status messages through the liveness channel from the application while the application is operational, wherein the determination that the application has failed comprises a determination that a status message has not been received through the liveness channel from the process within a particular period of time.

5. The method of claim 3 , wherein the determination that the application has failed comprises:

sending through the liveness channel a status query to the application; and

determining that a reply to the status query has not been received through the liveness channel within a particular period of time.

6. The method of claim 3 , wherein the application is a first application in a plurality of applications operating in the machine, wherein the monitoring session is a first monitoring session in a plurality of monitoring sessions with a plurality of other host machines exchanging data messages with the plurality of applications, the method further comprising providing a status update to the machine for each monitoring session.

7. The method of claim 1 , wherein establishing the monitoring session comprises exchanging a set of control messages with the second host computer through the tunnel.

8. The method of claim 7 , wherein a determination that is made through the monitoring session that the tunnel is no longer operational comprises a determination that a control message has not been received from the second host computer within a particular period of time.

9. The method of claim 1 , wherein the machine is a first machine, wherein a second machine executes on the second host computer, wherein the second machine exchanges data messages with the first machine.

10. The method of claim 9 , wherein establishing the monitoring session comprises exchanging a set of control messages with the second machine.

11. The method of claim 9 , wherein the forwarding element is a first forwarding element, wherein a second forwarding element executes on the second host computer separately from the second machine, wherein establishing the monitoring session comprises exchanging control messages with the second forwarding element.

12. The method of claim 1 , wherein the liveness channel comprises an application programming interface (API).

13. A non-transitory machine readable medium storing a program which when executed by a processing unit monitors a status of a tunnel between first and second host computers, the program comprising sets of instructions for:

at a tunnel monitor executing on the first host computer that also separately executes a machine that uses the tunnel to send messages to or receive messages from the second host computer:

establishing a liveness channel with the machine to iteratively determine whether the machine is operational;

establishing a monitoring session with the second host computer to iteratively determine whether the tunnel is operational;

when a determination is made through the liveness channel that the machine is no longer operational, terminating the monitoring session with the second host computer; and

when a determination is made that the tunnel is no longer operational, notifying the machine through the liveness channel;

wherein a forwarding element executes separately from the machine on the first host computer, said forwarding element for forwarding messages between the machine and the second host computer;

wherein the forwarding element serves as an endpoint for the tunnel; and

wherein a virtual network interface card (VNIC) executes on the first host computer for providing messages to the machine and the forwarding element, wherein the VNIC comprises the tunnel monitor.

14. The non-transitory machine readable medium of claim 13 , wherein a determination that is made through the established liveness channel that the machine is no longer operational comprises a determination that an application that is a source or destination of the data messages has failed, wherein the application is a first application in a plurality of applications operating in the machine, wherein the monitoring session is a first monitoring session in a plurality of monitoring sessions with a plurality of other host machines exchanging data messages with the plurality of applications, the program further comprising a set of instructions for providing a status update to the machine for each monitoring session.

15. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for establishing the monitoring session with the second host computer comprises sets of instructions for:

receiving a set of parameters from the machine through the liveness channel; and

using the received set of parameters, configuring the monitoring session.

16. The non-transitory machine readable medium of claim 15 , wherein the received set of parameters comprises an address of the machine, an address of the second host computer, and a frequency for control messages exchanged through the monitoring session with the second host computer.

17. The non-transitory machine readable medium of claim 13 , wherein the program further comprises sets of instructions for:

receiving a notification from the first machine that the monitoring session is no longer required; and

based on the notification, terminating the monitoring session with the second host computer.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: WANG, YONG; ANG, BOON; YANG, GUOLIN; JIANG, WENYI
To: VMWARE, INC.
Reel/Frame 050807/0829 →