Summary

  • BIRD sent routes through the Linux FIB and switchdev driver to the LAN969x ASIC; Banelli reported clean addition and withdrawal of 256 extra routes.
  • The live test left full tables, copper-port L3, actual ECMP balancing, BFD, ACLs and cable-pull recovery open. Novarq’s README says “mainline support”; Banelli described the tested build as still using the company’s kernel.

The number that made the demo concrete was 256. Bruno Banelli’s team added and withdrew a batch of extra routes on an open Linux switch, and the changes completed cleanly. The number that would make the result operationally complete—the size of the full routing table they could install and keep in hardware—was not tested.

Banelli, co-founder and CEO of Novarq, presented the work at RIPE 93 as a practical route for running BIRD directly on a switch. BIRD installed routes in Linux’s forwarding information base (FIB); kernel notifications passed the changes to the LAN969x driver; the driver programmed the switch ASIC. Banelli said the route path had no SAI, FPM or separate vendor routing agent. Linux’s switchdev model supplies the kernel-side framework for handing forwarding work to switch hardware.

The test was narrow by design. A VLAN-aware bridge separated two routed VLANs. Four dual-stack eBGP sessions came up, import and export filters kept the experiment bounded, and default and management routes stayed out of BGP. Banelli reported that a peer’s announcement or withdrawal reached the Linux FIB in under half a second. Packet captures and counters checked that IPv4 and IPv6 transit traffic crossed the ASIC, while traffic addressed to the switch itself reached its CPU. CPU use stayed below 10% in that configuration.

Then the missing rows arrived. The team did not test a full route table, all ports, copper-port L3 forwarding, ACLs, BFD or a cable pull. ECMP was enabled, but they did not test how traffic split across paths. Next-hop objects were not offloaded. During an administrative peer-down check, the peer’s NIC kept the optical link up; the switch saw no physical link loss, and routes remained until a nine-second hold timer expired. That is a timer result, not a cable-failure result.

IPv6 needed a workaround as well. Neighbor discovery entries in each routed VLAN had to be refreshed every 60 seconds. Banelli called this a driver issue and said it had been reported. These details matter because the promise is not only that Linux can talk to the ASIC. Operators need to know which routes, ports and failure transitions the driver handles without falling back to software.

The kernel story needs the same precision. Novarq’s public repository describes the platform as having “mainline support” and full kernel integration. At RIPE 93, Banelli said the test build still used the company’s own kernel, with L3 patches being upstreamed and full L3 support expected in mainline by the second quarter of 2027. The public materials do not identify which kernel release and which L3 features that broad label covers; a versioned feature matrix would settle it.

Banelli showed a real Linux routing path and several checks that passed. The useful next receipt is a reproducible matrix: kernel and driver versions, BIRD configuration, maximum routes installed and offloaded, IPv4/IPv6 port coverage, neighbor aging, ECMP distribution and recovery traces. Until those rows exist, 256 routes are a successful experiment; they are not a capacity figure for a production network.

Sources