Performance & Efficiency Through Offloading

A network interface card (NIC) moves data back and forth between the host CPU complex and the network, but the similarities between Solarflare’s NICs and others ends there. Solarflare’s XtremeScale X1 NIC cards have numerous patented methods for accelerating overall network performance. The three most often leveraged acceleration technologies are Offloading, Kernel Bypass, and Receive Flow Steering.

Solarflare NIC ASIC

 
Solarflare NIC ASIC Solarflare Onload Diagram

 

Fastest packet processing engine with near line rate packets per/sec (60Mpps at 40Gb)

Data Plane Offload

Offloading is the term given to the process where Solarflare moves repetitive tasks, often executed on the x86 processor, back into the XtremeScale X1 where they can be more efficiently processed. Within the XtremeScale X1 chip this processing occurs in the Xtreme Packet Engine and this results in two benefits: of Offloading, it frees the host CPU to do other more critical processing tasks, while also executing those tasks more efficiently and rapidly in silicon devices on the XtremeScale X1. Some classic offloads implemented in the XtremeScale X1 are: TCP Segment Offload (TSO), Large Receive Offload (LRO), Generic Segmentation Offload (GSO) along with the computation of UDP and TCP checksums.

Kernel Bypass

Kernel bypass is the capability to steer network packets around the operating system kernel and deliver them directly to or from the application expecting them. Unlike other vendors Solarflare provides five significantly different methods of kernel bypass the collection of which they call Universal Kernel Bypass (UKB). This family of bypass methods includes: Onload, ScaleOut Onload, TCPDirect, EF_VI, and Data Plane Development Kit (DPDK). Onload, ScaleOut Onload, and TCPDirect are focused on accelerating sockets based traffic via a high-performance stack that dramatically reduces latency and x86 CPU utilization, while increasing throughput. On the packet side Solarflare UKB provides a set of DPDK libraries and drivers for fast packet processing, along with it’s own packet acceleration library called Ether Fabric Virtual Interface (EF_VI).

Receive Flow Steering

Solarflare Advanced Receive Flow Steering (SARFS) is the capability to rapidly steer network traffic to the appropriate application queue expecting that traffic. The XtremeScale X1 NICs have multiple Xtreme Packet Engines along with 2,048 virtual NIC instances that are used to accelerate and steer traffic. These virtualized NIC instances can then be leveraged to bypass the traditional OS kernel and place packets directly into user space memory for immediate application processing. This is especially useful for both containerized and virtualized environments where large volumes of traffic and network flows are present. For special applications like capture an advanced RFS algorithm steers flows to the least loaded cores in a capture cluster.