Extensible Virtual Switch Datapath Using eBPF Fast Path

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computing systems, implementing new features in the fast path of a virtual switch requires complex platform-specific coding due to differences across operating systems, limiting flexibility and extensibility.

Innovation Solution

The use of extended Berkeley Packet Filter (eBPF) programs and maps, which are loaded into the kernel space, allows for a generic packet filtering subsystem that can execute actions on data packets by mapping a key to a fixed-length array indicating action types, enabling platform-independent configuration of the virtual switch.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If new features are added to the fast path of a virtual switch, then the functionality and capabilities of the virtual switch are improved, but the complexity of platform-specific coding increases and development becomes more difficult

Engineering Contradiction:
ImprovefunctionalityVSAvoidcoding complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (the extensible fast path architecture with action programs and flow entries) that mediates between the core virtual switch functionality and platform-specific implementations. This intermediary allows features to be added through standardized flow entries and action programs rather than requiring direct platform-specific coding, thus improving functionality while managing complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the fast path functionality into modular components: flow entries, action programs, and action types. This segmentation allows each component to be developed and maintained independently, reducing the overall coding complexity while enabling flexible addition of new features through combination of these modular elements.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If new features are added to the fast path of a virtual switch, then the capabilities of the virtual switch are improved, but the development cycle becomes more complex and requires detailed platform-specific knowledge

Engineering Contradiction:
ImprovecapabilitiesVSAvoiddevelopment ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent creates a universal action program interface that can be used across different operating systems and platforms. The standardized action types and flow entry structures allow the same feature implementation to work universally across different platforms, eliminating the need for detailed platform-specific knowledge and simplifying the development process.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses template-based flow entries and action programs that can be copied and reused across different platforms and features. Instead of writing platform-specific code from scratch, developers can copy existing flow entry templates and action programs, adapting them minimally to new requirements, thus reducing development complexity.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If a generic packet filtering subsystem is implemented using eBPF, then platform independence is improved, but the system requires loading programs and maps into kernel space which adds operational complexity

Engineering Contradiction:
Improveplatform independenceVSAvoidoperational simplicity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent performs preliminary actions by pre-compiling and validating eBPF programs and maps before loading them into the kernel space. The control plane prepares the fast path configuration in advance, ensuring that all programs are syntactically correct and semantically valid before deployment, thus simplifying runtime operations and reducing operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service mechanisms where the eBPF programs automatically manage their own execution context and resources within the kernel space. The programs are self-contained and self-validating, reducing the need for external management and simplifying operational procedures despite the added capability of kernel space loading.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10530711B2Extensible virtual switch datapath
Publication Date: 2020.01.07 VMWARE INC
  • US10530711B2 patent drawing
  • US10530711B2 patent drawing
  • US10530711B2 patent drawing

AI summary

Certain embodiments described herein are generally directed to configuring an extended Berkeley Packet Filter (eBPF) fast path. In some embodiments, a fixed-length array of actions is generated and loaded into the eBPF fast path, where each element of the array indicates a type of action for execution on a packet received by the eBPF fast path. In some embodiments, the eBPF fast path is loaded with a number of eBPF programs, each configured to execute a different type of action.