Network Interface Hashing Algorithm for Packet Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network interface devices face challenges in efficiently filtering incoming data packets to identify the correct destination queue, particularly due to the high overhead of context switching and the inefficiency of existing hashing algorithms, which can lead to packet loss and performance degradation as the number of network endpoints increases.

Innovation Solution

A network interface device employs a hash function to generate a hash code for incoming packet header information, directing it to a specific subset of the table for iterative search, with a default queue handling packets if the search limit is exceeded, ensuring timely packet processing and reducing the likelihood of packet loss.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a traditional hashing algorithm is used to filter incoming packets, then the initial packet routing speed is fast, but as the number of network endpoints increases, the algorithm becomes inefficient leading to packet loss and performance degradation

Engineering Contradiction:
Improvepacket processing throughputVSAvoidpacket delivery reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the filtering process into two distinct phases: a fast initial hash-based filtering stage that quickly routes obvious matches, and a more thorough subsequent processing stage for remaining packets. This segmentation allows the system to maintain high throughput for common cases while ensuring reliable processing for all packets regardless of the number of endpoints.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-computing and storing hash values for network endpoints in a lookup table before packet filtering begins. This preliminary preparation enables the filtering algorithm to quickly compare incoming packet hashes against pre-computed values, maintaining efficiency even as the number of endpoints grows large.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the number of network endpoints increases to support more applications, then the system's adaptability improves, but the hashing algorithm's efficiency deteriorates causing packet loss

Engineering Contradiction:
Improvenumber of supported endpointsVSAvoidpacket filtering efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent transitions from a single-dimension traditional hashing approach to a multi-dimensional filtering approach that combines hash-based filtering with additional filtering criteria and multiple processing stages. This dimensional expansion allows the system to handle a large number of endpoints efficiently by not relying solely on hash collision management.

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

Solution Approach 2:

The system performs preliminary actions by pre-computing hash values for all network endpoints and organizing them in an optimized lookup structure before filtering begins. This preliminary preparation ensures that even with a large number of endpoints, the actual filtering operation remains efficient as it only needs to perform simple hash comparisons rather than full endpoint evaluations.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If a thorough packet filtering process is implemented to prevent packet loss, then packet delivery reliability improves, but processing time increases leading to performance degradation

Engineering Contradiction:
Improvepacket delivery reliabilityVSAvoidpacket processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the filtering process into a fast initial hash-based stage that handles the majority of packets quickly, and a more thorough subsequent processing stage that handles only the remaining packets requiring additional verification. This segmentation ensures that most packets experience minimal processing time while maintaining high reliability through the secondary verification stage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a skipping mechanism where packets that match the initial hash filter are rapidly routed through the system without undergoing the complete filtering process. This rushing through of clearly matching packets minimizes processing time for the majority of traffic while the thorough filtering process remains available for packets that require it, thus balancing speed and reliability.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentEP1949645B1Hashing algorithm for network receive filtering
Publication Date: 2016.09.28 SOLARFLARE COMMUNICATIONS INC
  • EP1949645B1 patent drawingFigure 1A
  • EP1949645B1 patent drawingFigure 1B
  • EP1949645B1 patent drawingFigure 1C

AI summary

Roughly described, a network interface device is assigned a maximum extent-of-search. A hash function is applied to the header information of each incoming packet, to generate a hash code for the packet. The hash code designates a particular subset of the table within which the particular header information should be found, and an iterative search is made within that subset. If the search locates a matching entry before the search limit is exceeded, then the incoming data packet is delivered to the receive queue identified in the matching entry. But if the search reaches the search limit before a matching entry is located, then device delivers the packet to a default queue, such as a kernel queue, in the host computer system. The kernel is then responsible for delivering the packet to the correct endpoint.