> On 2 Dec 2022, at 03:19, Ondrej Zajicek via Bird-users > <[email protected]> wrote: > > On Thu, Dec 01, 2022 at 01:48:16PM +0000, Alexander V. Chernikov via > Bird-users wrote: >> Dear bird developers, >> >> Netlink support was added to FreeBSD recently [1]. >> It’s not as “full-featured” as its Linux counterpart yet, however the added >> subset is enough to make a routing daemon work. >> Specifically, it supports multiple tables, multipath, nexthops and nexthops >> groups. No MPLS support yet. >> It aims to be compatible (whenever possible) to minimise the netlink users >> adoption efforts. >> The first FreeBSD releases to have netlink support will be 14.0 and 13.2. >> Both are planned to be released in ~Q1 2023. >> >> The attached change adds 'bsd-netlink’ sysconf target, allowing to build >> both netlink & rtsock versions on FreeBSD. > > Hi > > That looks interesting. It does not interefere with working code for > Linux or BSD, so we can merge it immediately without much issues. Are > there any significant differenences between Netlink model and BSD kernel? It depends on what’s deemed significant. Core concepts maps nicely. There are some implementation nuances, of course. The biggest I can name is the routing table IDs mismatch. In FreeBSD, the default routing table is #0 and there are no special 25X tables. Some attributes (like RTA_PREFSRC) are not supported. Interface address flags are not fully mapped yet & there might be some unsupported stuff w.r.t IPv6 prefixes lifetime. “Prohibit” nexthops are not supported yet (as the kernel only provides blackhole / reject ATM). Resilient nexthop groups are not supported yet as well. I may be missing something, but I’m pretty sure that the implementation is close to supporting all of the current bird features (except mpls). > Like Linux keep (and Netlink API assumes) multiple routes with different > metric, and keeps source protocol. Yes, metrics & source protocol works. Also, speaking of features - FreeBSD netlink implementation is optimised for batching & there is significant performance difference between batched-and non-batched. Specifically, current bird code does ~80k routes/sec w/o netlink batching, ~180k routes/sec w/ rtsock and ~240k routes/sec w/ netlink batching (sz=16) on the same system. Would you be open to adopting a not-too-invasive netlink batching patch enabled conditionally under CONFIG_NETLINK_BATCHING ? > > -- > Elen sila lumenn' omentielvo > > Ondrej 'Santiago' Zajicek (email: [email protected]) > OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) > "To err is human -- to blame it on a computer is even more so." >
Re: [PATCH] Netlink on FreeBSD support
Alexander V. Chernikov via Bird-users Fri, 02 Dec 2022 13:26:46 -0800
- [PATCH] Netlink on FreeBSD support Alexander V. Chernikov via Bird-users
- Re: [PATCH] Netlink on FreeBSD ... Ondrej Zajicek via Bird-users
- Re: [PATCH] Netlink on Free... Alexander V. Chernikov via Bird-users
- Re: [PATCH] Netlink on ... Ondrej Zajicek via Bird-users
- Re: [PATCH] Netlink... Alexander Chernikov via Bird-users
- Re: [PATCH] Ne... Ondrej Zajicek via Bird-users
- Re: [PATCH... Alexander Chernikov via Bird-users
- Re: [P... Ondrej Zajicek via Bird-users
- Re: [PATCH] Netlink on Free... Alexander Chernikov via Bird-users
- Re: [PATCH] Netlink on Free... Alexander Chernikov via Bird-users
- Re: [PATCH] Netlink on ... Ondrej Zajicek via Bird-users
- Re: [PATCH] Netlink... Alexander Chernikov via Bird-users
- Re: [PATCH] Ne... Ondrej Zajicek via Bird-users
