Programmable Network Interface for NVMeoF Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current high-performance Non-Volatile Memory express (NVMe) over Fabric (NVMeoF) systems using Transmission Control Protocol (TCP) face inefficiencies due to processor-intensive TCP packet processing, leading to high latency and reduced throughput, especially in data centers with modern Ethernet speeds, and lack flexible operational offloading for evolving protocols and applications.

Innovation Solution

Implementing a programmable network interface that offloads NVMeoF/TCP processing from processors to hardware, utilizing connection management, transport, and flow control modules to manage connections, requests, and retransmissions, and employing programmable pipelines for efficient packet processing, allowing for line-rate handling and adaptation to changing protocols and requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If standard network interfaces process TCP packets using kernel space TCP stack, then protocol compliance is maintained, but processor cycles are consumed leading to high latency and reduced throughput

Engineering Contradiction:
Improveprotocol complianceVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts TCP processing functions from the kernel space TCP stack and relocates them to user space. Specifically, TCP checksum computation, packet segmentation, and other basic operations are offloaded to user space libraries (e.g., libtcpoffload), removing the performance bottleneck from the kernel path while maintaining protocol compliance through carefully designed user space implementations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary layer between the network interface card and the kernel TCP stack. This intermediary consists of user space libraries that handle TCP operations, acting as a mediator that preserves protocol correctness while avoiding kernel space processing overhead. The intermediary translates between hardware capabilities and protocol requirements without involving the full kernel TCP stack.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If kernel bypass is used to transfer packet processing from kernel space to user space, then processing overhead is reduced, but complex protocol operations still create overhead limiting performance improvement

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprotocol operation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments TCP processing into distinct functional components that can be independently optimized. Checksum computation is separated from packet segmentation, which is separated from connection management. Each segment is handled by specialized user space libraries that can be optimized independently, reducing the complexity burden on any single component while maintaining overall processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic adaptation where the system can adjust its processing mode based on workload characteristics. The user space libraries can dynamically switch between different processing strategies, and the system can adapt to evolving protocols and application requirements without requiring kernel modifications, maintaining flexibility while reducing overhead.

Inventive Principle:
Principle #15Dynamics

3Productivity

If basic operations like checksum processing and packet segmentation are offloaded from processor, then some processing burden is reduced, but kernel's TCP stack processing remains a performance bottleneck

Engineering Contradiction:
Improveprocessing capacityVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent ensures continuous TCP processing by eliminating kernel space interruptions. User space libraries maintain continuous operation for checksum computation and packet segmentation without being blocked by kernel scheduling or system calls. This continuous processing in user space removes the latency introduced by kernel transitions while keeping the TCP stack functionality intact.

Inventive Principle:
Principle #20Continuity of useful action

4Productivity

If existing approaches offload packet processing, then some performance improvement is achieved, but flexible operational offloading for evolving protocols and applications is not supported

Engineering Contradiction:
ImproveperformanceVSAvoidprotocol adaptation flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal offloading framework through user space libraries that can handle multiple protocols and application requirements. The libtcpoffload and similar libraries are designed to work with different TCP configurations and can be extended to support evolving protocols without requiring kernel modifications. This multi-functional approach allows a single user space implementation to serve diverse performance needs while maintaining adaptability.

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

Data Source

PatentUS11503140B2Packet processing by programmable network interface
Publication Date: 2022.11.15 WESTERN DIGITAL TECHNOLOGIES INC
  • US11503140B2 patent drawing
  • US11503140B2 patent drawing
  • US11503140B2 patent drawing

AI summary

A programmable network interface for a server includes at least one memory storing connection parameters for previously active Non-Volatile Memory express over Fabric (NVMeoF) connections with different NVMe nodes. An NVMeoF connection request is received from an NVMe node, and it is determined whether the NVMe node is associated with connection parameters stored in the at least one memory. In response to determining that the NVMe node is associated with connection parameters stored in the at least one memory, a new NVMeoF connection is established for communicating with the NVMe node using the stored connection parameters. In one aspect, an address space of the server is partitioned, and an NVMe request queue is assigned to each partition of the address space. At least one address is identified in a received NVMeoF message, and an NVMe request queue is determined for performing an NVMe request included in the NVMeoF message.