Re: git: 19e43c163c64 - main - netlink: add netlink KPI to the kernel by default
- In reply to: Shawn Webb : "Re: git: 19e43c163c64 - main - netlink: add netlink KPI to the kernel by default"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 27 Mar 2023 16:11:25 UTC
> On 27 Mar 2023, at 16:39, Shawn Webb <shawn.webb@hardenedbsd.org> wrote: > > On Mon, Mar 27, 2023 at 01:55:52PM +0000, Alexander V. Chernikov wrote: >> The branch main has been updated by melifaro: >> >> URL: https://cgit.FreeBSD.org/src/commit/?id=19e43c163c64636d2590dca006e22f18d22f48b2 >> >> commit 19e43c163c64636d2590dca006e22f18d22f48b2 >> Author: Alexander V. Chernikov <melifaro@FreeBSD.org> >> AuthorDate: 2023-03-27 11:59:30 +0000 >> Commit: Alexander V. Chernikov <melifaro@FreeBSD.org> >> CommitDate: 2023-03-27 13:55:44 +0000 >> >> netlink: add netlink KPI to the kernel by default >> >> This change does the following: >> >> Base Netlink KPIs (ability to register the family, parse and/or >> write a Netlink message) are always present in the kernel. Specifically, >> * Implementation of genetlink family/group registration/removal, >> some base accessors (netlink_generic_kpi.c, 260 LoC) are compiled in >> unconditionally. >> * Basic TLV parser functions (netlink_message_parser.c, 507 LoC) are >> compiled in unconditionally. >> * Glue functions (netlink<>rtsock), malloc/core sysctl definitions >> (netlink_glue.c, 259 LoC) are compiled in unconditionally. >> * The rest of the KPI _functions_ are defined in the netlink_glue.c, >> but their implementation calls a pointer to either the stub function >> or the actual function, depending on whether the module is loaded or not. >> >> This approach allows to have only 1k LoC out of ~3.7k LoC (current >> sys/netlink implementation) in the kernel, which will not grow further. >> It also allows for the generic netlink kernel customers to load >> successfully without requiring Netlink module and operate correctly >> once Netlink module is loaded. >> >> Reviewed by: imp >> MFC after: 2 weeks >> Differential Revision: https://reviews.freebsd.org/D39269 >> --- >> sys/conf/files | 4 +- >> sys/conf/options | 2 +- >> sys/modules/carp/Makefile | 2 +- >> sys/modules/netlink/Makefile | 6 +- >> sys/net/route.c | 19 --- >> sys/netinet/ip_carp.c | 2 + >> sys/netlink/netlink_ctl.h | 10 +- >> sys/netlink/netlink_domain.c | 24 --- >> sys/netlink/netlink_generic.c | 282 +++-------------------------------- >> sys/netlink/netlink_generic_kpi.c | 279 ++++++++++++++++++++++++++++++++++ >> sys/netlink/netlink_io.c | 2 + >> sys/netlink/netlink_message_writer.c | 22 +-- >> sys/netlink/netlink_message_writer.h | 86 +++++++++++ >> sys/netlink/netlink_module.c | 26 +++- >> sys/netlink/netlink_var.h | 44 ++++++ >> sys/netlink/route/iface.c | 2 + >> sys/netlink/route/neigh.c | 2 + >> sys/netlink/route/nexthop.c | 2 + >> sys/netlink/route/rt.c | 2 + >> 19 files changed, 497 insertions(+), 321 deletions(-) >> >> diff --git a/sys/conf/files b/sys/conf/files >> index 629283f7c071..94cd7135b277 100644 >> --- a/sys/conf/files >> +++ b/sys/conf/files >> @@ -4424,10 +4424,12 @@ netipsec/xform_ipcomp.c optional ipsec inet | ipsec inet6 >> netipsec/xform_tcp.c optional ipsec inet tcp_signature | \ >> ipsec inet6 tcp_signature | ipsec_support inet tcp_signature | \ >> ipsec_support inet6 tcp_signature >> +netlink/netlink_generic_kpi.c standard >> +netlink/netlink_glue.c standard > > It appears netlink/netlink_glue.c was missed from this commit: Sorry for the breakage, should be fixed in d3a49f62a284. > > cc: error: no such file or directory: '/usr/src/sys/netlink/netlink_glue.c' > cc: error: no input files > > Thanks, > > -- > Shawn Webb > Cofounder / Security Engineer > HardenedBSD > > https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc