Hi,

On Mon, Jul 17, 2017 at 11:34:21AM -0700, Jerry Scharf wrote:
> The only thing I know that uses DPDK is ostineto, a network traffic
> generator tool. I think it is going to be a while before any of this gets
> integrated into the kernel for general networking. My understanding is that
> this is for people who really want to squeeze all they can out of a 10/40G
> interface.

We do use DPDK at haproxy technologies for our traffic generation tools.
But while it's useful to process packets, it really is not when you have
to deal with userland code requiring a full-fledged TCP stack.

A DPDK-based TCP stack would have to be completely callback-oriented,
which is a very different way to deal with events than what is done with
syscalls. While this model would provide a larger scalability, it also
comes with some difficulties when you have to deal with some inevitable
locking for example. It also doesn't make it as easy to batch processing
to benefit from the code being hot in the instruction cache. But nowadays
haproxy uses some callbacks so at least "only" the polling+fd+tcp+udp
parts would have to be rewritten. SSL would have to be dropped, just like
UNIX sockets. And we wouldn't benefit from some of the goodies we currently
have in the stacks provided by the operating systems, like delayed ACKs,
fastopen and so on.

The real good stuff about DPDK is that it allows to build multi-10/100G
switches and routers from affordable hardware when you know exactly what
you want to achieve. You must not have to use high throughput between the
system's stack and the devices however. This is perfect to route traffic
between VMs for example.

Willy

Reply via email to