Packet Classification Using Condition Test Vectors and Parallel Memory Banks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing packet classification methods require large amounts of memory, leading to increased costs and performance issues due to memory access latency, as they rely on representing all possible values of packet fields in RAM, making it impractical to store databases on a single chip with a processor.

Innovation Solution

A method that accesses a condition test vector to determine whether a selected key and condition value satisfy a condition relation, using bit values to efficiently classify data packets by selecting keys representing portions of the packet, reducing the need for extensive memory usage and optimizing performance by implementing conditions efficiently based on their type.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If large amounts of memory are used to store packet classification databases in RAM, then classification accuracy is improved, but memory access latency increases and performance decreases

Engineering Contradiction:
Improveclassification accuracyVSAvoidmemory access latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the classification database into multiple banks that can be accessed in parallel. Instead of using a single large memory structure, the database is divided into smaller segments (banks) that reduce access latency while maintaining overall classification accuracy through parallel processing of multiple segments simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to memory access by implementing multi-dimensional indexing and parallel access paths. Rather than sequential or single-path access to classification data, the system uses multiple access dimensions (different banks, different index levels) to simultaneously retrieve classification information, thereby reducing effective access latency.

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

2Measurement precision

If all possible values of packet fields are represented in memory using cross-product expansion, then classification completeness is improved, but memory size and hardware cost increase significantly

Engineering Contradiction:
Improveclassification completenessVSAvoidmemory size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent segments the classification database into multiple banks that can be accessed in parallel. Instead of using a single large memory structure, the database is divided into smaller segments (banks) that reduce access latency while maintaining overall classification accuracy through parallel processing of multiple segments simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial expansion by storing only the necessary portions of the cross-product space in each memory bank, rather than completing the full expansion. Each bank contains a subset of classification rules that can be accessed in parallel, providing sufficient classification completeness without requiring the full cross-product memory structure.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7889741B1Methods and apparatus for packet classification based on multiple conditions
Publication Date: 2011.02.15 JUNIPER NETWORKS INC
  • US7889741B1 patent drawing
  • US7889741B1 patent drawing
  • US7889741B1 patent drawing

AI summary

In one embodiment, a method includes accessing a condition test vector, selecting a key from a plurality of keys, and determining whether the key selected and a condition value satisfy a condition relation. The accessing being based on an index value. The condition test vector including a first plurality of bit values defining the condition relation, a second plurality of bit values defining a key selector, and a third plurality of bit values defining the condition value. The selecting being based on the second plurality of bit values. Each key from the plurality of keys including a combination of bit values representing a portion of a data packet. A result is defined based on the determining.