Aggregating many ports into one for tcpdump server.

Robert Watson rwatson at FreeBSD.org
Wed Dec 5 01:50:49 PST 2007


On Wed, 5 Dec 2007, Robert Watson wrote:

> On Wed, 5 Dec 2007, Vlad GALU wrote:
>
>> I would like to try the aforementioned patches too. Can you please point me 
>> to a link?
>
> You can download our experimental tarball from here:
>
> http://www.watson.org/~robert/freebsd/20071103-zcopybpf.tgz
>
> You can find a BSDCan quick talk on the topic here:
>
> http://www.watson.org/~robert/freebsd/2007bsdcan/20070517-devsummit-zerocopybpf.pdf
>
> I've had several reports of significantly improved packet capture rates at 
> high speeds with it, but it's not yet in the tree because we feel it needs 
> more evaluation and review.  I hope to ship some form of zero-copy BPF 
> buffer support in FreeBSD 8, and possibly even MFC it.  Any feedback you 
> might have would be most helpful.

Having sent you the patch, I should have let you know that you'll need to:

- Add options BPF_ZEROCOPY to your kernel configuration to enable the
   zero-copy buffering mode.

- Make sure the kernel and libpcap are rebuild following the application of
   the patch and dropping in the tarball.

- setenv BPF_ZERO_COPY before running tcpdump or other BPF-based tools to
   enable the zero-copy buffer mode.

The patch includes both kernel changes (abstract the buffer model, add a new 
buffer model) and user space changes (updated libpcap to speak the new model, 
selected right now with the environmental variable).  Presumably if merged, 
zero-copy BPF buffers would be used by default via libpcap if present in the 
kernel, but right now this is all for evaluation purposes.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-net mailing list