freebsd-dev/sys/net
Alexander V. Chernikov 19e43c163c 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
2023-03-27 13:55:44 +00:00
..
altq altq: ansify 2023-02-13 18:32:45 +00:00
route routing: add public rt_is_exportable() version to check if 2023-03-26 08:24:27 +00:00
bpf_buffer.c
bpf_buffer.h
bpf_filter.c bpf(3): Grammar fix for a source code comment 2022-09-04 17:30:05 +02:00
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c net: whack __mips__ leftovers 2023-03-01 11:07:32 +00:00
bpf.h bpf: Add "_if" tap APIs 2023-01-31 15:02:14 -05:00
bpfdesc.h
bridgestp.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
bridgestp.h
debugnet_inet.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
debugnet_int.h
debugnet.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
debugnet.h debugnet: Add ifnet accessor to set debugnet methods 2023-01-24 15:03:35 -05:00
dlt.h
ethernet.h bpf: Add "_if" tap APIs 2023-01-31 15:02:14 -05:00
firewire.h IfAPI: Add l2com accessor for firewire. 2023-01-31 15:02:17 -05:00
ieee8023ad_lacp.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
ieee8023ad_lacp.h lacp: short timeout erroneously declares link-flapping 2022-04-27 12:41:30 -07:00
ieee_oui.h
if_arp.h
if_bridge.c net: unify mtu update code 2023-03-06 15:08:08 +00:00
if_bridgevar.h bridge: Fix whitespace 2023-01-30 13:12:36 -05:00
if_clone.c net: refactor if_clone.c #1 2023-03-15 13:54:22 +00:00
if_clone.h if_clone: add ifc_link_ifp() / ifc_unlink_ifp() to the KPI 2022-09-24 19:42:42 +00:00
if_dead.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_disc.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_dl.h
if_edsc.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_enc.c net: use pfil_mbuf_{in,out} where we always have an mbuf 2023-02-14 10:02:49 -08:00
if_enc.h
if_epair.c epair: Remove unneeded includes and sort some of the rest 2023-03-13 10:45:35 -04:00
if_ethersubr.c net: use pfil_mbuf_{in,out} where we always have an mbuf 2023-02-14 10:02:49 -08:00
if_fwsubr.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_gif.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_gif.h
if_gre.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_gre.h
if_infiniband.c infiniband: Bring back M_ASSERTVALID() check in infiband_bpf_mtap() 2023-03-24 11:04:42 -04:00
if_ipsec.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_ipsec.h
if_lagg.c lagg: Various style fixes 2023-03-24 17:55:15 +08:00
if_lagg.h lagg: Various style fixes 2023-03-24 17:55:15 +08:00
if_llatbl.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_llatbl.h netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
if_llc.h
if_loop.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_me.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_media.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_media.h
if_mib.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_mib.h
if_ovpn.c if_ovpn: ovpn_find_peer_by_ip() is unused without INET 2023-02-23 05:56:56 +01:00
if_ovpn.h if_ovpn: implement OVPN_GET_PEER_STATS 2022-12-14 06:48:58 +01:00
if_pflog.h
if_pfsync.h pfsync: prepare code to accommodate AF_INET6 family 2022-11-09 21:06:07 +01:00
if_private.h IfAPI: Add some more accessors 2023-01-31 15:02:17 -05:00
if_stf.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_stf.h
if_tap.h
if_tun.h
if_tuntap.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_types.h Import the WireGuard driver from zx2c4.com. 2022-10-28 13:36:12 -07:00
if_var.h IfAPI: Add iterator to complement if_foreach() 2023-03-23 09:39:26 -04:00
if_vlan_var.h IfAPI: Add some more accessors 2023-01-31 15:02:17 -05:00
if_vlan.c net: unify mtu update code 2023-03-06 15:08:08 +00:00
if_vxlan.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
if_vxlan.h
if.c IfAPI: Add iterator to complement if_foreach() 2023-03-23 09:39:26 -04:00
if.h Revert "ifnet/API: Move the IfAPI from if_var.h to if.h" 2023-01-12 21:29:19 -05:00
ifdi_if.m IfAPI: Explicitly include <net/if_private.h> in netstack 2023-01-31 15:02:16 -05:00
iflib_clone.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
iflib_private.h
iflib.c iflib: Further convert to use IfAPI accessors 2023-03-07 09:47:00 -05:00
iflib.h iflib: Introduce v2 of TX Queue Select Functionality 2022-10-17 14:59:55 -07:00
ifq.c IfAPI: Explicitly include <net/if_private.h> in netstack 2023-01-31 15:02:16 -05:00
ifq.h ifnet/API: Privatize the implementation of the drbr_* APIs 2023-01-31 15:02:14 -05:00
infiniband.h infiniband: Convert BPF handling for IfAPI 2023-03-14 15:51:32 -04:00
mp_ring.c
mp_ring.h net: whack __mips__ leftovers 2023-03-01 11:07:32 +00:00
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c ifnet/API: Move struct ifnet definition to a <net/if_private.h> 2023-01-24 14:36:30 -05:00
netisr.h
netmap_legacy.h
netmap_user.h
netmap_virt.h
netmap.h netmap(4): Fix a typo in a source code comment 2022-10-25 14:56:25 +02:00
paravirt.h
pfil.c pf: distinguish forwarding and output cases for pf_refragment6() 2023-03-16 10:59:04 +01:00
pfil.h pf: distinguish forwarding and output cases for pf_refragment6() 2023-03-16 10:59:04 +01:00
pfkeyv2.h ipsec: add support for CHACHA20POLY1305 2022-11-02 14:19:04 +01:00
pfvar.h pf: distinguish forwarding and output cases for pf_refragment6() 2023-03-16 10:59:04 +01:00
ppp_defs.h
radix.c net: constantify radix.c functions 2022-08-01 07:32:40 +00:00
radix.h net: constantify radix.c functions 2022-08-01 07:32:40 +00:00
rndis.h
route.c netlink: add netlink KPI to the kernel by default 2023-03-27 13:55:44 +00:00
route.h netlink: add rtsock-compatible header to use with netlink snl(3). 2023-03-09 14:37:42 +00:00
rss_config.c
rss_config.h
rtsock.c routing: add public rt_is_exportable() version to check if 2023-03-26 08:24:27 +00:00
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c vnet: Make vnet_sys[un]init() static 2023-02-22 00:22:23 +08:00
vnet.h vnet: Make vnet_sys[un]init() static 2023-02-22 00:22:23 +08:00