Flow Table Cache Size Adjustment for SDN Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software-defined networking (SDN) faces performance challenges due to the lack of application-specific integrated circuits (ASICs) in software switching elements, which are typically hosted on general-purpose hardware, leading to inefficiencies in forwarding operations.

Innovation Solution

A physical forwarding element dynamically adjusts the size of the flow table cache based on iteration duration, using an additive-increase/multiplicative-decrease algorithm to optimize cache size and perform operations such as validation, flow eviction, and statistics updates, allowing for efficient processing of packets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a software switching element is used instead of a hardware switch, then flexibility and programmability are improved, but forwarding performance deteriorates due to lack of ASICs

Engineering Contradiction:
ImproveflexibilityVSAvoidforwarding performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the forwarding element into two distinct components: a control plane running software logic for flexibility and programmability, and a data plane utilizing hardware-based flow tables and fast path processing for high-performance forwarding. This segmentation allows each component to optimize for its specific function, resolving the contradiction between software flexibility and hardware performance.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If the flow table cache size is increased, then the number of flows that can be cached is improved, but the time to iterate through flows increases

Engineering Contradiction:
Improvenumber of flows cachedVSAvoiditeration time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent implements dynamic adjustment of the flow table cache size based on current network conditions and flow characteristics. The system monitors cache performance metrics and automatically adjusts the cache size to optimize the balance between storing more flows and maintaining fast iteration speeds, preventing both overflow and excessive iteration time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the cache size parameter dynamically based on workload demands. When network traffic patterns indicate high flow diversity, the cache size is increased to accommodate more flows. When traffic is more predictable or cache pressure is high, the size is reduced to maintain fast iteration, thus adapting the parameter to current operational needs.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If flow validation operations are performed on each flow in the cache, then flow accuracy is improved, but processing time increases

Engineering Contradiction:
Improveflow accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial validation by performing flow validation operations selectively rather than on every flow in the cache. The system identifies and validates only those flows that are likely to be accessed or have changed, based on access patterns and modification events. This partial action approach maintains flow accuracy for critical entries while avoiding the excessive processing time that would result from validating every single flow.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9569368B2Installing and managing flows in a flow table cache
Publication Date: 2017.02.14 VMWARE INC
  • US9569368B2 patent drawing
  • US9569368B2 patent drawing
  • US9569368B2 patent drawing

AI summary

Some embodiments provide a physical forwarding that installs flows in a flow table cache and uses the flows to process packets. In addition, the physical forwarding element iterates through each flow and validates the flow. In some embodiments, the physical forwarding element performs the installation and validation operations in a multi-threaded manner. The physical forwarding element in some such embodiments includes a set of one or more upcall handlers to install flows in the cache, and a set of one or more revalidators to validate the flows in the cache. In its own thread, an upcall handler may run independently of each revalidator in the set of revalidators. In another thread, a revalidator may run independently of each upcall handler and each other revalidator.