Batch Packet Processing in Software Virtual Switches

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveversatilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If software virtual switches process packets individually, then packet-by-packet control precision is improved, but processing efficiency and throughput deteriorate

Engineering Contradiction:
Improvecontrol precisionVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

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).

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveflow matching accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improveper-packet controlVSAvoidI/O transaction overhead
Core Design Contradiction:
Ease of operationVSLoss of energy

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10038637B2Batch processing of packets
Publication Date: 2018.07.31 VMWARE INC
  • US10038637B2 patent drawing
  • US10038637B2 patent drawing
  • US10038637B2 patent drawing

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.