Staged Lookup Packet Classification Using Wildcard Masks

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 hardware switches, leading to inefficiencies in processing packets in software switching elements.

Innovation Solution

Implementing algorithms such as tuple space search, staged lookup, prefix tracking, and common match algorithms to dynamically generate flows with wildcard masks, optimizing packet processing by ignoring irrelevant bits and reducing unnecessary lookups in software switching elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software switching elements are used instead of hardware switches, then flexibility and programmability are improved, but processing performance deteriorates due to lack of ASICs

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

Solution Approach 1:

The patent segments the packet processing function into two distinct components: a software controller that performs complex control logic and flow table management, and a hardware forwarding plane that executes high-speed packet forwarding using stored flow entries. This segmentation allows the system to combine the flexibility of software with the performance of hardware, resolving the contradiction between adaptability and processing speed.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If full packet header translation is performed for every packet, then accurate flow classification is achieved, but processing time increases

Engineering Contradiction:
Improveflow classification accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-computing flow keys and storing them in flow tables along with their corresponding actions. When a packet arrives, the system performs a quick lookup of the pre-computed flow key rather than performing full header translation, significantly reducing processing time while maintaining classification accuracy through the use of wildcard masks that capture essential matching criteria.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the essential matching criteria from full packet headers by using wildcard masks that identify which fields are significant for flow classification. This extraction approach reduces the amount of data that needs to be processed and compared, achieving fast lookup performance while maintaining accurate flow classification by focusing on the most important distinguishing fields.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If wildcard masks are used to ignore certain bits, then lookup speed is improved, but classification precision may be reduced

Engineering Contradiction:
Improvelookup speedVSAvoidclassification precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies local quality by using wildcard masks that selectively apply different levels of matching strictness to different fields within the packet header. Rather than applying a uniform matching criterion to all fields, the system identifies and wildcards only those specific bits that are not significant for flow classification, while maintaining precise matching on the critical distinguishing fields. This localized approach to quality control maintains classification precision while improving lookup speed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10498638B2Performing a multi-stage lookup to classify packets
Publication Date: 2019.12.03 VMWARE INC
  • US10498638B2 patent drawing
  • US10498638B2 patent drawing
  • US10498638B2 patent drawing

AI summary

Some embodiments provide a method for a forwarding element that forwards packets. The method receives a packet. The method performs a first stage lookup of a hash table for a first hash of a first set of header fields and un-wildcards bits of a wildcard mask that corresponds to the first set of header fields. If a matching hash is found in the first stage lookup, the method performs a second stage lookup of the hash table for a second hash of a second set of header fields and un-wildcards bits of the wildcard mask that corresponds to the second set of header fields. The method identifies a matching rule for the packet. The method generates a flow based on the matching rule and the wildcard mask, wherein the flow is used to process each other packets that match each bit which is un-wildcarded.