BPF packet pagesize limit

Catalin Salgau csalgau at users.sourceforge.net
Sun Nov 19 18:56:45 UTC 2017


Hello,

I'm trying to address the limitation in (upstream) net/vblade that was
brought up in
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205164
This is related to writes larger than hw.pagesize but smaller than the
configured MTU with BPF.
I traced this to sys/net/bpf.c where calls to bpfwrite() will use
bpf_movein() which in turn uses m_get2() to allocate a single mbuf. This
will fail if the requested mbuf size is larger than MJUMPAGESIZE
(defined as PAGE_SIZE on x86). I believe this should use m_getm2() and
populate multiple mbufs.
Code in NetBSD explicitly notes that they omit mbuf chaining, but this
is not documentated behaviour in the man page.

Any chance of having this fixed in a supported release, or getting a
usable/documented workaround?

Thanks.


More information about the freebsd-net mailing list