Merge branch 'mptcp-add-REUSEADDR-REUSEPORT-V6ONLY-setsockopt-support'
authorDavid S. Miller <davem@davemloft.net>
Sun, 5 Jul 2020 00:56:22 +0000 (17:56 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 5 Jul 2020 00:56:22 +0000 (17:56 -0700)
commitbdd2ed272151d89f8dc81a5a4046e3f8273b970d
treea301f522c1a2dbe95775508b036e31dad3e26e76
parentf551e2fdaf81b7b561bb5dc590da13f21c4c1295
parentc9b95a13598750e2840d99322f844ec0ff9e6246
Merge branch 'mptcp-add-REUSEADDR-REUSEPORT-V6ONLY-setsockopt-support'

Florian Westphal says:

====================
mptcp: add REUSEADDR/REUSEPORT/V6ONLY setsockopt support

restarting an mptcp-patched sshd yields following error:

  sshd: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
  sshd: error: setsockopt IPV6_V6ONLY: Operation not supported
  sshd: error: Bind to port 22 on :: failed: Address already in use.
  sshd: fatal: Cannot bind any address.

This series adds support for the needed setsockopts:

First patch skips the generic SOL_SOCKET handler for MPTCP:
in mptcp case, the setsockopt needs to alter the tcp socket, not the mptcp
parent socket.

Second patch adds minimal SOL_SOCKET support: REUSEPORT and REUSEADDR.
Rest is still handled by the generic SOL_SOCKET code.

Last patch adds IPV6ONLY support.  This makes ipv6 work for openssh:
It creates two listening sockets, before this patch, binding the ipv6
socket will fail because the port is already bound by the ipv4 one.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>