Conjunctive Match Flow Entries for Software Switches
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flow-based software switches face an explosion of required flow entries due to the need for matching over multiple packet header fields, leading to inefficiencies in packet processing.
Innovation Solution
Implementing conjunctive matching behaviors by generating separate sets of flow entries for each dimension, allowing for M+N+1 flow entries instead of M*N, where M and N are the number of values in two dimensions, and using a unique identifier for conjunction actions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate flow entries are generated for each possible combination of values across multiple packet header fields, then complete packet matching coverage is achieved, but the number of flow entries explodes exponentially
Solution Approach 1:
The patent segments the conjunctive match condition into multiple independent dimensions, where each dimension corresponds to a separate flow entry set. Instead of creating one flow entry for every combination of M×N values across two fields, the system creates M flow entries for the first dimension and N flow entries for the second dimension, reducing the total from exponential to linear growth.
Solution Approach 2:
The patent introduces a new dimension by adding a dimension identifier field to packets. This allows the system to track which dimension of the conjunctive match is currently being evaluated, enabling the separation of match conditions across multiple flow entry sets while maintaining the ability to enforce all conditions through stateful processing.
2Productivity
If the number of flow entries is reduced using conjunctive matching, then processing efficiency improves, but the flow processing logic becomes more complex
Solution Approach 1:
The patent performs preliminary actions by pre-calculating and storing the conjunctive match dimensions and their corresponding flow entry sets in the controller. The dimension identifiers are assigned in advance, allowing the MFE to simply follow the pre-planned processing path without performing complex real-time calculations, thus reducing on-device complexity while maintaining efficiency.
Solution Approach 2:
The patent introduces dimension identifiers as an intermediary mechanism between the packet and the flow entry matching logic. This intermediary allows the system to track match state across multiple flow entry sets without requiring complex inter-flow communication or state management, simplifying the overall processing logic while enabling conjunctive matching.
Data Source
AI summary
Some embodiments provide a method for a network controller that manages a managed forwarding element (MFE). The method receives a set of data tuples that define packet processing behavior of the MFE. A particular one of the data tuples defines (i) a match condition with at least two conjunctive dimensions and (ii) an action for the MFE to take on a packet that matches an element from each of the dimensions, each of which include at least one element. The method generates a conjunction flow entry that matches on an assigned conjunction identifier and specifies the action defined by the particular data tuple. For each dimension, the method generates a set of flow entries that each match on a different element of the dimension and specify an action that includes the assigned conjunction identifier. The method distributes the conjunction flow entry and the sets of flow entries to the MFE.


