Riccardo Paolo Bestetti 8ff978b8b2 ipv4/raw: support binding to nonlocal addresses
Add support to inet v4 raw sockets for binding to nonlocal addresses
through the IP_FREEBIND and IP_TRANSPARENT socket options, as well as
the ipv4.ip_nonlocal_bind kernel parameter.

Add helper function to inet_sock.h to check for bind address validity on
the base of the address type and whether nonlocal address are enabled
for the socket via any of the sockopts/sysctl, deduplicating checks in
ipv4/ping.c, ipv4/af_inet.c, ipv6/af_inet6.c (for mapped v4->v6
addresses), and ipv4/raw.c.

Add test cases with IP[V6]_FREEBIND verifying that both v4 and v6 raw
sockets support binding to nonlocal addresses after the change. Add
necessary support for the test cases to nettest.

Signed-off-by: Riccardo Paolo Bestetti <pbl@bestov.io>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20211117090010.125393-1-pbl@bestov.io
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-11-17 20:21:52 -08:00
..
2021-11-04 21:04:25 +09:00
2021-10-13 09:40:46 -07:00
2021-10-24 13:59:45 +01:00
2021-10-13 09:40:45 -07:00
2021-06-30 15:51:09 -07:00
2021-06-29 11:28:21 -07:00
2021-10-13 09:40:46 -07:00
2021-11-16 19:07:54 -08:00
2021-10-13 09:40:45 -07:00
2021-10-13 09:40:45 -07:00
2021-11-02 06:20:58 -07:00
2021-07-29 15:06:49 +01:00
2021-08-31 16:43:06 -07:00