Hash Data Structures for Network Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network devices face inefficiencies in processing network packets due to the high cost and resource-intensive nature of storing and searching large flow data structures, which can consume significant processing time and memory resources.

Innovation Solution

The implementation of a method that determines common key type sets from network processing rules, creates hash data structures using these sets, programs the most common rules into content addressable memory (CAM) and hash data structures, and uses these structures to efficiently process network packets by generating packet search keys and searching CAM for appropriate handling actions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If large flow data structures are stored in CAM, then network packet processing rules can be efficiently searched, but CAM memory resources are excessively consumed and cost increases

Engineering Contradiction:
Improvenetwork packet processing efficiencyVSAvoidCAM memory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the flow data structure into two parts: a first portion containing common key type sets stored in hash data structures in system memory, and a second portion containing remaining rules stored in CAM. This segmentation allows the system to utilize the high-speed lookup capability of hash structures for common patterns while reserving limited CAM resources for less frequent matches, thereby resolving the contradiction between processing efficiency and memory resource consumption

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces hash data structures as an intermediary layer between the incoming network packet and the CAM. The hash structure first processes the packet using common key type sets, and only if no match is found does the system query the CAM. This intermediary approach filters out most lookup operations before they reach the CAM, reducing its resource burden while maintaining overall processing efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If all network processing rules are programmed into CAM, then packet processing speed is improved, but device complexity and resource usage increase

Engineering Contradiction:
Improvepacket processing speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the rule set into two segments: common key type sets stored in hash data structures and remaining rules stored in CAM. This segmentation enables the system to maintain fast processing speeds for common patterns through hash lookup while keeping device complexity manageable by limiting CAM usage to only necessary rules

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a simplified copy of the flow data structure in the form of hash data structures that contain only the common key type sets. This copy handles the majority of lookup operations, reducing the need for complex CAM operations and thereby lowering overall device complexity while maintaining processing speed

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9590897B1Methods and systems for network devices and associated network transmissions
Publication Date: 2017.03.07 MARVELL ASIA PTE LTD
  • US9590897B1 patent drawing
  • US9590897B1 patent drawing
  • US9590897B1 patent drawing

AI summary

Methods and systems for optimizing data structures to efficiently control network data transfers are provided. For example, the method includes determining common key type sets from a plurality of network processing rules; creating one or more hash data structures using the most common key type sets; programming network processing rules that use the most common key type sets into the one or more hash data structures; programming remaining network processing rules into a content addressable memory (CAM); and using the one or more hash data structures and the CAM to find an appropriate network processing rule to process a network packet.