Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Mar 2010 19:20:11 +0300
From:      Vasily Kirin <vasily.kirin@gmail.com>
To:        freebsd-net@freebsd.org
Subject:   zero copy HTTP server
Message-ID:  <a97f34a1003170920y1129baa3wf781bca9df8c04f5@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi.

As I can read here:
http://www.freebsd.org/cgi/man.cgi?query=zero_copy&apropos=0&sektion=0&manpath=FreeBSD+8.0-RELEASE&format=html(man
9 zero_copy)
FreeBSD can deliver received TCP data from the kernel to userspace without
any copy ("DMAed from the NIC to a buffer that will then be given to the
user" - from `man 9 zero_copy`)
Further, TCP content cannot be copied to continuous buffer without NIC with
"header splitting" feature. (Achieving page aligned payloads requires a NIC
that can split an incoming packet into multiple buffers.  It also generally
requires some sort of intelligence on the NIC to make sure that the payload
starts in its own buffer. This is called ``header splitting``''. - from `man
9 zero_copy`)
I've found several Intel cards with this feature, but still can't find any
example or using this technique.
Is there any example or comprehensive manual of receiving TCP stream
in continuous buffer and passing this buffer to userspace without copy?

Best Regards,
Vasily



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a97f34a1003170920y1129baa3wf781bca9df8c04f5>