Network Interface Controller Metadata Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network interface controllers (NICs) experience cache misses and high processing cycles due to the need to read and process packet headers for each packet when forwarding from receive queues to transmit queues, which reduces packet processing efficiency.

Innovation Solution

Implementing metadata-based processing where buffer metadata associated with each communication includes transmit information, allowing packets to be placed in a single transmit queue without individual header analysis, thereby reducing the number of reads and improving cache performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If packet headers are read and processed for each packet when forwarding from receive queues to transmit queues, then packet routing accuracy is improved, but processing cycles increase and cache misses occur

Engineering Contradiction:
Improvepacket routing accuracyVSAvoidprocessing cycles
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-processing packet header information when packets are received and stored in receive queues. The forwarding module reads packet headers in advance, extracts routing information (destination port, VLAN tags), and stores this metadata in a separate buffer. When forwarding packets, the CPU only needs to read the metadata rather than re-processing entire packet headers, significantly reducing processing cycles and cache misses while maintaining routing accuracy.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If multiple transmit queues are used for different destination ports, then packet routing flexibility is improved, but the number of reads and processing operations increases

Engineering Contradiction:
Improvepacket routing flexibilityVSAvoidpackets processed per second
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies segmentation by separating packet data from routing metadata. Packet headers are segmented from packet payloads during receive processing, with routing information extracted and stored separately. This allows the forwarding module to efficiently manage multiple transmit queues by only processing compact metadata structures rather than full packet headers, reducing the number of read operations while preserving routing flexibility through dedicated queue assignments for different destination ports.

Inventive Principle:
Principle #1Segmentation

3Reliability

If packet headers are individually processed for each packet, then forwarding accuracy is improved, but cache performance deteriorates

Engineering Contradiction:
Improveforwarding accuracyVSAvoidcache performance
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies copying by creating a simplified copy of routing information from packet headers and storing it in a separate metadata buffer. Instead of repeatedly reading and processing full packet headers from memory, the forwarding module reads compact metadata copies that contain only the essential routing fields. This maintains forwarding accuracy while dramatically improving cache performance by reducing memory access patterns and increasing cache hit rates.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20240015109A1Metadata based efficient packet processing
Publication Date: 2024.01.11 CHECK POINT SOFTWARE TECH LTD
  • US20240015109A1 patent drawing
  • US20240015109A1 patent drawing
  • US20240015109A1 patent drawing

AI summary

A method and device are presented for decreasing processing cycles spent forwarding packets of a communication from receive queues to at least one transmit queue of a network interface controller. When received, packets are placed into a receive queue based on property(ies) of a leading packet. Buffer metadata including transmit information is associated with each communication. Processor circuitry transfers the packets from each of the receive queues to a transmit queue and the buffer metadata is used to determine how to transmit the packet and how to process the packet before transmission.