Drivers¶
XDP depends on drivers implementing the RX hook and set-up API. Adding driver support is fairly easy, unless it requires changing the driver’s memory model (which is often the case).
Mellanox: mlx4¶
The first driver implementing XDP were the Mellanox mlx4
driver.
The corresponding NIC is called ConnectX-3 and ConnectX-3 pro.
These NICs run Ethernet at 10Gbit/s and 40Gbit/s.
Mellanox: mlx5¶
The Mellanox driver mlx5
support XDP since kernel v4.9, but kernel
v4.10 is recommended as some minor fixes got applied.
These NICs run Ethernet at 10G, 25G, 40G, 50G and 100Gbit/s. They are called ConnectX-4 and ConnectX-4-Lx (Lx is limited to max 50G or 2x 25G).
Netronome: nfp¶
Driver: nfp Kernel release: v4.10
virtio-net¶
Driver: virtio-net Kernel release: v4.10
Cavium/Qlogic: qede¶
Driver: qede Kernel release: v4.10
Cavium: thunder¶
- Driver: thunder/nicvf
- Kernel release: v4.12
Broadcom: bnxt¶
- Driver: bnxt
- Kernel release: v4.12
Intel: ixgbe¶
- Driver: ixgbe
- Kernel release: v4.12