Linked-Node Structure for Range Matching in Packet Classification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for range matching in network switches, such as brute force algorithms, lead to inefficient data packet processing due to worst-case behavior, limiting the number of packets that can be processed per unit time, especially in high-speed applications.

Innovation Solution

A method utilizing a linked-node structure, specifically a binary tree or higher-dimensional tree, to efficiently determine the narrowest range including an input value by comparing the input value with node values and traversing the tree, reducing the number of comparisons needed to find a match.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If brute force or exhaustive algorithms are used for range matching, then all ranges can be compared to ensure the narrowest range is found, but the processing speed decreases and the number of packets processed per unit time is limited

Engineering Contradiction:
Improverange matching accuracyVSAvoidpackets processed per unit time
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the set of ranges into multiple subsets and organizes them in a tree structure where each node represents a subset of ranges. This segmentation allows the algorithm to eliminate large portions of ranges at each level of the tree traversal, reducing the total number of comparisons needed while still guaranteeing finding the narrowest matching range.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension by organizing ranges in a tree structure with multiple levels. Instead of comparing ranges in a single flat dimension, the algorithm traverses through hierarchical levels, making decisions at each level that eliminate subsets of ranges, thereby reducing the search space efficiently.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If parallel range comparators are used to improve processing speed, then more ranges can be compared simultaneously, but the device complexity and cost increase

Engineering Contradiction:
Improveprocessing speedVSAvoidnumber of parallel comparators
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs a dynamic algorithm that adapts the number of comparisons based on the data characteristics and tree structure. Instead of using a fixed number of parallel comparators, the algorithm dynamically determines the comparison path through the tree, eliminating the need for a large static array of parallel comparators while maintaining high processing speed.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If ordering ranges by size or by beginning/ending value is used to simplify the problem, then the organization of ranges becomes easier, but the range matching problem is not greatly simplified and worst-case behavior remains

Engineering Contradiction:
Improverange organizationVSAvoidworst-case processing performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent performs preliminary organization of ranges into a tree structure before the actual packet classification process. During this preliminary phase, ranges are sorted and grouped into nodes based on their characteristics. This pre-processing creates an optimized structure that enables fast querying during operation, avoiding the need to handle worst-case scenarios during actual packet processing.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8139591B1Methods and apparatus for range matching during packet classification based on a linked-node structure
Publication Date: 2012.03.20 JUNIPER NETWORKS INC
  • US8139591B1 patent drawing
  • US8139591B1 patent drawing
  • US8139591B1 patent drawing

AI summary

In one embodiment, a method includes receiving a key associated with a portion of a data packet, comparing the key to a first range extreme, selecting a second range extreme, and comparing the key with the second range. The first range extreme is associated with a first range and the second range is associated with a second range. The second range is selected based on the comparing the key to the first range extreme. The method includes producing a policy vector associated with the first or second range.