Batch Packet Processing in Software Virtual Switches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software virtual switches in datacenters face performance challenges due to the use of general-purpose processing units, which are slower than application-specific integrated circuits, leading to inefficiencies in packet processing.
Innovation Solution
A software managed forwarding element processes packets in batches, identifying and grouping packets by data flow characteristics to execute actions collectively, using cached and exact-match flow entries to optimize processing and reduce computational resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software virtual switches use general-purpose processing units (CPUs) to process packets individually, then versatility and flexibility are improved, but processing speed and performance deteriorate
Solution Approach 1:
The patent merges multiple individual packet processing operations into a single batch processing operation. Packets belonging to the same data flow are grouped together and processed simultaneously using shared lookup results and action execution, reducing the total number of processing cycles required while maintaining the flexibility of software-based forwarding.
Solution Approach 2:
The patent performs preliminary actions by caching lookup results from flow tables before actual packet forwarding. The software managed forwarding element pre-computes match results and stores them in caches (exact-match cache and cached flow entries), so that subsequent packets in the same batch can reuse these results without repeating expensive lookup operations.
2Measurement precision
If software virtual switches process packets individually, then packet-by-packet control precision is improved, but processing efficiency and throughput deteriorate
Solution Approach 1:
The patent combines multiple packet processing operations into a single batch operation while preserving individual packet control precision. By grouping packets with identical flow table match results and executing actions on the entire group simultaneously, the system achieves both efficiency (through batch processing) and precision (through per-packet flow matching).
Solution Approach 2:
The patent changes the processing parameter from individual packet handling to batch packet handling. By modifying how packets are grouped and processed (using batch identifiers and group-based action execution), the system improves throughput while maintaining the ability to apply precise flow-based control rules to each packet within the batch.
3Measurement precision
If software managed forwarding element processes each packet through staged lookup tables individually, then flow matching accuracy is improved, but computational overhead and processing time deteriorate
Solution Approach 1:
The patent performs preliminary flow table lookups and caches the match results before actual packet forwarding. The software managed forwarding element pre-computes which flow table entries match incoming packets and stores these match results in caches, eliminating the need to repeat expensive staged lookup operations for subsequent packets in the same batch while maintaining accurate flow matching.
Solution Approach 2:
The patent creates cached copies of flow table match results that can be reused for multiple packets. Instead of performing identical lookup operations on each packet, the system copies the match results from the flow tables into caches (exact-match cache and cached flow entries), allowing rapid comparison and matching of subsequent packets against these pre-computed results.
4Ease of operation
If actions are executed on each packet individually, then per-packet action control is improved, but I/O transaction overhead and resource consumption deteriorate
Solution Approach 1:
The patent merges individual packet action executions into a single batch action execution. Packets that match the same flow table entry and require the same actions are grouped together, and the actions (such as NIC transmit operations) are executed once for the entire group rather than once per packet, dramatically reducing I/O transaction overhead and resource consumption while maintaining per-packet action control through the batch processing mechanism.
Data Source
AI summary
Some embodiments provide a method for a managed forwarding element. The method receives a set of packets for processing by the managed forwarding element. For each of several packets in the set, the method associates the packet with one of several groups of other packets in the set. Each group of packets shares a set of characteristics. For each group of packets the method identifies a set of actions to perform and executes the specified set of actions on all of the packets in the group together.


