diff options
| author | Kristof Provost <kp@FreeBSD.org> | 2023-03-12 17:34:42 +0000 |
|---|---|---|
| committer | Kristof Provost <kp@FreeBSD.org> | 2023-03-16 09:59:04 +0000 |
| commit | b52b61c0b6b1cb309461060f53cd5b7f5c3bb4ed (patch) | |
| tree | 4ed85b165574f54a58566122ea7dc59b60f85631 /sys/netinet6/ip6_forward.c | |
| parent | c91ae48a25edd426efc49ade14fb675e07a0f5ed (diff) | |
pf: distinguish forwarding and output cases for pf_refragment6()
Re-introduce PFIL_FWD, because pf's pf_refragment6() needs to know if
we're ip6_forward()-ing or ip6_output()-ing.
ip6_forward() relies on m->m_pkthdr.rcvif, at least for link-local
traffic (for in6_get_unicast_scopeid()). rcvif is not set for locally
generated traffic (e.g. from icmp6_reflect()), so we need to call the
correct output function.
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revisi: https://reviews.freebsd.org/D39061
Diffstat (limited to 'sys/netinet6/ip6_forward.c')
| -rw-r--r-- | sys/netinet6/ip6_forward.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet6/ip6_forward.c b/sys/netinet6/ip6_forward.c index 293fcd977344..c8f9079e0aa7 100644 --- a/sys/netinet6/ip6_forward.c +++ b/sys/netinet6/ip6_forward.c @@ -321,7 +321,7 @@ again: odst = ip6->ip6_dst; /* Run through list of hooks for forwarded packets. */ - if (pfil_mbuf_out(V_inet6_pfil_head, &m, nh->nh_ifp, + if (pfil_mbuf_fwd(V_inet6_pfil_head, &m, nh->nh_ifp, NULL) != PFIL_PASS) goto freecopy; ip6 = mtod(m, struct ip6_hdr *); |
