Virtual Switch Shared Memory Buffer for SDN Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network communication mechanisms between virtual switches and network functions in software-defined networks (SDNs) incur delays due to context switching, which hampers efficient packet processing and increases operational overhead.
Innovation Solution
Implementing a shared memory buffer accessible by both virtual switches and network functions to facilitate direct packet transfer without context switching, allowing network functions to operate within the user-space of the host operating system, thereby reducing latency and resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional network communication mechanisms are used between virtual switches and network functions, then packet processing can be performed, but context switching delays occur and operational overhead increases
Solution Approach 1:
The patent merges the virtual switch and network functions into a single address space, eliminating the boundary that causes context switching. By placing both components in user-space with shared memory access, the system combines previously separate execution environments, allowing direct packet transfer without kernel-space transitions.
Solution Approach 2:
The patent introduces a shared memory buffer as an intermediary mechanism between virtual switches and network functions. This shared memory acts as a mediator that enables direct data exchange without requiring context switching to kernel space, thus reducing the time loss while maintaining proper data flow control.
2Reliability
If network functions operate in kernel-space, then they can access network resources, but resource consumption and operational overhead increase
Solution Approach 1:
The patent enables network functions to operate autonomously in user-space with direct access to shared memory and network resources. By self-managing packet processing in user-space without requiring kernel-space intervention, the system reduces resource consumption while maintaining reliable network resource access through the shared memory interface.
Solution Approach 2:
The patent replaces the traditional kernel-space execution model with a user-space execution model. This substitution eliminates the need for context switching to kernel-space while maintaining network resource access capabilities through shared memory, thereby reducing the operational overhead and resource consumption associated with kernel-space operations.
3Productivity
If multiple context switches are performed for packet processing, then network functions can be executed, but processing latency increases
Solution Approach 1:
The patent establishes continuous packet processing by eliminating context switching interruptions. By keeping both virtual switches and network functions in user-space with shared memory access, the system enables uninterrupted packet flow, maintaining continuous useful action without the breaks caused by kernel-space transitions.
Solution Approach 2:
The patent performs preliminary setup by placing both virtual switches and network functions in user-space with pre-configured shared memory access before packet processing begins. This preliminary arrangement eliminates the need for runtime context switching, allowing packet processing to proceed without latency interruptions.
Data Source
AI summary
A virtual switch executes on a computer system to forward packets to one or more destinations. A method of the disclosure includes receiving, by a processing device executing a virtual network switch, a network packet comprising a header and a payload, identifying, in view of the header, a port of the virtual switch for forwarding the network packet, storing the network packet to a shared memory buffer associated with the port, wherein the shared memory buffer is accessible to a network function, notifying the network function that the network packet is stored to the shared memory buffer; and processing the network packet by the network function.


