freebsd-dev/sys/netinet6
Gleb Smirnoff 61f7427f02 protosw: cleanup protocols that existed merely to provide pr_input
Since 4.4BSD the protosw was used to implement socket types created
by socket(2) syscall and at the same to demultiplex incoming IPv4
datagrams (later copied to IPv6).  This story ended with 78b1fc05b2.

These entries (e.g. IPPROTO_ICMP) in inetsw that were added to catch
packets in ip_input(), they would also be returned by pffindproto()
if user says socket(AF_INET, SOCK_RAW, IPPROTO_ICMP).  Thus, for raw
sockets to work correctly, all the entries were pointing at raw_usrreq
differentiating only in the value of pr_protocol.

With 78b1fc05b2 all these entries are no longer needed, as ip_protox
is independent of protosw.  Any socket syscall requesting SOCK_RAW type
would end up with rip_protosw.  And this protosw has its pr_protocol
set to 0, allowing to mark socket with any protocol.

For IPv6 raw socket the change required two small fixes:
o Validate user provided protocol value
o Always use protocol number stored in inp in rip6_attach, instead
  of protosw value, which is now always 0.

Differential revision:	https://reviews.freebsd.org/D36380
2022-08-30 15:09:21 -07:00
..
dest6.c
frag6.c frag6: use callout(9) directly instead of pr_slowtimo 2022-08-17 11:50:31 -07:00
icmp6.c mld6: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
icmp6.h
in6_cksum.c
in6_fib_algo.c
in6_fib.c routing: refactor private KPI 2022-08-01 10:02:12 +00:00
in6_fib.h
in6_gif.c
in6_ifattach.c nd6: Mark several callouts as MPSAFE 2021-08-09 13:27:52 -04:00
in6_ifattach.h
in6_jail.c sysent: Get rid of bogus sys/sysent.h include. 2022-05-28 20:52:17 +03:00
in6_mcast.c divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
in6_pcb.c in_pcb: use jenkins hash over the entire IPv6 (or IPv4) address 2021-12-26 10:47:28 -08:00
in6_pcb.h Revert "wpa: Import wpa_supplicant/hostapd commit 14ab4a816" 2021-12-02 14:45:04 -08:00
in6_proto.c protosw: cleanup protocols that existed merely to provide pr_input 2022-08-30 15:09:21 -07:00
in6_rmx.c routing: add nhop(9) kpi. 2022-08-01 08:52:26 +00:00
in6_rss.c Revert "wpa: Import wpa_supplicant/hostapd commit 14ab4a816" 2021-12-02 14:45:04 -08:00
in6_rss.h
in6_src.c netinet6: simplify selectroute() 2022-07-08 11:27:16 +00:00
in6_var.h netinet6: fix SIOCSPFXFLUSH_IN6 by skipping manually-configured prefixes 2022-08-24 13:59:13 +00:00
in6.c Revert "routing: install prefix and loopback routes using new nhop-based KPI." 2022-08-29 16:20:42 +00:00
in6.h protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
ip6_ecn.h
ip6_fastfwd.c
ip6_forward.c
ip6_gre.c udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
ip6_id.c
ip6_input.c ip6_input: explicitly include <sys/eventhandler.h> 2022-08-17 14:54:46 -07:00
ip6_mroute.c ip6_mroute: Mark a variable only used in a debug trace as unused. 2022-04-06 16:45:29 -07:00
ip6_mroute.h
ip6_output.c netinet6: fix interface handling for loopback traffic 2022-07-10 12:47:47 +00:00
ip6_var.h frag6: use callout(9) directly instead of pr_slowtimo 2022-08-17 11:50:31 -07:00
ip6.h
ip6protosw.h
ip_fw_nat64.h
ip_fw_nptv6.h
mld6_var.h mld6: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
mld6.c mld6: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
mld6.h
nd6_nbr.c netinet6: fix ndp proxying 2022-05-30 10:53:33 +00:00
nd6_rtr.c Revert "routing: install prefix and loopback routes using new nhop-based KPI." 2022-08-29 16:20:42 +00:00
nd6.c routing: constantify @rc in rib_decompose_notification(). 2022-08-29 18:12:24 +00:00
nd6.h netinet6: fix SIOCSPFXFLUSH_IN6 by skipping manually-configured prefixes 2022-08-24 13:59:13 +00:00
pim6_var.h
pim6.h
raw_ip6.c protosw: cleanup protocols that existed merely to provide pr_input 2022-08-30 15:09:21 -07:00
raw_ip6.h
route6.c
scope6_var.h
scope6.c ifnet_byindex() actually requires network epoch 2021-12-06 09:32:31 -08:00
sctp6_usrreq.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
sctp6_var.h protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
send.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
send.h
tcp6_var.h protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
udp6_usrreq.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
udp6_var.h