Page MenuHomeFreeBSD

Switch net.add_addr_allfibs default to 0

Authored by melifaro on Aug 15 2020, 11:14 AM.




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.


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

Diff Detail

rS FreeBSD src repository - subversion
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

melifaro retitled this revision from Disable net.add_addr_allfibs by default. Background: Multi-fib support was added in r178888 [1], 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 r180840 [2], 12... to Switch net.add_addr_allfibs default to 0.Aug 15 2020, 11:21 AM
melifaro edited the summary of this revision. (Show Details)
melifaro added reviewers: network, bz.
melifaro added a reviewer: julian.

I intend to commit it on Friday, Aug 21 if no objections arise.

What the current status of this review ? Wasn't it supposed to be committed at the end of August ?

This revision was not accepted when it landed; it landed in state Needs Review.Nov 8 2020, 6:28 PM
This revision was automatically updated to reflect the committed changes.