Network Adapter Application Level Packet Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network adapter technologies do not effectively utilize application level information to reduce the burden on the host CPU during packet reception and transmission, leading to inefficient handling of packets and communication overhead.

Innovation Solution

The network adapter is configured to identify and utilize application level information in received packets to selectively report packets to the host CPU, terminate coalescing sessions, and control data transmission based on parameters such as maximal coalesced packet size, timeout periods, and quality of service policies, thereby reducing CPU cycles and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the network adapter uses traditional packet handling methods without application level information, then the device complexity is low, but the CPU cycles required for packet handling are high

Engineering Contradiction:
ImproveCPU cycles for packet handlingVSAvoidnetwork adapter complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The network adapter performs preliminary inspection of packets at the network layer before they reach the host CPU, identifying application level information patterns in advance. This preliminary action filters and prepares packets for selective reporting, reducing the CPU burden by pre-processing packet classification based on application layer characteristics.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The network adapter acts as an intermediary between the network interface and the host CPU, insulating the CPU from raw packet processing. By introducing this intermediate layer that handles packet inspection, coalescing, and selective reporting based on application level information, the system reduces direct CPU involvement in packet handling while maintaining intelligent packet management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If the network adapter coalesces multiple packets into a single large packet, then the communication overhead is reduced, but the packet handling time increases

Engineering Contradiction:
Improvecommunication overheadVSAvoidpacket handling time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The network adapter dynamically adjusts the coalescing behavior based on real-time conditions and application level information. Rather than using a fixed coalescing strategy, the system adapts the packet aggregation level and timing based on the specific application protocols detected, allowing optimal balance between coalescing benefits and handling speed for different workloads.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes packet handling parameters such as coalescing thresholds, reporting intervals, and aggregation levels based on application level information extracted from packets. By modifying these parameters dynamically according to the detected application protocol and packet characteristics, the system optimizes the trade-off between reducing communication overhead and maintaining acceptable handling time.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If the network adapter reports all received packets to the host CPU, then the information completeness is high, but the CPU processing burden increases

Engineering Contradiction:
Improvepacket information completenessVSAvoidCPU processing capability
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The network adapter extracts and filters only the necessary packet information and selects specific packets for reporting to the host CPU based on application level criteria. By taking out only the essential packets that require CPU processing (such as those with significant application layer data or specific protocol characteristics), the system maintains information completeness for relevant packets while reducing overall CPU processing burden.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The packet reporting strategy applies different quality levels to different packets based on their application layer characteristics. Packets with important application level information are reported with full detail, while packets with less critical information are handled differently (filtered, aggregated, or delayed). This local differentiation optimizes CPU processing by focusing resources on packets that provide the most value.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If the network adapter uses fixed packet handling policies, then the device complexity is low, but the adaptability to different applications is poor

Engineering Contradiction:
Improveapplication level adaptabilityVSAvoidpacket handling complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The network adapter incorporates feedback mechanisms that monitor packet characteristics and application layer patterns, using this information to adapt packet handling policies in real-time. By continuously analyzing received packets and adjusting coalescing behavior, reporting strategies, and processing parameters based on observed application protocols, the system achieves high adaptability while managing complexity through automated feedback-driven adjustment.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11876859B2Controlling packet delivery based on application level information
Publication Date: 2024.01.16 MELLANOX TECHNOLOGIES LTD(IL)
  • US11876859B2 patent drawing
  • US11876859B2 patent drawing
  • US11876859B2 patent drawing

AI summary

A network device includes a network interface, a host interface, and processing circuitry. The network interface is configured to connect to a communication network. The host interface is configured to connect to a host comprising a host processor running a client process. The processing circuitry is configured to receive packets belonging to a message having a message length, the message originating from a peer process, to identify, in at least some of the received packets, application-level information specifying the message length, to determine, based on the identified message length, that the packets of the message already received comprise only a portion of the message, and in response to determining that the client process benefits from receiving less than the entire message, to initiate reporting the packets of the message already received to the client process.