Forwarding Element Prefix Tracking for Packet Lookup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Software-Defined Networking (SDN) paradigms face performance challenges due to the lack of application-specific integrated circuits (ASICs) in software switches, which are not optimized for in-hardware forwarding, leading to inefficiencies in processing packets.

Innovation Solution

The implementation of a forwarding element that uses algorithms such as tuple space search, staged lookup, prefix tracking, and common match algorithms to generate flows with wildcard masks, optimizing packet processing by ignoring irrelevant bits and reducing unnecessary lookups in hash tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software switches are used instead of hardware switches, then flexibility and programmability are improved, but forwarding performance deteriorates due to lack of ASIC optimization

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

Solution Approach 1:

The patent segments the packet processing function into two parts: flow table lookup is performed in hardware (ASIC) for high-speed forwarding, while flow table generation and management are performed in software. This segmentation allows the software switch to maintain flexibility in flow management while achieving hardware-speed forwarding performance for matched packets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a flow table as an intermediary data structure that bridges software control and hardware forwarding. The flow table contains wildcarded flow entries that are installed in hardware ASICs, enabling software-generated flow rules to be executed at hardware speed without requiring full software processing of every packet.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If exact match lookup is performed on all packet header fields, then packet processing accuracy is improved, but processing time increases due to unnecessary lookups of unchanged fields

Engineering Contradiction:
Improvepacket matching accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent extracts the wildcard fields from the flow table entries and uses them to mask corresponding fields in incoming packets before lookup. This extraction allows the lookup process to effectively ignore fields that are not significant for matching, reducing the search space in hash tables without affecting the accuracy of packets that require exact matching on specific fields.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary wildcarding of flow table entries before they are used for packet matching. By pre-processing the flow tables to identify which fields are significant (non-wildcarded) and which are not, the system prepares the lookup structure in advance, avoiding the need to analyze all fields during actual packet processing and thereby reducing lookup time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9680748B2Tracking prefixes of values associated with different rules to generate flows
Publication Date: 2017.06.13 VMWARE INC
  • US9680748B2 patent drawing
  • US9680748B2 patent drawing
  • US9680748B2 patent drawing

AI summary

Some embodiments provide a method for a forwarding element that forwards packets. The method receives a packet and consults a tree structure to identity a prefix length associated with an IP address in the packet header. The method skips lookup of each subtable with a set of IP addresses that have a different prefix length than the identified prefix length. The method identifies a matching rule from a particular subtable. The method generates a flow based on the matching rule. The flow is used to process packets that have the same prefix.