]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commit
ipv6: add IPV6_RECVFRAGSIZE cmsg
authorWillem de Bruijn <willemb@google.com>
Wed, 2 Nov 2016 15:02:17 +0000 (11:02 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Nov 2016 19:41:11 +0000 (15:41 -0400)
commit0cc0aa614b4c24b21b2492c0a1753035ee8c6edb
tree848076fe75ed2503f9ef9b479cefb2317ea18682
parent70ecc24841326396a827deb55c3fefac582a729d
ipv6: add IPV6_RECVFRAGSIZE cmsg

When reading a datagram or raw packet that arrived fragmented, expose
the maximum fragment size if recorded to allow applications to
estimate receive path MTU.

At this point, the field is only recorded when ipv6 connection
tracking is enabled. A follow-up patch will record this field also
in the ipv6 input path.

Tested using the test for IP_RECVFRAGSIZE plus

  ip netns exec to ip addr add dev veth1 fc07::1/64
  ip netns exec from ip addr add dev veth0 fc07::2/64

  ip netns exec to ./recv_cmsg_recvfragsize -6 -u -p 6000 &
  ip netns exec from nc -q 1 -u fc07::1 6000 < payload

Both with and without enabling connection tracking

  ip6tables -A INPUT -m state --state NEW -p udp -j LOG

Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ipv6.h
include/uapi/linux/in6.h
net/ipv6/datagram.c
net/ipv6/ipv6_sockglue.c