FPGA Packet Classification via Pipelined Decision Tree Nodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current packet classification systems, particularly those based on Field Programmable Gate Array (FPGA) technology, face limitations such as handling a limited number of rules, insufficient throughput, limited class sizes, and non-adaptability to changes in data packet frames and rules, leading to inefficient data packet classification.

Innovation Solution

The method involves building a decision tree to apply classifying rules on data packet fields by mapping processing elements to nodes in the tree, pipelining these elements to efficiently process data packets, and using buffer states and tag storage to handle larger data packet fields, enabling efficient classification with increased adaptability to rule and class changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional FPGA-based classification systems are used, then hardware acceleration is achieved, but the number of rules handled is limited

Engineering Contradiction:
Improveclassification throughputVSAvoidnumber of rules handled
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The classification system is divided into multiple processing elements (PEs) organized in a pipeline architecture. Each PE handles a subset of rules, allowing the system to scale by adding more PEs. The decision tree is also segmented into multiple levels, with each level processed by dedicated PEs, enabling parallel processing of different rule sets simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processing elements are designed as universal units that can be configured to handle different types of classification rules through programmable logic. The same PE architecture can be adapted to process various rule formats and classification criteria by loading different decision tree configurations, making the system versatile without requiring hardware changes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If more rules are added to increase classification capability, then adaptability improves, but throughput decreases

Engineering Contradiction:
Improveclassification rule setVSAvoiddata packet processing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

Rules are segmented and distributed across multiple processing elements in the pipeline. Each PE processes a specific portion of the rule set, allowing simultaneous evaluation of multiple rules against incoming packets. This parallel processing maintains high throughput even as the total number of rules increases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pipeline architecture ensures continuous processing of data packets through multiple stages. While one PE is evaluating rules for a packet, other PEs are simultaneously processing different packets or different rule aspects, eliminating idle time and maintaining constant throughput as rule complexity increases.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If classification rules become more complex, then classification accuracy improves, but processing time increases

Engineering Contradiction:
Improveclassification accuracyVSAvoidprocessing delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Complex classification rules are broken down into smaller decision nodes organized in a tree structure. Each processing element handles a specific level or subset of nodes, evaluating simpler conditions in parallel rather than processing the entire complex rule set sequentially. This reduces the time each packet spends in the system while maintaining comprehensive rule evaluation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decision tree structure pre-organizes complex rules into a hierarchical format with common conditions evaluated at upper levels. Processing elements evaluate rules from top to bottom, allowing early termination for packets that match simple rules at higher levels, thus avoiding the need to process the entire complex rule set for every packet.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If FPGA resources are increased to handle more rules, then classification capability improves, but device complexity and cost increase

Engineering Contradiction:
Improverule processing capacityVSAvoidFPGA configuration
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system uses identical, reusable processing element templates that can be instantiated multiple times in the FPGA. Rather than designing custom logic for each rule, the same universal PE block is replicated and configured through software-loaded decision tree data, significantly reducing design complexity while maintaining high rule processing capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The classification rules and decision tree structures are implemented as dynamic, reconfigurable data stored in memory rather than hardwired logic. This allows the rule set to be changed by loading new configuration data without altering the FPGA's physical structure, reducing device complexity while enabling flexible adaptation to different classification requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11489753B2Method and system for classifying data packet fields on FPGA
Publication Date: 2022.11.01 OVH
  • US11489753B2 patent drawing
  • US11489753B2 patent drawing
  • US11489753B2 patent drawing

AI summary

A method and system for classifying data packet fields are disclosed. They associate a final tag to each of the fields in a data packet in relation to a set of classifying rules, and involve building a decision tree using a recursive algorithm to apply the set of classifying rules on the data packet fields, mapping each node of the built decision tree respectively to a processing element of a FPGA, each processing element comprising a processor and a memory, pipelining all mapped processing elements, and processing the data packet fields through the pipelined and mapped processing elements.