From nobody Sat Oct 01 16:40:05 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MftB36Skrz4d0VC; Sat, 1 Oct 2022 16:40:11 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward500p.mail.yandex.net (forward500p.mail.yandex.net [77.88.28.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4MftB33LQYz435X; Sat, 1 Oct 2022 16:40:11 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from vla3-178a3f795968.qloud-c.yandex.net (vla3-178a3f795968.qloud-c.yandex.net [IPv6:2a02:6b8:c15:2584:0:640:178a:3f79]) by forward500p.mail.yandex.net (Yandex) with ESMTP id 1758FF0151F; Sat, 1 Oct 2022 19:40:08 +0300 (MSK) Received: by vla3-178a3f795968.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id oje9KC2GsB-e6h0MXOP; Sat, 01 Oct 2022 19:40:07 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1664642407; bh=X0k62DC/VWY7sh96nHYrvRO/tAUmZrQpVWnCgeaZrcA=; h=Message-Id:To:Date:References:Cc:In-Reply-To:From:Subject; b=quiXNrZVHsHUPv951+L81bf4JUHqA/2tcjV9YKBNQv7JB1P7572gUP0/tZqVSsaat 8QH7LW3Soky9HtuUcycmG/bCbKfyFH8JgpJ8TVUr8GH63qv6KrMK08nNlLOCkwIIsP bw8kEa1L0GnXHkQq+CLcDEhj1WMKV0BC6sD76GNA= Content-Type: text/plain; charset=utf-8 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: git: 7e5bf68495cc - main - netlink: add netlink support From: "Alexander V. Chernikov" In-Reply-To: <20221001163510.gkvfycmi224ei5ok@mutt-hbsd> Date: Sat, 1 Oct 2022 17:40:05 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <3A024E22-7FA8-4465-88EB-7DC7B1320095@ipfw.ru> References: <202210011419.291EJ3aa000309@gitrepo.freebsd.org> <20221001163510.gkvfycmi224ei5ok@mutt-hbsd> To: Shawn Webb X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Rspamd-Queue-Id: 4MftB33LQYz435X X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-ThisMailContainsUnwantedMimeParts: N > On 1 Oct 2022, at 17:35, Shawn Webb = 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=3D7e5bf68495cc0a8c9793a338a8a02009= a7f6dbb6 >>=20 >> commit 7e5bf68495cc0a8c9793a338a8a02009a7f6dbb6 >> Author: Alexander V. Chernikov >> AuthorDate: 2022-01-20 21:39:21 +0000 >> Commit: Alexander V. Chernikov >> 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, = addresses, routes, >> firewall, fibs, vnets, etc are controlled via netlink. >> It is async, TLV-based protocol, providing 1-1 and 1-many = communications. >>=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 = framework. >>=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 = operations >> 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 = concepts >> 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 = compile >> 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=99= s the last one) >=20 > =3D=3D=3D> tests/atf_python/sys/net (includes) > =3D=3D=3D> etc (includes) > make[3]: warning: /etc: Permission denied. > =3D=3D=3D> etc/termcap (includes) > =3D=3D=3D> etc/sendmail (includes) > 53.93 real 36.66 user 11.99 sys > cd /usr/src; time env MACHINE_ARCH=3Damd64 MACHINE=3Damd64 CPUTYPE=3D= CC=3D"cc -target x86_64-unknown-freebsd14.0 = --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX=3D"c++ -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CPP=3D"cpp -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" AS=3D"as" AR=3D"ar" LD=3D"ld"= LLVM_LINK=3D"" NM=3Dnm OBJCOPY=3D"objcopy" RANLIB=3Dranlib STRINGS=3D = SIZE=3D"size" STRIPBIN=3D"strip" INSTALL=3D"install -U" = PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/t= mp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd6= 4.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bi= n:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64= /tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin = SYSROOT=3D/usr/obj/usr/src/amd64.amd64/tmp make -f Makefile.inc1 = BWPHASE=3Dincludes DESTDIR=3D/usr/obj/usr/src/amd64.amd64/tmp = test-includes > cd /usr/src/tools/build/test-includes; MACHINE_ARCH=3Damd64 = MACHINE=3Damd64 CPUTYPE=3D CC=3D"cc -target x86_64-unknown-freebsd14.0 = --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX=3D"c++ -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CPP=3D"cpp -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" AS=3D"as" AR=3D"ar" LD=3D"ld"= LLVM_LINK=3D"" NM=3Dnm OBJCOPY=3D"objcopy" RANLIB=3Dranlib STRINGS=3D = SIZE=3D"size" STRIPBIN=3D"strip" INSTALL=3D"install -U" = PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/t= mp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd6= 4.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bi= n:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64= /tmp/legacy/usr/libexec::/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr= /src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/us= r/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64= /tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/u= sr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin = SYSROOT=3D/usr/obj/usr/src/amd64.amd64/tmp make = DESTDIR=3D/usr/obj/usr/src/amd64.amd64/tmp test-includes > cc -target x86_64-unknown-freebsd14.0 = --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -target = x86_64-unknown-freebsd14.0 --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp = -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -O2 -pipe -fno-common = -DHARDENEDBSD -g -gz=3Dzlib -mretpoline -flto -MD = -MF.depend.netlink_netlink.o -MTnetlink_netlink.o -std=3Dgnu99 = -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers = -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter = -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type = -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter = -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-style-definition = -Wno-pointer-sign -Wmissing-variable-declarations -Wthread-safety = -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable = -Wno-error=3Dunused-but-set-variable -Qunused-arguments -c = netlink_netlink.c -o netlink_netlink.o > netlink_netlink.c:1:10: fatal error: 'netlink/netlink.h' file not = found > #include > ^~~~~~~~~~~~~~~~~~~ > 1 error generated. > *** Error code 1 >=20 > Stop. > make[3]: stopped in /usr/src/tools/build/test-includes > *** Error code 1 >=20 > Stop. > make[2]: stopped in /usr/src >=20 > Thanks, >=20 > --=20 > Shawn Webb > Cofounder / Security Engineer > HardenedBSD >=20 > = https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03= A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc