Virtual TOE Bypassing Virtual Network Stack for Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network traffic processing requires significant host resources due to the need for multiple I/O operations and single-threaded processing, which can lead to inefficiencies in handling packets.
Innovation Solution
The method involves using a hardware Transmission Control Protocol (TCP) offload engine (HW TOE) to process packets, bypassing the virtual network stack (VNS), and utilizing a policy engine to determine when to use the HW TOE or an on-load TOE for packet processing, ensuring efficient handling of inbound and outbound packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If packets are processed using specialized hardware TOE, then host resource utilization is reduced, but device complexity increases
Solution Approach 1:
The patent introduces a virtual TOE (VTOE) as an intermediary layer between the socket and the physical TOE. The VTOE manages multiple virtual instances that can be mapped to a shared physical TOE resource, allowing multiple virtual machines or applications to access TCP offload capabilities without each requiring dedicated hardware. This intermediary abstraction reduces overall host resource utilization while managing the complexity of sharing physical hardware among multiple users.
Solution Approach 2:
The physical TOE is designed to serve multiple virtual TOEs simultaneously, making a single hardware device perform multiple functions for different virtual machines or applications. This multi-functionality allows the system to reduce host resource utilization by sharing the physical TOE across multiple users, while the VTOE layer manages the complexity of this shared resource allocation.
2Speed
If packets bypass the virtual network stack for direct TOE processing, then processing speed increases, but reliability decreases due to potential loss of network stack functionality
Solution Approach 1:
The VTOE acts as an intermediary that selectively routes packets. For packets that can be processed directly by the physical TOE, the VTOE enables bypassing the VNS to achieve high-speed processing. For packets requiring network stack functionality (such as those needing advanced routing, firewall rules, or protocol handling), the VTOE redirects them through the VNS. This mediator approach maintains reliability by preserving necessary network stack processing while enabling speed improvements where applicable.
Solution Approach 2:
The system dynamically determines the processing path for each packet based on its requirements. The VTOE evaluates whether a packet should be processed directly by the physical TOE (for speed) or routed through the VNS (for reliability and advanced processing). This dynamic routing ensures that each packet takes the most appropriate path, balancing speed and reliability based on individual packet needs.
3Productivity
If a single physical TOE serves multiple virtual TOEs, then resource efficiency improves, but fault tolerance decreases
Solution Approach 1:
The system implements failover mechanisms where the VTOE layer maintains the capability to redirect traffic from a failed physical TOE to alternative processing paths. By preparing these backup routes in advance, the system cushions against potential hardware failures. When a physical TOE fails, the VTOE can redirect affected virtual machines' traffic to other available TOE resources or back through the software network stack, maintaining service continuity despite the shared resource vulnerability.
Data Source
AI summary
A method for processing packets. The method includes receiving a first packet by a first socket on a host, determining by the first socket to process the first packet using a first virtual Transmission Control Protocol offload engine (VTOE), transmitting the first packet to the first VTOE, wherein transmitting the first packet to the first VTOE bypasses a first virtual network stack interposed between the first socket and first VTOE, transmitting the first packet to a HW TOE operatively connected to the host, processing the first packet, using the HW TOE, to obtain a first processed packet; and transmitting the first processed packet to a network operatively connected to the HW TOE, where the HW TOE is associated with the first VTOE and a second VTOE in the host.


