freebsd-dev/sys
Gleb Smirnoff 78b1fc05b2 protosw: separate pr_input and pr_ctlinput out of protosw
The protosw KPI historically has implemented two quite orthogonal
things: protocols that implement a certain kind of socket, and
protocols that are IPv4/IPv6 protocol.  These two things do not
make one-to-one correspondence. The pr_input and pr_ctlinput methods
were utilized only in IP protocols.  This strange duality required
IP protocols that doesn't have a socket to declare protosw, e.g.
carp(4).  On the other hand developers of socket protocols thought
that they need to define pr_input/pr_ctlinput always, which lead to
strange dead code, e.g. div_input() or sdp_ctlinput().

With this change pr_input and pr_ctlinput as part of protosw disappear
and IPv4/IPv6 get their private single level protocol switch table
ip_protox[] and ip6_protox[] respectively, pointing at array of
ipproto_input_t functions.  The pr_ctlinput that was used for
control input coming from the network (ICMP, ICMPv6) is now represented
by ip_ctlprotox[] and ip6_ctlprotox[].

ipproto_register() becomes the only official way to register in the
table.  Those protocols that were always static and unlikely anybody
is interested in making them loadable, are now registered by ip_init(),
ip6_init().  An IP protocol that considers itself unloadable shall
register itself within its own private SYSINIT().

Reviewed by:		tuexen, melifaro
Differential revision:	https://reviews.freebsd.org/D36157
2022-08-17 11:50:31 -07:00
..
amd64 Document implicit dependencies of the mlx5(4) & friends. 2022-08-11 16:33:09 -07:00
arm Adjust function definition in arm's mv_common.c to avoid clang 15 warning 2022-08-15 20:48:33 +02:00
arm64 Disable promotion on pcpu memory on arm64 2022-08-16 15:41:24 +01:00
bsm
cam Delay GEOM disk_create() until CAM periph probe completes. 2022-07-14 16:17:36 -04:00
cddl Adjust function definition in riscv's dtrace_subr.c to avoid clang 15 warning 2022-08-14 21:27:34 +02:00
compat elf_note_prpsinfo: handle more failures from proc_getargv() 2022-08-09 15:44:45 -04:00
conf cxgbe(4): Update firmwares to 1.27.0.0. 2022-08-16 01:06:32 -07:00
contrib iwlwifi: add FreeBSD specific debugging 2022-08-17 16:11:47 +00:00
crypto skein: Update guard define check 2022-07-24 16:53:35 -06:00
ddb Adjust db_flush_line() definition to avoid clang 15 warning 2022-07-19 20:37:15 +02:00
dev ixgbe: fix software vlan handling 2022-08-17 16:39:18 +02:00
dts
fs nullfs(5): Fix a typo in a source code comment 2022-08-07 14:04:53 +02:00
gdb ddb: use _FLAGS command macros where appropriate 2022-07-05 11:56:55 -03:00
geom Adjust g_waitidle() visibility and definition 2022-08-02 21:11:10 +03:00
gnu
i386 x86: remove MP_WATCHDOG 2022-08-11 21:35:32 +00:00
isa Adjust function definition in isa's pnp.c to avoid clang 15 warning 2022-07-27 21:13:59 +02:00
kern protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
kgssapi
libkern
modules cxgbe(4): Update firmwares to 1.27.0.0. 2022-08-16 01:06:32 -07:00
net routing: G/C rt_exportinfo declaration 2022-08-15 20:38:31 +00:00
net80211 net80211: add an IEEE80211_IS_PROTECTED() macro 2022-08-14 09:48:06 -07:00
netgraph protosw: change prototype for pr_control 2022-08-12 12:08:18 -07:00
netinet protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
netinet6 protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
netipsec protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
netpfil protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed sdp: garbage collect sdp_ctlinput 2022-08-16 12:38:15 -07:00
opencrypto opencrypto: mark INVARIANTS variables as __diagused 2022-08-10 15:35:29 -04:00
powerpc Adjust function definitions in mp_cpudep.c.c to avoid clang 15 warnings 2022-08-15 20:48:35 +02:00
riscv Adjust function definition in riscv's db_trace.c to avoid clang 15 warning 2022-08-15 20:48:35 +02:00
rpc Adjust authnone_create() definition to avoid clang 15 warning 2022-07-25 00:40:13 +02:00
security mac: cheaper check for mac_pipe_check_read 2022-08-17 14:21:25 +00:00
sys protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
teken
tests
tools firmware: Map '@' in filenames to '_' in symbols. 2022-06-14 10:50:51 -07:00
ufs Explicitly initialize rather than reading newly allocated UFS inodes. 2022-08-13 13:51:25 -07:00
vm Revert "vm: use atomic fetchadd in vm_page_sunbusy" 2022-08-17 16:24:14 +00:00
x86 lapic_init: Reduce LOOPS 2022-08-13 15:28:09 -07:00
xdr
xen xenbus: improve device tracking 2022-06-07 12:29:53 +02:00
Makefile