Multi-key Decision Cache for Network Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network switches face performance bottlenecks when processing packets that require software processing, as they often rely on slower software routines due to hardware limitations, particularly in tasks like network address translation and complex decision-making.

Innovation Solution

Implementing a decision cache that uses multiple-key lookups to rapidly evaluate packets and apply cached actions, reducing the need for extensive software processing by leveraging hash values and internal table searches, thereby accelerating packet forwarding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software routines are used to process packets requiring complex decisions, then processing flexibility is improved, but processing speed deteriorates

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The decision cache pre-computes and stores forwarding decisions for common packet types and scenarios. When a packet arrives, the system first checks the cache for pre-computed decisions, allowing rapid forwarding without executing full software processing routines, thus resolving the contradiction between flexibility and speed

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The decision cache acts as an intermediary between the incoming packet and the software processing routines. It filters out packets that can be handled by cached decisions, allowing only complex cases to reach software processing, thereby improving overall processing speed while maintaining flexibility for edge cases

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If hardware-based switching is used to achieve wirespeed performance, then processing speed is improved, but device complexity increases

Engineering Contradiction:
Improveforwarding speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The packet processing function is segmented into three distinct paths: hardware-based wirespeed forwarding for simple packets, decision cache lookup for common scenarios, and software-based processing for complex cases. This segmentation allows the system to achieve high performance for majority traffic while maintaining flexibility and managing complexity through modular processing paths

Inventive Principle:
Principle #1Segmentation

3Reliability

If comprehensive software processing is performed for all packets, then processing completeness is improved, but productivity deteriorates

Engineering Contradiction:
Improveprocessing completenessVSAvoidforwarding rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of performing complete software processing for all packets (excessive action), the system applies partial processing by using the decision cache to handle common packet types efficiently. This partial action approach maintains processing completeness for necessary cases while dramatically improving productivity by avoiding unnecessary software processing for cacheable packets

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7474653B2Decision cache using multi-key lookup
Publication Date: 2009.01.06 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7474653B2 patent drawing
  • US7474653B2 patent drawing
  • US7474653B2 patent drawing

AI summary

One embodiment disclosed relates to a method of processing a data packet. The data packet is received at a network device. A determination is made as to whether a multiple-key decision cache is hit by the data packet. At least one cached action is applied if the decision cache is hit. The data packet is processed using software routines if the decision cache is missed. Another embodiment disclosed relates to a network apparatus. The network apparatus includes a plurality of ports configured to receive data packets, and software routines are configured to process the data packets. Logic in the apparatus is configured to determine whether a multiple-key decision cache is hit by a data packet, to apply at least one cached action if the decision cache is hit, and to process the data packet using the software routines if the decision cache is missed.