DHCP Hackaton summary

Tomek Mrugalski tomasz at isc.org
Wed Sep 24 12:27:47 UTC 2014


On 22.09.2014 15:50, Tomek Mrugalski wrote:
> Here's the DHCP Hackaton summary. These were the discussions that I
> participated in. Couple times several things were happening in parallel,
> so I'll let others to fill in the blanks.
Oh, I forgot about two interesting topics that were discussed.

First, Dominik mentioned an interesting feature that was recently added
to Linux kernel. It is apparently possible for multiple processes to
bind to the same address/port. It works similar to REUSE_ADDR, but only
one process gets the packet, not all of them. If this is indeed working
as expected, we could start doing multi-process experiments much sooner
that we initially thought.

Another discussion was about raw sockets in DHCPv4. Our implementation
is working, but raw sockets are cumbersome to use. There are complains
raised already. One user was displeased that iptables are not working.
Indeed, they can't as raw sockets essentially bypass the kernel stack.
This is a limitation (or rather a property) of raw sockets and not
something we could fix in the code.

Also, two possible alternatives were mentioned: libraries that offer
more or less a user-land IP stack. The first one is called DPDK and is
backed by Intel. The other one is called netmap. Both are used for high
performance networking. Netmap webpage claims ability to handle wire
speed of a 10G NIC. That's almost 15 millions of packets per seconds. Yikes!

It is unclear how big the dependency would be. If we ever decide to add
support for one (or both) of those libraries, it will have to be an
optional dependency.

Links:
http://dpdk.org/
http://info.iet.unipi.it/~luigi/netmap/

On a related note, we may want to add support for plain UDP sockets in
DHCPv4. That would work great for users who receive only relayed traffic
and want to use iptables. In fact, the code is already there, we just
need a knob to switch between raw sockets and UDP.

Tomek




More information about the kea-dev mailing list