Date: Sat, 15 Aug 2020 08:47:48 -0600 From: Alan Somers <asomers@freebsd.org> To: "Alexander V. Chernikov" <melifaro@ipfw.ru> Cc: "current@FreeBSD.org" <current@freebsd.org>, FreeBSD Stable Mailing List <freebsd-stable@freebsd.org>, net <net@freebsd.org> Subject: Re: net.add_addr_allfibs=1 behaviour deprecation Message-ID: <CAOtMX2jgFkSh6uPwhxpZKKTauWQvr2W1s5wQE1FYvXzRBjHapA@mail.gmail.com> In-Reply-To: <348771597489519@mail.yandex.ru> References: <236161595078191@mail.yandex.ru> <348771597489519@mail.yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 15, 2020 at 5:25 AM Alexander V. Chernikov <melifaro@ipfw.ru> wrote: > 18.07.2020, 14:22, "Alexander V. Chernikov" <melifaro@freebsd.org>: > > Dear FreeBSD users, > > > > I would like to make net.add_addr_allfibs=0 as the default system > behaviour and remove net.add_addr_allfibs. > > To do so, I would like to collect use cases with net.add_addr_allfibs=1 > and multiple fibs, to ensure they can still be supported after removal. > > > > 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 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. > > > > I do understand that there are some cases where such behaviour is > desired. > > For example, it can be used to achieve VRF route leaking or binding on > address from different fibs. > > I would like to collect such cases to consider supporting them in a > different way. > > > > The goal is to make net.add_addr_allfibs=0 default behaviour and remove > net.add_addr_allfibs. > > It will simplify kernel fib-related code and allow bringing more > fib-related features. It will also improve fib scaling. > No objections has been received. > Next steps: > * Switch net.add_addr_allfibs to 0 ( https://reviews.freebsd.org/D26076 ) > * Provide an ability to use nexthops from different fibs > * Remove net.add_addr_allfibs > > Timeline: > > Aug 1: summarising feedback and the usecases, decision on proceeding > further > > Aug 20 (tentative): patches for supported usecases > > Sep 15 (tentative): net.add_addr_allfibs removal. > > > > [1]: [base Contents of /head/sys/net/route.c]( > https://svnweb.freebsd.org/base/head/sys/net/route.c?revision=178888&view=markup > ) > > [2]: [base Diff of /head/sys/net/route.c]( > https://svnweb.freebsd.org/base/head/sys/net/route.c?r1=180839&r2=180840&) > > > > /Alexander > I just want to say that I completely agree with this proposal. -Alan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2jgFkSh6uPwhxpZKKTauWQvr2W1s5wQE1FYvXzRBjHapA>