Background
Multi-fib support was added in rS178888 12 years ago.
Addition of interface addresses to all fibs was a feature from day 1.
The net.add_addr_allfibs sysctl was added in rS180840, 12 years ago.
Problem
The goal of the fib support is to provide multiple independent routing tables, isolated from each other.
net.add_addr_allfibs default tries to shift gears in the opposite direction, unconditionally inserting all addresses to all of the fibs.
It complicates the logic, kernel code and makes control plane performance decrease with the number of fibs.
It make impossible to use the same prefixes in multiple fibs, which may be desired given shortage of IPv4 address space.
Proposal to switch the behaviour and remove the sysctl was announced more than a month ago. No objections has been received so far.
Next steps
- Evaluate the possibility of addressing "nexthop in a different fib" usecase by using "proxy" nexthops
- Once done, remove the sysctl