Software Re-dispatching for Overlay Flow Hash Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Overlay network encapsulation causes packets from physical and logical networks to be hashed differently, leading to incorrect core assignment for processing, resulting in inefficiencies and processing delays due to locking of common data structures.

Innovation Solution

Software re-dispatching or hardware-aware dispatching techniques are employed to ensure packets of the same flow are hashed and routed to the same core, using the same hashing algorithm or custom hardware that recognizes overlay encapsulation, thereby maintaining consistent core assignment regardless of network type.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hardware RSS hashing is used on overlay encapsulated packets, then packet processing parallelism is improved, but packets of the same flow may be dispatched to different cores causing processing inefficiency

Engineering Contradiction:
Improvepacket processing parallelismVSAvoidflow consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

A software re-dispatching mechanism acts as an intermediary between hardware RSS hashing and core processing. The software layer detects overlay encapsulated packets, re-calculates their hash values based on inner header fields, and re-dispatches them to the correct cores, ensuring flow consistency while maintaining hardware-level parallelism for non-overlay packets.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The packet processing system is segmented into three distinct layers: hardware RSS hashing layer (for initial parallelism), software re-dispatching layer (for overlay packet correction), and core processing layer (for actual packet handling). This segmentation allows each layer to specialize in its function, with the software layer specifically handling overlay encapsulated packets.

Inventive Principle:
Principle #1Segmentation

2Reliability

If software re-dispatching is implemented for overlay packets, then flow consistency is improved, but additional processing overhead is introduced

Engineering Contradiction:
Improveflow consistencyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The software re-dispatching mechanism applies partial action by only processing overlay encapsulated packets rather than all packets. Non-overlay packets bypass the software re-dispatching layer entirely and go directly to core processing, minimizing additional overhead while ensuring flow consistency for overlay packets.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Different processing paths are applied to different packet types: overlay encapsulated packets receive software re-dispatching with inner header-based hashing, while non-overlay packets receive direct hardware RSS hashing. This local quality approach optimizes the system by applying additional processing only where necessary.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9948559B2Software receive side scaling for overlay flow re-dispatching
Publication Date: 2018.04.17 VMWARE INC
  • US9948559B2 patent drawing
  • US9948559B2 patent drawing
  • US9948559B2 patent drawing

AI summary

A method of re-dispatching packets at a packet forwarding element that includes a hardware dispatch unit and a multi-core processor. The method, at a first core, receives a packet of a particular packet flow from the hardware dispatch unit. The packet is dispatched from the hardware dispatch unit to the first core based on a hardware implemented hashing algorithm. The first core identifies a plurality of header fields of the packet that uniquely identifies the particular packet flow when the packet includes overlay network encapsulation. The first core performs a software implemented hashing algorithm on the identified plurality of header fields of the packet to calculate a hash value. The hardware implemented hashing algorithm and the software implemented hashing algorithm generate the same hash value when performed on the same plurality of values. The first core re-dispatches the packet to a second core based on the calculated hash value.