• Tom Herbert's avatar
    soreuseport: UDP/IPv4 implementation · ba418fa3
    Tom Herbert authored
    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: default avatarTom Herbert <therbert@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ba418fa3
udp.c 58.6 KB