VxLAN Fast Path Offloading for Linux Kernel Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Linux-based operating systems face performance limitations in processing VxLAN packets, specifically in terms of throughput and CPU cycles, as existing methods require significant processing resources and latency, even with hardware offloads.

Innovation Solution

Implementing a fast path environment that offloads VxLAN processing from the Linux OS to a dedicated dataplane, allowing most packets to bypass the Linux environment and utilize a fast data plane for high-throughput processing, with selective redirection to the Linux network stack for specific operations through an exception path.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If VxLAN processing is performed through the Linux kernel network stack, then protocol processing accuracy and control functionality are maintained, but processing throughput is limited and CPU cycles are consumed

Engineering Contradiction:
Improvepacket processing throughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments VxLAN packet processing into two distinct paths: a fast path for standard packet forwarding that bypasses the Linux kernel network stack, and a slow path for exceptional packets that require kernel processing. This segmentation allows most packets to be processed rapidly while maintaining the ability to handle complex cases through the kernel, thereby resolving the contradiction between throughput and processing accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a fast path environment as an intermediary layer between the network interface and the Linux kernel network stack. This intermediary handles routine VxLAN packet processing independently, reducing the burden on the kernel and improving overall processing speed while maintaining protocol accuracy through coordinated interaction with the kernel when needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware offloads are used for VxLAN processing, then some processing burden is reduced, but significant CPU cycles are still consumed and throughput remains limited

Engineering Contradiction:
Improvepacket processing throughputVSAvoidCPU cycles
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts VxLAN packet processing functionality from the Linux kernel network stack and places it in a dedicated fast path environment. This extraction removes the processing burden from the kernel, allowing packets to be handled more efficiently with reduced CPU cycle consumption while maintaining the kernel's role in handling exceptional cases.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The fast path environment provides self-service for VxLAN packet processing by independently handling encapsulation, decapsulation, and forwarding decisions without requiring kernel intervention for routine packets. This self-service capability significantly reduces CPU cycle consumption while maintaining processing accuracy through coordinated kernel interaction when needed.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2928123B1Method for processing VXLAN data units
Publication Date: 2019.11.06 6WIND
  • EP2928123B1 patent drawingFigure 1
  • EP2928123B1 patent drawingFigure 2a
  • EP2928123B1 patent drawingFigure 2b

AI summary

A process for processing VxLAN data units in an environment that includes an operating system configured for processing VxLAN data units, and a fast path environment configured for receiving incoming VxLAN data units and capable of processing such VxLAN data units is proposed. The process comprises obtaining VxLAN processing configuration parameters used by the operating system, configuring the fast path environment for processing received VxLAN data units based on the obtained parameters, and selecting, at the fast path environment, at least one received VxLAN data unit for processing by the operating system.