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

Allow multiple UDP sockets to bind to the same port.

Motivation 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 socketlock.
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/ipv4/udp.c