Stack Bypass API for Zero-Copy Ethernet Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional TCP/IP communication incurs high costs due to data copying between kernel buffers and user process virtual memory at the socket layer, motivating the need to reduce or eliminate data copying.

Innovation Solution

A stack bypass API that registers user-selectable filter and receive functions with an Ethernet driver, allowing for customizable packet processing, including discarding, forwarding, or removing packets from the DMA ring, thereby reducing software overhead and enabling zero-copy mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional TCP/IP communication is used with socket layer copying, then data transmission can be achieved, but high copying cost between kernel buffers and user process virtual memory occurs

Engineering Contradiction:
Improvedata transmission throughputVSAvoidcopying cost
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts the data copying operation from the conventional TCP/IP stack by implementing a bypass mechanism that allows data to skip the socket layer copying process entirely. The Ethernet driver directly places received packets into a ring buffer in user space, eliminating the intermediate copying steps between kernel and user space memory.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a ring buffer as an intermediary structure that sits between the kernel Ethernet driver and user space application. This ring buffer allows data to be transferred without traditional copying by using shared memory with producer-consumer pointers, acting as a mediator that eliminates the need for data duplication.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If zero copy mechanism is implemented, then data copying is reduced, but processing needs remain high

Engineering Contradiction:
Improvecopying costVSAvoidprocessing needs
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent performs preliminary filtering actions at the Ethernet driver level before data enters the application processing pipeline. The filter function evaluates packets early in the receive path and determines discard, forward, or remove actions, preventing unnecessary packets from consuming application processing resources.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the packet processing pipeline into distinct functional stages: filtering at the driver level, selective forwarding to the IP stack, and application-level processing only for relevant packets. This segmentation allows each component to handle only its specific task, reducing overall processing complexity.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If extensive software is used from Ethernet packet receipt to application processing, then packet handling can be achieved, but software overhead is high

Engineering Contradiction:
Improvepacket handling capabilityVSAvoidsoftware overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent creates a universal filter function interface that can handle multiple packet processing scenarios through a single unified API. The filter function can perform classification, filtering, and redirection operations, consolidating what would otherwise require multiple separate software components into one multi-functional element.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7551618B2Stack bypass application programming interface
Publication Date: 2009.06.23 DIGI INTERNATIONAL
  • US7551618B2 patent drawing
  • US7551618B2 patent drawing
  • US7551618B2 patent drawing

AI summary

Methods and apparatus, including computer program products, for a stack bypass application programming interface (API). A stack bypass API for receipt of a packet includes a registration function that registers an application selectable filter function and a receive function that are used during operation by an Ethernet driver.