Skip to content

06.02 Kernel High Performance Networking

Network Performance in the Linux Kernel, Getting the most out of the Hardware - YouTube

Packet Processing. - Single CPU getting interrupts.

N Tuple Flow - 2 tuple flows. for L2/L3 traffic - 5 tuple flows. for application flows.

Receive Packet Steering - software only optimization. - soft-irq CPU core schedules processing of sk_buff on other cores.

Receive Side Scaling - Hardware version of RPS - n-tuple RSS id is computed in hardware - RSS table defined in driver or via sysfs/ethtool to define how packets are spread across cores. - can speed up packet forwarding 3x! used for openwrt and friends.

Receive Flow Steering - RSS/RPS dont care about which cpu-core runs the consuming userspace process. - kernel maintains an RFS steering table within the kernel . - Updated dynamically by the kernel - Software only solution.

aRFS - accelerated RFS. - Hardware solution. - kernel needs to be compiled with CONFIG_RFS_ACCEL - Driver + HW needed which can support n-tuple filtering. - Manual steering can be optionally configured using tc flower , ethtool

RSS Context

Checksum Offload

Mac Filtering

Data Insertion and Segmentation

XDP

DPDK - bypass kernel AF_XDP -