Re: git: 7e5bf68495cc - main - netlink: add netlink support

From: Cy Schubert <Cy.Schubert_at_cschubert.com>
Date: Sat, 01 Oct 2022 16:51:40 UTC
In message <20221001164556.guh2gu6umjvehq3r@mutt-hbsd>, Shawn Webb writes:
> 
> --iwomfqhvgfyzurjf
> Content-Type: text/plain; charset=utf-8
> Content-Disposition: inline
> Content-Transfer-Encoding: quoted-printable
>
> On Sat, Oct 01, 2022 at 05:40:05PM +0100, Alexander V. Chernikov wrote:
> >=20
> > > On 1 Oct 2022, at 17:35, Shawn Webb <shawn.webb@hardenedbsd.org> wrote:
> > >=20
> > > On Sat, Oct 01, 2022 at 02:19:03PM +0000, Alexander V. Chernikov wrote:
> > >> The branch main has been updated by melifaro:
> > >>=20
> > >> URL: https://cgit.FreeBSD.org/src/commit/?id=3D7e5bf68495cc0a8c9793a33=
> 8a8a02009a7f6dbb6
> > >>=20
> > >> commit 7e5bf68495cc0a8c9793a338a8a02009a7f6dbb6
> > >> Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
> > >> AuthorDate: 2022-01-20 21:39:21 +0000
> > >> Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
> > >> CommitDate: 2022-10-01 14:15:35 +0000
> > >>=20
> > >>   netlink: add netlink support
> > >>=20
> > >>   Netlinks is a communication protocol currently used in Linux kernel =
> to modify,
> > >>    read and subscribe for nearly all networking state. Interfaces, add=
> resses, routes,
> > >>    firewall, fibs, vnets, etc are controlled via netlink.
> > >>   It is async, TLV-based protocol, providing 1-1 and 1-many communicat=
> ions.
> > >>=20
> > >>   The current implementation supports the subset of NETLINK_ROUTE
> > >>   family. To be more specific, the following is supported:
> > >>   * Dumps:
> > >>    - routes
> > >>    - nexthops / nexthop groups
> > >>    - interfaces
> > >>    - interface addresses
> > >>    - neighbors (arp/ndp)
> > >>   * Notifications:
> > >>    - interface arrival/departure
> > >>    - interface address arrival/departure
> > >>    - route addition/deletion
> > >>   * Modifications:
> > >>    - adding/deleting routes
> > >>    - adding/deleting nexthops/nexthops groups
> > >>    - adding/deleting neghbors
> > >>    - adding/deleting interfaces (basic support only)
> > >>   * Rtsock interaction
> > >>    - route events are bridged both ways
> > >>=20
> > >>   The implementation also supports the NETLINK_GENERIC family framewor=
> k.
> > >>=20
> > >>   Implementation notes:
> > >>   Netlink is implemented via loadable/unloadable kernel module,
> > >>    not touching many kernel parts.
> > >>   Each netlink socket uses dedicated taskqueue to support async operat=
> ions
> > >>    that can sleep, such as interface creation. All message processing =
> is
> > >>    performed within these taskqueues.
> > >>=20
> > >>   Compatibility:
> > >>   Most of the Netlink data models specified above maps to FreeBSD conc=
> epts
> > >>    nicely. Unmodified ip(8) binary correctly works with
> > >>   interfaces, addresses, routes, nexthops and nexthop groups. Some
> > >>   software such as net/bird require header-only modifications to compi=
> le
> > >>   and work with FreeBSD netlink.
> > >>=20
> > >>   Reviewed by:    imp
> > >>   Differential Revision: https://reviews.freebsd.org/D36002
> > >>   MFC after:      2 months
> > >> ---
> > >> etc/mtree/BSD.include.dist           |    4 +
> > >> sys/modules/Makefile                 |    1 +
> > >> sys/modules/netlink/Makefile         |   17 +
> > >> sys/net/route.c                      |   11 +
> > >> sys/net/route/route_ctl.h            |    7 +
> > >> sys/net/rtsock.c                     |   42 ++
> > >> sys/netlink/netlink.h                |  257 +++++++++
> > >> sys/netlink/netlink_ctl.h            |  102 ++++
> > >> sys/netlink/netlink_debug.h          |   82 +++
> > >> sys/netlink/netlink_domain.c         |  689 +++++++++++++++++++++++
> > >> sys/netlink/netlink_generic.c        |  472 ++++++++++++++++
> > >> sys/netlink/netlink_generic.h        |  112 ++++
> > >> sys/netlink/netlink_io.c             |  528 ++++++++++++++++++
> > >> sys/netlink/netlink_linux.h          |   54 ++
> > >> sys/netlink/netlink_message_parser.c |  472 ++++++++++++++++
> > >> sys/netlink/netlink_message_parser.h |  270 +++++++++
> > >> sys/netlink/netlink_message_writer.c |  686 +++++++++++++++++++++++
> > >> sys/netlink/netlink_message_writer.h |  250 +++++++++
> > >> sys/netlink/netlink_module.c         |  228 ++++++++
> > >> sys/netlink/netlink_route.c          |  135 +++++
> > >> sys/netlink/netlink_route.h          |   43 ++
> > >> sys/netlink/netlink_var.h            |  142 +++++
> > >> sys/netlink/route/common.h           |  213 ++++++++
> > >> sys/netlink/route/iface.c            |  857 ++++++++++++++++++++++++++=
> +++
> > >> sys/netlink/route/iface_drivers.c    |  165 ++++++
> > >> sys/netlink/route/ifaddrs.h          |   90 +++
> > >> sys/netlink/route/interface.h        |  245 +++++++++
> > >> sys/netlink/route/neigh.c            |  571 +++++++++++++++++++
> > >> sys/netlink/route/neigh.h            |  105 ++++
> > >> sys/netlink/route/nexthop.c          | 1000 ++++++++++++++++++++++++++=
> ++++++++
> > >> sys/netlink/route/nexthop.h          |  102 ++++
> > >> sys/netlink/route/route.c            |  972 ++++++++++++++++++++++++++=
> +++++++
> > >> sys/netlink/route/route.h            |  366 +++++++++++++
> > >> sys/netlink/route/route_var.h        |  101 ++++
> > >> 34 files changed, 9391 insertions(+)
> > >>=20
> > >=20
> > > Hey Alexander,
> > >=20
> > > This commit broke buildworld:
> > Should be fixed by 11ca01e9aa47 (currently building to see if that=E2=80=
> =99s the last one)
>
> Cool. Thanks!
>
> Tangentially related: it looks like the commit email for 11ca01e9aa47
> is missing. I checked my spam folder just to make sure on my end.

It's not missing. He hasn't pushed it yet. Alexander's statement in 
brackets "()" implies he hasn't pushed it yet.

** Though, the hash will change should a rebase be needed between the time 
he committed it and it is pushed.


-- 
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  http://www.FreeBSD.org
NTP:           <cy@nwtime.org>    Web:  https://nwtime.org

			e^(i*pi)+1=0