]> git.baikalelectronics.ru Git - kernel.git/commit
soreuseport: UDP/IPv6 implementation
authorTom Herbert <therbert@google.com>
Tue, 22 Jan 2013 09:50:44 +0000 (09:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Jan 2013 18:44:01 +0000 (13:44 -0500)
commit8c9fc85c84df41280ec37a5d3b8a5f82dbf28f22
tree8769b30ecfc83acceb5c0095e21db371efad8b61
parenta6697c113afc6954bab7e0a5cd5244825a78c56f
soreuseport: UDP/IPv6 implementation

Motivation for soreuseport would be something like a DNS server.  An
alternative would be to recv on the same socket from multiple threads.
As in the case of TCP, the load across these threads tends to be
disproportionate and we also see a lot of contection on the socket lock.
Note that SO_REUSEADDR already allows multiple UDP sockets to bind to
the same port, however there is no provision to prevent hijacking and
nothing to distribute packets across all the sockets sharing the same
bound port.  This patch does not change the semantics of SO_REUSEADDR,
but provides usable functionality of it for unicast.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/udp.c