Virtual Switch Offloading via Fragment Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network Function Virtualization (NFV) faces challenges with software-implemented virtual switches due to high processing delay and resource wastage, particularly in handling communication within and outside a host, leading to bottlenecks in I/O bus bandwidth when offloading relaying functions to hardware.
Innovation Solution
An information processing apparatus with a processor, host memory, and a programmable communication device that offloads the relaying function, using a virtual switch configuration where only header fragments are transferred over the I/O bus, minimizing bandwidth usage and reducing processor load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the relaying function of the virtual switch is offloaded to hardware (NIC), then processor load is reduced and relaying performance is improved, but I/O bus bandwidth becomes a bottleneck because all communication (both internal host communication and external network communication) must pass through the NIC
Solution Approach 1:
The patent segments communication paths into two distinct routes: (1) internal host communication between VMs uses a direct memory copy path bypassing the NIC, and (2) external network communication uses the NIC relaying path. This segmentation allows the system to utilize the high-speed memory bus for internal traffic while reserving NIC bandwidth for external traffic, thereby resolving the bandwidth bottleneck problem.
Solution Approach 2:
The patent introduces a virtual switch controller as an intermediary component that determines whether packets should be forwarded through the NIC or handled via direct memory copy. This intermediary enables intelligent routing decisions, directing internal host traffic away from the NIC to prevent bandwidth saturation while maintaining the offloaded relaying function for external traffic.
2Loss of energy
If a software-implemented virtual switch is used, then I/O bus bandwidth is preserved, but processor load increases and processing delay varies heavily
Solution Approach 1:
The patent replaces the software-based virtual switch relaying function with hardware-based offloading on the NIC for external network communication. This substitution transfers the relaying workload from the software layer (processor) to the hardware layer (NIC), significantly reducing processor load and eliminating the heavy computational burden while maintaining I/O bus efficiency.
Solution Approach 2:
The patent segments the virtual switch functionality into two parts: hardware offloaded relaying for external traffic on the NIC, and software-based direct memory copy for internal host traffic. This segmentation allows the system to leverage hardware acceleration where needed while using software only when necessary, optimizing both processing efficiency and resource utilization.
3Reliability
If all communication passes through the NIC when relaying is offloaded, then virtual switch relaying is achieved in hardware, but the I/O bus becomes a bottleneck reducing overall system performance
Solution Approach 1:
The patent segments data transfer paths based on destination: internal host VMs use direct memory copy through the processor (bypassing NIC), while external network traffic uses the NIC relaying path. This ensures that the I/O bus is not saturated by internal traffic, maintaining high data transfer speeds while preserving reliable hardware-based virtual switch relaying for external communication.
Solution Approach 2:
The patent implements dynamic routing decisions through the virtual switch controller, which adapts the communication path based on the packet destination. This dynamic approach allows the system to optimize the I/O bus utilization in real-time, directing traffic through the fastest available path while maintaining reliable hardware offloading when appropriate.
Data Source
AI summary
An apparatus includes: a storing device including regions allocated one to each of virtual machines; a processing device, connected to the storing device, that executes the virtual machines; a relay device, connected to the processing device, that executes a relaying process, serving as a virtual switch that connects the virtual machines to one another; and a transfer processor that transfers data between the regions through the processing device. The relay device obtains, from a first region, a first fragment data of target data being stored in the first region and indicating a destination of the target data, and outputs, when the destination is a second region, an instruction instructing the transfer processor to transfer the target data from the first region to the second region. The transfer processor transfers the target data from the first region to the second region through the processing device in response to the instruction.


