opnsense-src/sys/net
Zhenlei Huang f4744b8acb EtherIP: Fix passing the address family from if_bridge(4) to gif(4)
Given IPPROTO_IPV4, IPPROTO_IPV6 and IPPROTO_ETHERIP have different
protocol numbers, then it is perfect valid to tunnel IPv4, IPv6 and
Ethernet traffic over IPv[46] by the same interface. Since gif(4) has
already utilized the inbound csum_data field to carry address family,
also teach if_bridge(4) to do that, rather than checking if a gif(4)
interface is member of a if_bridge(4) interface.

Without this fix, tunnel IPv[46] over IPv[46] will not work when the
gif(4) interface is member of a if_bridge(4) interface, aka the EtherIP
setup, as the address family passed from gif_output() will be overwritten
with the wrong one AF_LINK by gif_transmit(), and end up with incorrectly
encapsulated packets.

PR:		227450
Reviewed by:	kp
Tested by:	meta
Fixes:		8a03087223 gif(4): Assert that gif_output() isn't called for EtherIP
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D51682
2025-08-08 18:17:51 +08:00
..
altq altq: Stop checking for failures from malloc(M_WAITOK) 2024-09-03 18:25:19 +08:00
route machine/stdarg.h -> sys/stdarg.h 2025-06-11 17:39:02 +01:00
bpf.c bpf: avoid panic on multiple readers 2025-04-09 09:39:01 +02:00
bpf.h bpf: Make bpf.h self-contained 2025-05-03 20:44:45 +00:00
bpf_buffer.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
bpf_buffer.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bpf_filter.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
bpf_jitter.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
bpf_jitter.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bpf_zerocopy.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
bpf_zerocopy.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bpfdesc.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
bridgestp.c bridge: store a bridge_iflist pointer in ifnet 2025-04-09 09:39:01 +02:00
bridgestp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
debugnet.c debugnet: Use precise types when accessing mbuf contents 2024-10-11 13:23:25 +00:00
debugnet.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
debugnet_inet.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
debugnet_int.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dlt.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
dummymbuf.c dummymbuf: add 'enlarge' 2025-01-17 17:00:08 +01:00
ethernet.h ethernet: Move the assertion of ether header sizes back into ethernet.h 2025-07-15 23:31:19 +08:00
firewire.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ieee8023ad_lacp.c machine/stdarg.h -> sys/stdarg.h 2025-06-11 17:39:02 +01:00
ieee8023ad_lacp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ieee_oui.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if.c if_vlan: add a prototype for vlan_input_p 2025-06-25 16:29:54 +01:00
if.h ifnet: Add handling for toggling IFF_ALLMULTI in ifhwioctl() 2024-09-06 16:58:44 +00:00
if_arp.h Support ARP for 802 networks 2024-04-23 12:30:53 -04:00
if_bridge.c EtherIP: Fix passing the address family from if_bridge(4) to gif(4) 2025-08-08 18:17:51 +08:00
if_bridgevar.h bridge: Allow VLAN protocol to be configured 2025-08-05 19:35:30 +01:00
if_clone.c if_clone: Use static initializers 2025-03-06 12:51:44 +08:00
if_clone.h if_clone: Use static initializers 2025-03-06 12:51:44 +08:00
if_dead.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
if_disc.c net: Remove unneeded NULL check for the allocated ifnet 2024-06-28 18:16:29 +08:00
if_dl.h link_addr: be more strict about address formats 2025-05-15 01:02:52 +01:00
if_edsc.c net: Remove unneeded NULL check for the allocated ifnet 2024-06-28 18:16:29 +08:00
if_enc.c if_enc(4): Use new KPI to create enc interface 2024-10-12 21:37:53 +08:00
if_enc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_epair.c Change the default of net.link.epair.ether_gen_addr 0 -> 1. 2025-08-06 13:07:14 +02:00
if_ethersubr.c ethernet: Move the assertion of ether header sizes back into ethernet.h 2025-07-15 23:31:19 +08:00
if_fwsubr.c if_firewire: Make firewire_broadcastaddr static const 2025-06-01 22:47:24 +08:00
if_gif.c EtherIP: Fix passing the address family from if_bridge(4) to gif(4) 2025-08-08 18:17:51 +08:00
if_gif.h if_gif(4): Support the NOCLAMP flag to change MTU handling for IPv6 2025-07-21 22:47:28 +09:00
if_gre.c bpf: Make BPF interop consistent with if_loop 2024-04-19 14:48:37 -04:00
if_gre.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
if_infiniband.c if_infininband: Support BPF write for broadcast frames 2025-02-23 16:13:09 -08:00
if_ipsec.c ipsec: allow it to work with unmapped mbufs 2025-01-13 21:29:32 +02:00
if_ipsec.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_lagg.c lagg: Fix if_hw_tsomax_update() not being called 2025-07-12 18:35:29 -04:00
if_lagg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_llatbl.c if_llatbl: Fix a typo in a KASSERT message 2024-01-20 21:00:22 +01:00
if_llatbl.h sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
if_llc.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
if_loop.c net: Remove unneeded NULL check for the allocated ifnet 2024-06-28 18:16:29 +08:00
if_me.c bpf: Make BPF interop consistent with if_loop 2024-04-19 14:48:37 -04:00
if_media.c sys: don't panic on ifm_status being NULL 2025-05-06 21:22:18 -07:00
if_media.h net: if_media fix syntax/build 2025-02-08 17:10:27 -07:00
if_mib.c sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_mib.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_ovpn.c if_ovpn: support IPv6 link-local addresses 2025-08-04 08:08:32 +02:00
if_ovpn.h if_ovpn: support floating clients 2025-07-28 16:36:54 +02:00
if_pflog.h pf: make log(matches) more useful 2025-02-21 09:11:03 +01:00
if_pfsync.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
if_private.h sys/net: Add IPSEC_OFFLOAD interface cap and methods structure 2024-07-12 06:29:32 +03:00
if_stf.c machine/stdarg.h -> sys/stdarg.h 2025-06-11 17:39:02 +01:00
if_stf.h if_stf: make if_stf.h self-contained 2021-12-17 12:38:34 +01:00
if_strings.h <net/if_strings.h>: Conditionally export table of bit names 2025-04-28 13:05:38 -04:00
if_tap.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
if_tun.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_tuntap.c if_tuntap: Try to fix device refcount bugs 2025-07-28 16:19:38 +00:00
if_types.h sys: add MBIM (mobile broadband interface module) interface type. 2025-01-20 23:39:17 +00:00
if_var.h send tags: add a status report method 2025-06-10 02:47:12 +03:00
if_vlan.c bridge: do not allow a bridge SVI in a bridge 2025-07-28 18:38:02 +01:00
if_vlan_var.h sys/net: move DOT1Q_VID_* constants to ethernet.h 2025-07-05 00:21:51 +01:00
if_vxlan.c if_vxlan(4): Prefer SYSCTL_INT over TUNABLE_INT 2025-01-27 23:54:43 +08:00
if_vxlan.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ifdi_if.m ifdi: fix signature mismatch for null_priv_ioctl 2025-02-25 09:21:51 -05:00
iflib.c iflib: don't pullup UDP payloads to the TCP header size 2025-08-07 10:55:16 -04:00
iflib.h iflib(4): Replace admin taskqueue group with per-interface taskqueues 2025-01-24 14:08:12 -07:00
ifq.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
ifq.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
infiniband.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mp_ring.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
mp_ring.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mppc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mppcc.c sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mppcd.c sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
netisr.c netisr: fix compilation without VIMAGE 2025-01-16 20:32:53 -08:00
netisr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
netisr_internal.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
netmap.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
netmap_legacy.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
netmap_user.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
netmap_virt.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
paravirt.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
pfil.c pfil: PFIL_PASS never frees the mbuf 2024-01-29 14:10:19 +01:00
pfil.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
pfkeyv2.h sys/pfkeyv2.h: define extensions for ipsec inline accel control 2024-07-12 06:29:31 +03:00
pflow.h pflow: show socket status in verbose mode 2024-01-25 17:37:51 +01:00
pfvar.h pf: also allocate ethernet anchors from a UMA zone 2025-08-06 00:27:15 +02:00
ppp_defs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
radix.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
radix.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
rndis.h net: Fix typo (triple S) 2023-12-27 20:24:32 -07:00
route.c net: route: convert routing statistics to a sysctl 2024-10-23 22:15:55 -05:00
route.h ipfw: migrate ipfw to 32-bit size rule numbers 2025-03-03 21:15:17 +03:00
rss_config.c sys: Remove $FreeBSD$: two-line .c pattern 2023-08-16 11:54:30 -06:00
rss_config.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rtsock.c socket: Move SO_SETFIB handling to protocol layers 2025-02-06 14:16:21 +00:00
sff8436.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sff8472.h net/sff8472.h: add double-include protection 2025-04-29 06:20:10 +03:00
slcompress.c tcp: extend the use of the th_flags accessor function 2024-11-29 09:48:23 +01:00
slcompress.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
toeplitz.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
toeplitz.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vnet.c machine/stdarg.h -> sys/stdarg.h 2025-06-11 17:39:02 +01:00
vnet.h vnet: remove unneeded backslash 2024-03-15 12:17:04 -07:00