freebsd-src/sys
Gleb Smirnoff 8624f4347e divert: declare PF_DIVERT domain and stop abusing PF_INET
The divert(4) is not a protocol of IPv4.  It is a socket to
intercept packets from ipfw(4) to userland and re-inject them
back.  It can divert and re-inject IPv4 and IPv6 packets today,
but potentially it is not limited to these two protocols.  The
IPPROTO_DIVERT does not belong to known IP protocols, it
doesn't even fit into u_char.  I guess, the implementation of
divert(4) was done the way it is done basically because it was
easier to do it this way, back when protocols for sockets were
intertwined with IP protocols and domains were statically
compiled in.

Moving divert(4) out of inetsw accomplished two important things:

1) IPDIVERT is getting much closer to be not dependent on INET.
   This will be finalized in following changes.
2) Now divert socket no longer aliases with raw IPv4 socket.
   Domain/proto selection code won't need a hack for SOCK_RAW and
   multiple entries in inetsw implementing different flavors of
   raw socket can merge into one without requirement of raw IPv4
   being the last member of dom_protosw.

Differential revision:	https://reviews.freebsd.org/D36379
2022-08-30 15:09:21 -07:00
..
amd64 amd64: update comment for casueword/casueword32, mentioning return value 1 2022-08-26 02:41:48 +03:00
arm Fix the arm generic timer on 32 bit 2022-08-25 13:17:11 +01:00
arm64 Add an IDC only arm64 icache sync function 2022-08-25 12:17:28 +01:00
bsm
cam
cddl
compat LinuxKPI 802.11: change type of bssid in struct ieee80211_bss_conf 2022-08-27 14:54:02 +00:00
conf NOTES: Update the comment for MCLSHIFT 2022-08-24 19:59:32 -04:00
contrib zfs: merge openzfs/zfs@a582d5299 2022-08-26 00:58:56 +02:00
crypto
ddb
dev ucom(4): Make sure the open routine is executed synchronously. 2022-08-30 16:19:58 +02:00
dts
fs nfscl: Fix setup of Sequence when all slots marked bad 2022-08-28 14:36:45 -07:00
gdb
geom
gnu
i386 x86: improve machdep.uprintf_signal 2022-08-24 22:12:45 +03:00
isa
kern divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
kgssapi
libkern
modules zfs: merge openzfs/zfs@a582d5299 2022-08-26 00:58:56 +02:00
net domains: use queue(9) SLIST for linked list of domains 2022-08-29 19:15:01 -07:00
net80211 mbufs: isolate max_linkhdr and max_protohdr handling in the mbuf code 2022-08-29 19:14:25 -07:00
netgraph divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
netinet divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
netinet6 divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
netipsec protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
netpfil pf: do not block new Ethernet rules for in-progress transactions 2022-08-27 22:25:01 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed ibcore: Add support for RDMA/RoCE using VLAN(4) devices. 2022-08-22 10:04:26 +02:00
opencrypto
powerpc Define _NPCM and the last PC_FREEn constant in terms of _NPCPV. 2022-08-23 13:31:02 -07:00
riscv Define _NPCM and the last PC_FREEn constant in terms of _NPCPV. 2022-08-23 13:31:02 -07:00
rpc nfsd: Allow multiple instances of rpc.tlsservd 2022-08-22 13:54:24 -07:00
security protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
sys divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
teken
tests
tools sound(4): Fix order of parameters for custom equalizer band pass filter. 2022-08-22 10:04:26 +02:00
ufs Updates to UFS/FFS superblock integrity checks when reading a superblock. 2022-08-28 23:14:35 -07:00
vm protosw: retire pr_drain and use EVENTHANDLER(9) directly 2022-08-17 11:50:31 -07:00
x86
xdr
xen
Makefile