freebsd-src/sys/netgraph
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
..
atm netgraph(3): Fix a typo in a source code comment 2022-03-28 19:31:50 +02:00
bluetooth protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
netflow ng_netflow: Move various variables under INET || INET6. 2022-04-13 16:08:21 -07:00
netgraph.h netgraph: Remove the rethook parameter from NG_NODE_FOREACH_HOOK. 2022-04-12 14:58:59 -07:00
ng_async.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_async.h
ng_atmllc.c
ng_atmllc.h
ng_base.c Adjust ng_{name,ID}_rehash() definitions to avoid clang 15 warnings 2022-07-25 20:02:31 +02:00
ng_bpf.c netgraph: Remove the rethook parameter from NG_NODE_FOREACH_HOOK. 2022-04-12 14:58:59 -07:00
ng_bpf.h
ng_bridge.c netgraph: Remove the rethook parameter from NG_NODE_FOREACH_HOOK. 2022-04-12 14:58:59 -07:00
ng_bridge.h netgraph/ng_bridge: learn MACs via control message 2021-05-04 22:14:59 +02:00
ng_car.c Fix packet cbs/ebs conversion. 2021-05-19 11:04:08 -04:00
ng_car.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00
ng_checksum.c netgraph/ng_checksum: Fix double free error 2021-05-16 19:39:51 +02:00
ng_checksum.h
ng_cisco.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_cisco.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_device.c Add ETHER_ALIGN support to ng_device(4). 2021-11-14 13:37:41 +01:00
ng_device.h Add ETHER_ALIGN support to ng_device(4). 2021-11-14 13:37:41 +01:00
ng_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_echo.h
ng_eiface.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_eiface.h
ng_etf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_etf.h
ng_ether.c ng_ether: Create netgraph nodes for bridge interfaces. 2021-09-26 01:24:33 +09:00
ng_ether.h
ng_ether_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ether_echo.h
ng_frame_relay.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_frame_relay.h
ng_gif.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_gif.h
ng_gif_demux.c
ng_gif_demux.h
ng_hole.c
ng_hole.h
ng_hub.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_hub.h
ng_iface.c routing: Allow using IPv6 next-hops for IPv4 routes (RFC 5549). 2021-08-22 22:56:08 +00:00
ng_iface.h ng_iface(4): Remove unsupported protocols. 2020-07-31 14:08:54 +00:00
ng_ip_input.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
ng_ip_input.h
ng_ipfw.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ipfw.h
ng_ksocket.c divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
ng_ksocket.h
ng_l2tp.c netgraph: Remove the rethook parameter from NG_NODE_FOREACH_HOOK. 2022-04-12 14:58:59 -07:00
ng_l2tp.h
ng_lmi.c ng_lmi: Move all of highest_dlci under #if 0. 2022-04-07 17:01:27 -07:00
ng_lmi.h
ng_macfilter.c netgraph: macfilter: small fixes 2020-12-09 15:28:56 +00:00
ng_macfilter.h New Netgraph module ng_macfilter: 2020-12-08 15:09:42 +00:00
ng_message.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_nat.c netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_nat.h netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_one2many.c netgraph/ng_one2main: Clarification in comments about copy mode 2021-01-18 14:10:34 +01:00
ng_one2many.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_parse.c ng_parse: IP address parsing in netgraph eating too many characters 2021-05-18 22:36:28 +02:00
ng_parse.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.h
ng_pipe.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pipe.h Increase BER to PER lookup table size in an attempt to mitigate panics 2020-08-18 22:46:46 +00:00
ng_ppp.c ng_ppp: Remove unused variable. 2022-04-07 17:01:27 -07:00
ng_ppp.h
ng_pppoe.c ng_pppoe: introduce new sysctl net.graph.pppoe.lcp_pcp 2022-05-02 21:57:12 +07:00
ng_pppoe.h ng_pppoe(4): Fix a typo in a source code comment 2022-04-02 13:54:36 +02:00
ng_pptpgre.c ng_pptpgre(4): Fix a typo in a source code comment 2021-11-03 17:15:59 +01:00
ng_pptpgre.h Make ng_pptpgre(8) netgraph node be able to restore order for packets 2018-11-04 19:10:44 +00:00
ng_pred1.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pred1.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.h
ng_sample.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sample.h
ng_socket.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
ng_socket.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_socketvar.h
ng_source.c netgraph/ng_source: Switch queuing framework 2021-01-29 12:34:53 +01:00
ng_source.h
ng_split.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_split.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tag.c ng_tag: Move totlen fully under #ifdef NG_TAG_DEBUG. 2022-04-07 17:01:27 -07:00
ng_tag.h
ng_tcpmss.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tcpmss.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tee.c
ng_tee.h
ng_tty.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tty.h
ng_UI.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_UI.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.h
ng_vlan.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vlan.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vlan_rotate.c netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
ng_vlan_rotate.h netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
NOTES
qos.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00