Files
kernel/include/uapi/linux
Maciej Żenczykowski 84e14fe353 net-ipv6: add support for sockopt(SOL_IPV6, IPV6_FREEBIND)
So far we've been relying on sockopt(SOL_IP, IP_FREEBIND) being usable
even on IPv6 sockets.

However, it turns out it is perfectly reasonable to want to set freebind
on an AF_INET6 SOCK_RAW socket - but there is no way to set any SOL_IP
socket option on such a socket (they're all blindly errored out).

One use case for this is to allow spoofing src ip on a raw socket
via sendmsg cmsg.

Tested:
  built, and booted
  # python
  >>> import socket
  >>> SOL_IP = socket.SOL_IP
  >>> SOL_IPV6 = socket.IPPROTO_IPV6
  >>> IP_FREEBIND = 15
  >>> IPV6_FREEBIND = 78
  >>> s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, 0)
  >>> s.getsockopt(SOL_IP, IP_FREEBIND)
  0
  >>> s.getsockopt(SOL_IPV6, IPV6_FREEBIND)
  0
  >>> s.setsockopt(SOL_IPV6, IPV6_FREEBIND, 1)
  >>> s.getsockopt(SOL_IP, IP_FREEBIND)
  1
  >>> s.getsockopt(SOL_IPV6, IPV6_FREEBIND)
  1

Signed-off-by: Maciej Żenczykowski <maze@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-09-30 05:30:52 +01:00
..
2017-08-31 17:32:38 -04:00
2016-10-18 10:05:42 -06:00
2017-09-29 06:17:05 +01:00
2017-08-15 09:02:09 -07:00
2017-08-20 08:14:03 -04:00
2017-08-31 14:42:19 -07:00
2017-08-03 21:37:29 -07:00
2017-08-31 17:32:38 -04:00
2016-10-01 07:32:32 +02:00
2017-03-25 20:11:19 -07:00
2017-02-03 15:16:45 -05:00
2016-11-03 15:41:11 -04:00
2016-06-27 16:31:25 +01:00
2017-07-06 16:24:30 -07:00
2017-08-08 06:03:15 -04:00
2017-01-17 14:38:43 -05:00
2017-05-30 08:20:25 -06:00
2017-02-20 11:13:37 -05:00
2016-05-17 17:14:21 -06:00
2017-09-07 13:24:16 -05:00
2016-09-27 21:52:00 -04:00
2016-09-27 21:52:00 -04:00
2017-07-01 15:26:11 -07:00
2017-01-09 16:07:38 -05:00
2017-08-04 10:30:27 +02:00
2017-01-10 18:31:55 -08:00
2017-06-15 12:12:40 -04:00
2017-06-05 16:58:59 +02:00
2017-03-31 12:55:06 +02:00
2016-12-16 00:13:38 +02:00
2016-12-16 00:13:32 +02:00
2017-04-24 12:35:56 -04:00
2016-04-30 09:26:55 -07:00