Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Oct 2022 12:45:56 -0400
From:      Shawn Webb <shawn.webb@hardenedbsd.org>
To:        "Alexander V. Chernikov" <melifaro@ipfw.ru>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: 7e5bf68495cc - main - netlink: add netlink support
Message-ID:  <20221001164556.guh2gu6umjvehq3r@mutt-hbsd>
In-Reply-To: <3A024E22-7FA8-4465-88EB-7DC7B1320095@ipfw.ru>
References:  <202210011419.291EJ3aa000309@gitrepo.freebsd.org> <20221001163510.gkvfycmi224ei5ok@mutt-hbsd> <3A024E22-7FA8-4465-88EB-7DC7B1320095@ipfw.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

--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.

Thanks,

--=20
Shawn Webb
Cofounder / Security Engineer
HardenedBSD

https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A=
4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc

--iwomfqhvgfyzurjf
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmM4br4ACgkQ/y5nonf4
4frpPRAAlMHbALjQzIhc5iLzGtNSub2VINec+7bYcb+FDu18THGYhisY5Xtyv8id
GC8lBkL+Pup/EaJ+RmIogT8qnvNFVtf2r/3x5gIb06QwE2v0UlQWz+Gt0pxOSpe0
C8LDnwOYZadJavyWcoDgfGEvZ25zGbKLHrAgHDdeeCaXHiweSePrQde0VDyLy7O/
Lc0aZhW0UHjM+2itcI3oJqsW934pmoQ6tMzGP7mks0nVtHALrCEk7UARhQvXOehn
jCKOGizq/9PReg57IgNHLjwCFBpoayFs+Gub3YmjvjSQNgmxxswY2F4zRf5mJZfK
bVpDMyHUA0jj99mUttsBhCTfNRp4Uq9wid30cEdpXIDBws0MwPWGFztS43rVt5i1
7QWtFT+f/QC72fTvkZ8kPuDSHVxw6/hEXFj5Ly8AzNKeoKKf0OYBTi6ZUfzgsj0h
5i6kg2PQCRHo0PAuQxrOvRiyFDbSXStMs9lYc+gmlJ7jpGu/xi+LE9fVfOCNM9uS
nFRbK34p/L+Bkuu4KalnXvJ+AiaqEui0uFEpc3kszlxokbH63A7DaPSotmhaU9Bc
CqPYMM1mDX3RZArvbf7sIr4Cx80bR1tmG+9YbHL3KobzILWoMvhgNKTv62EdsXC6
8vNWeqBjIsra/sACdD39ZAmZPbk161cPWx9kEYLUuT78H34/sjM=
=2jA8
-----END PGP SIGNATURE-----

--iwomfqhvgfyzurjf--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20221001164556.guh2gu6umjvehq3r>