diff options
author | sam <sam@FreeBSD.org> | 2003-12-28 03:56:00 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-12-28 03:56:00 +0000 |
commit | c165a87f8dfc070bceb68d9c3ff183ec2135e060 (patch) | |
tree | f663da0db11fcecb5ff2d3e93732492fb4d7bd29 /sys/net/if_stf.c | |
parent | 853a4ae85d691a2f3500efc16c2eab14e3c117b0 (diff) | |
download | FreeBSD-src-c165a87f8dfc070bceb68d9c3ff183ec2135e060.zip FreeBSD-src-c165a87f8dfc070bceb68d9c3ff183ec2135e060.tar.gz |
o eliminate widespread on-stack mbuf use for bpf by introducing
a new bpf_mtap2 routine that does the right thing for an mbuf
and a variable-length chunk of data that should be prepended.
o while we're sweeping the drivers, use u_int32_t uniformly when
when prepending the address family (several places were assuming
sizeof(int) was 4)
o return M_ASSERTVALID to BPF_MTAP* now that all stack-allocated
mbufs have been eliminated; this may better be moved to the bpf
routines
Reviewed by: arch@ and several others
Diffstat (limited to 'sys/net/if_stf.c')
-rw-r--r-- | sys/net/if_stf.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index 76b92ec..88214f9 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -430,17 +430,17 @@ stf_output(ifp, m, dst, rt) * will only read from the mbuf (i.e., it won't * try to free it or keep a pointer a to it). */ - struct mbuf m0; u_int32_t af = AF_INET6; +#ifdef HAVE_OLD_BPF + struct mbuf m0; m0.m_next = m; m0.m_len = 4; m0.m_data = (char *)⁡ -#ifdef HAVE_OLD_BPF BPF_MTAP(ifp, &m0); #else - bpf_mtap(ifp->if_bpf, &m0); + bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m); #endif } #endif /*NBPFILTER > 0*/ @@ -685,17 +685,17 @@ in_stf_input(m, off) * will only read from the mbuf (i.e., it won't * try to free it or keep a pointer a to it). */ - struct mbuf m0; u_int32_t af = AF_INET6; +#ifdef HAVE_OLD_BPF + struct mbuf m0; m0.m_next = m; m0.m_len = 4; m0.m_data = (char *)⁡ -#ifdef HAVE_OLD_BPF BPF_MTAP(ifp, &m0); #else - bpf_mtap(ifp->if_bpf, &m0); + bpf_mtap2(ifp->if_bpf, &af, sizeof(ah), m); #endif } |