Compressing Flow Entries via Boolean Match Conditions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network control systems face inefficiencies in calculating and managing flow entries for software virtual switches, particularly as the number and size of logical networks grow, requiring more efficient mechanisms for handling logical networks within datacenters.

Innovation Solution

A network control system comprising a centralized network controller cluster and local controller agents that populate and manage tables describing logical and physical networks, using Boolean formats to compress flow entries and convert them into formats readable by managed forwarding elements, enabling efficient generation and distribution of flow entries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional flow entry formats are used in network control systems, then forwarding elements can process packets according to standard rules, but the number of flow entries explodes as logical networks grow, making calculation and management inefficient

Engineering Contradiction:
Improveflow entry calculation efficiencyVSAvoidnumber of flow entries
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent combines multiple flow entries into a single aggregated flow entry by merging matching packets that share common actions. Instead of creating separate flow entries for each individual packet type, the system aggregates them into one entry that handles multiple packet types simultaneously, thereby reducing the total number of flow entries while maintaining the same forwarding functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The aggregated flow entry acts as a universal entry that can match and handle multiple different packet types through wildcard matching. The single flow entry with wildcard fields can represent multiple specific flow entries, making it multi-functional in terms of packet matching capabilities while reducing the overall count of required flow entries.

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

2Adaptability or versatility

If the number of logical networks increases in a datacenter, then network functionality and coverage improve, but the complexity of managing and calculating flow entries for all switches increases rapidly

Engineering Contradiction:
Improvelogical network coverageVSAvoidflow entry management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the flow entry management process into two distinct phases: a calculation phase that generates aggregated flow entries with wildcards, and a conversion phase that transforms these aggregated entries into standard flow entries for forwarding elements. This segmentation allows the system to handle complex logical networks efficiently by separating the complex aggregation logic from the simple forwarding operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The aggregated flow entry serves as an intermediary representation between the high-level logical network configuration and the low-level forwarding element requirements. This intermediate format allows the system to capture complex matching patterns in a compact form that can be efficiently converted into standard flow entries, thereby reducing management complexity as the number of logical networks grows.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10476735B2Representation of match conditions in logical pipeline data
Publication Date: 2019.11.12 VMWARE INC
  • US10476735B2 patent drawing
  • US10476735B2 patent drawing
  • US10476735B2 patent drawing

AI summary

Some embodiments provide a method that receives several flow descriptions. Each flow description includes a set of match conditions and corresponding set of actions. Each set of match conditions is represented as a combination of Boolean and relational operators in a flow description language. The method generates one or more flow entries for each flow description. The flow entries are generated in a format useable by a managed forwarding element (MFE). The method distributes the generated flow entries to the MFE in order for the MFE to implement network operations described by the plurality of flow descriptions.