Software Forwarding Packet Classification with Dual Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing packet classification algorithms in software forwarding elements are limited by their inability to efficiently handle the large number and variety of packet header fields in modern networks, requiring long precomputation times and resulting in delayed classification and inflexibility.

Innovation Solution

Implementing a flow-based software forwarding element that uses multiple classifiers with a decision tree cache and a secondary tuple space search cache, allowing for efficient packet classification by searching multiple subtables based on different sets of packet header fields, with the secondary cache ensuring up-to-date flow entries and the primary cache updated at intervals.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single classifier algorithm is used, then the classification logic is simple, but it cannot efficiently handle the large number and variety of packet header fields

Engineering Contradiction:
Improveability to handle packet header fieldsVSAvoidclassifier structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the classification system into multiple independent classifiers, each specialized for different packet header fields. The first classifier handles 5-tuple fields while the second classifier handles additional header fields, allowing each component to remain simple while the overall system achieves high versatility.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If precomputation is performed to improve classification accuracy, then classification precision improves, but precomputation time increases significantly

Engineering Contradiction:
Improveclassification accuracyVSAvoidprecomputation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs precomputation of classification rules and stores them in flow tables before runtime. This preliminary action prepares the classification data in advance, allowing fast matching during packet processing without requiring time-consuming computations at runtime.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If classification policy is updated frequently to adapt to network changes, then adaptability improves, but classification time increases due to rebuilding requirements

Engineering Contradiction:
Improveresponse to network changesVSAvoidclassification time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements dynamic flow tables that can be updated incrementally without requiring complete rebuilding. The system supports adding, deleting, and modifying flow entries on-the-fly, allowing the classification policy to adapt to network changes in real-time while maintaining fast classification performance.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If a comprehensive classifier is designed to handle all packet fields, then versatility improves, but per-packet classification time increases

Engineering Contradiction:
Improvepacket field coverageVSAvoidper-packet classification speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the classification process into multiple specialized classifiers that operate in sequence. The first classifier quickly filters packets using 5-tuple matching, and only packets that require further classification are processed by the second classifier, maintaining high throughput while covering all necessary packet fields.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial classification action by using the first classifier to handle the majority of common packet types with 5-tuple matching. This partial action is sufficient for most packets, and the more comprehensive second classifier is only invoked when needed, optimizing the balance between versatility and speed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12155576B2Packet classification with multiple classifiers
Publication Date: 2024.11.26 VMWARE INC
  • US12155576B2 patent drawing
  • US12155576B2 patent drawing
  • US12155576B2 patent drawing

AI summary

Some embodiments provide a method for a forwarding element that receives a packet. The method determines whether the packet matches any flow entries in a first cache that uses a first type of algorithm to identify matching flow entries for packets. When the packet does not match any flow entries in the first cache, the method determines whether the packet matches any flow entries in a second cache that uses a second, different type of algorithm to identify matching flow entries for packets. The method executes a set of actions specified by a flow entry matched by the packet in one of the first and second caches.