Brussels / 3 & 4 February 2024


Flying higher: hardware offloading with BIRD

Offload IP forwarding to a SmartNIC/DPU with tc-flower(8)

In order to conserve CPU cycles, it can be helpful to offload all or some of the Internet routing table, to the embedded switch within modern network cards. Linux have good support for doing this through the tc-flower(8) API, although it was originally aimed towards OVS-offloading, it's however also capable of IP forwarding.

In the first part of the talk we will go through how tc-flower(8) can be used to offload IP forwarding onto a compatible SmartNIC/DPU, by scripting some tc commands. In the second part of the talk we will introduce flower-route, a new daemon, which keeps a hardware-offloaded tc ruleset in sync, with routing changes from a routing daemon like BIRD (or FRR, ...). Thereby attaining BGP-based IP forwarding offload.

Our current focus is mlx5-based devices (aka. NVIDIA/Mellanox ConnectX 5+), but it will work on any other driver with support for the required offloads.


Asbjørn Sloth Tønnesen