BFD Offload to Virtual NIC for VM Resource Conservation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current connectivity detection protocols like BFD do not support packet prioritization or quality of service, leading to false negative failure detection under heavy traffic conditions, and implementing monitoring engines at the application level consumes scarce processing resources in virtual machines.
Innovation Solution
Offloading the BFD monitoring engine to the virtual network interface card (VNIC) of the hypervisor, which establishes a monitoring session with the network endpoint and communicates with the application through a liveness channel to verify its operational status, reducing the processing load on the virtual machine and ensuring reliable connectivity detection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If BFD monitoring engine is implemented at the application level in VM, then connectivity detection can be performed, but processing resources in the VM are consumed and BFD packets may be dropped under heavy traffic
Solution Approach 1:
The BFD monitoring engine is extracted from the application layer in the VM and relocated to the hypervisor layer. This separation removes the processing burden from the VM's processing resources while maintaining connectivity detection functionality. The hypervisor's dedicated resources handle BFD packet processing, preventing resource contention and packet drops that occur when the application-level engine operates under heavy traffic conditions.
2Reliability
If BFD packets are transmitted over the datapath without prioritization, then network connectivity can be monitored, but packets may be dropped under heavy traffic conditions
Solution Approach 1:
The hypervisor acts as an intermediary between the application and the network datapath for BFD packet handling. The hypervisor's BFD monitoring engine receives and processes BFD packets before they enter the standard datapath, allowing it to prioritize and protect these critical monitoring packets from being dropped during heavy traffic conditions. This intermediary position enables the system to maintain reliable connectivity detection even when network traffic is congested.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
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.