selftests: net: Add SO_REUSEADDR test to check if 4-tuples are fully utilized.
authorKuniyuki Iwashima <kuniyu@amazon.co.jp>
Tue, 10 Mar 2020 08:05:27 +0000 (17:05 +0900)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Mar 2020 19:08:09 +0000 (12:08 -0700)
commit7f204a7de8b08542aca3c1daa96ed20e1177ba87
tree46fadd2182ac940b8f992ca32d32eb017eca43b4
parent335759211a327d61244580070d74f55561c35895
selftests: net: Add SO_REUSEADDR test to check if 4-tuples are fully utilized.

This commit adds a test to check if we can fully utilize 4-tuples for
connect() when all ephemeral ports are exhausted.

The test program changes the local port range to use only one port and binds
two sockets with or without SO_REUSEADDR and SO_REUSEPORT, and with the same
EUID or with different EUIDs, then do listen().

We should be able to bind only one socket having both SO_REUSEADDR and
SO_REUSEPORT per EUID, which restriction is to prevent unintentional
listen().

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/.gitignore
tools/testing/selftests/net/Makefile
tools/testing/selftests/net/reuseaddr_ports_exhausted.c [new file with mode: 0644]
tools/testing/selftests/net/reuseaddr_ports_exhausted.sh [new file with mode: 0755]