Lockless Flow Cache Table for Packet Processing Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software-based packet processing units in centralized-control-type networks face reduced processing speed compared to hardware processing, particularly during rule searches, leading to standby times due to mutual exclusion requirements when accessing flow cache tables.

Innovation Solution

Implementing a lockless flow cache table by having the packet processing unit create and manage the flow cache table, eliminating the need for mutual exclusion with the rule control unit, and using sequence numbers to synchronize updates, allowing the packet processing unit to determine if the rule table has been updated, thus enabling faster packet processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a flow cache table is managed by a separate rule control unit, then rule updates can be controlled centrally, but mutual exclusion is required when accessing the flow cache table causing standby time

Engineering Contradiction:
Improverule update controlVSAvoidstandby time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The packet processing unit autonomously manages the flow cache table itself, including creating, updating, and deleting flow cache entries. This self-service approach eliminates the need for a separate rule control unit to manage the flow cache table, thereby removing mutual exclusion requirements and standby time while maintaining reliable rule updates through version number comparison

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If packet processing is implemented by software, then flexibility and programmability are improved, but processing speed decreases compared to hardware processing

Engineering Contradiction:
ImproveprogrammabilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system pre-creates flow cache entries in the flow cache table based on rules from the rule table before actual packet processing occurs. When packets arrive, the packet processing unit can quickly match against pre-computed flow cache entries using pointers, avoiding time-consuming rule searches during packet processing and achieving hardware-like speed while maintaining software flexibility

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates simplified copies of rules in the form of flow cache entries with pointers to action table entries. These flow cache entries serve as lightweight replicas that can be quickly searched and accessed during packet processing, significantly reducing the computational complexity and time required compared to searching the original rule tables while maintaining the essential matching functionality

Inventive Principle:
Principle #26Copying

3Measurement precision

If rule search is performed during packet processing, then accurate packet handling is achieved, but search processing time increases compared to hardware processing

Engineering Contradiction:
Improvepacket handling accuracyVSAvoidsearch processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system creates simplified copies of rules in the form of flow cache entries with pointers to action table entries. These flow cache entries serve as lightweight replicas that can be quickly searched and accessed during packet processing, significantly reducing the computational complexity and time required compared to searching the original rule tables while maintaining the essential matching functionality

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system pre-creates flow cache entries in the flow cache table based on rules from the rule table before actual packet processing occurs. When packets arrive, the packet processing unit can quickly match against pre-computed flow cache entries using pointers, avoiding time-consuming rule searches during packet processing and achieving hardware-like speed while maintaining software flexibility

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10284478B2Packet processing device, packet processing method and program
Publication Date: 2019.05.07 NEC CORP
  • US10284478B2 patent drawing
  • US10284478B2 patent drawing
  • US10284478B2 patent drawing

AI summary

A packet processing device includes: a storage unit that holds an action table including actions that define processing contents of packets and a rule table including rules to search for actions to be applied to packets; a rule control unit that updates rules included in the rule table; and a packet processing unit that searches the action table for an action to be applied to a received packet using the rule table, processes the packet in accordance with the searched action, and accumulates a pointer with respect to the searched action, wherein the packet processing unit determines whether the rule table has been updated by the rule control unit after accumulation of the pointer and, if not updated, extracts an action to be applied to a received packet from the action table in accordance with the accumulated pointer.