Switching Element Dynamic Flow Entry Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software-defined networking (SDN) faces performance challenges due to the need for generating new flow entries for each packet, which is processor-intensive and inefficient, especially in virtualized environments where hardware switches with ASICs are not available.

Innovation Solution

A switching element dynamically generates flow entries with wildcard fields, caching them for subsequent packets that match non-wildcard fields, thereby reducing the need for repeated flow entry generation and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a software switching element generates a new flow entry for each packet, then packet processing accuracy is maintained, but processor-intensive operations increase and processing speed decreases

Engineering Contradiction:
Improvepacket processing accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-generates flow entries with wildcard fields for groups of packets that will require similar processing. Instead of creating a new flow entry for each individual packet, the system creates flow entries in advance that can match multiple packets with different header values, thereby reducing the processing overhead while maintaining accurate packet handling.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent makes flow entries universal by using wildcard fields that can match multiple different packet header values. A single flow entry with wildcards can handle multiple packets that would otherwise require separate flow entries, allowing the same flow entry to serve multiple functions and reducing the total number of flow entries needed.

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

2Productivity

If wildcard fields are used in flow entries, then processing efficiency improves, but flow entry complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidflow entry complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments flow entries into match fields and wildcard fields, allowing the system to selectively apply wildcards only to certain fields rather than entire flow entries. This segmentation enables processing efficiency improvements while keeping the complexity manageable by only wildcarding specific non-critical fields.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies wildcard fields locally to specific match fields rather than uniformly across all flow entries. This allows different levels of specificity in different fields - critical fields use exact matching while non-critical fields use wildcards - thereby improving efficiency without uniformly increasing complexity throughout the entire flow entry structure.

Inventive Principle:
Principle #3Local quality

3Productivity

If flow entries are cached, then repeated flow entry generation is reduced, but memory usage increases

Engineering Contradiction:
Improveflow entry generation efficiencyVSAvoidcache memory usage
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The patent uses partial wildcards in cached flow entries rather than complete wildcards. This allows the cache to store flow entries that match a subset of packets, reducing the number of cached entries needed compared to using full wildcards, thereby lowering memory usage while still providing caching benefits for repeated packet processing.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10382324B2Dynamically generating flows with wildcard fields
Publication Date: 2019.08.13 VMWARE INC
  • US10382324B2 patent drawing
  • US10382324B2 patent drawing
  • US10382324B2 patent drawing

AI summary

Some embodiments of the invention provide a switching element that receives a packet and processes the packet by dynamically generating a flow entry with a set of wildcard fields. The switching element then caches the flow entry and processes any subsequent packets that have header values that match the flow entry's non-wildcard match fields. In generating the flow, the switching element initially wildcards some of all of match fields and generates a new flow entry by un-wildcarding each match field that was consulted or examined to generate the flow entry.