ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier
authorMaciej Żenczykowski <maze@google.com>
Tue, 24 Mar 2020 01:10:19 +0000 (18:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Mar 2020 03:05:58 +0000 (20:05 -0700)
commitc24a77edc9a7ac9b5fea75407f197fe1469262f4
tree8eb2e401c256174c4243834655886428b18c150c
parenta47ab26b9e4857ae0d476c23ac88c7a20d8462b8
ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier

This is trivial since we already have support for the entirely
identical (from the kernel's point of view) RDNSS, DNSSL, etc. that
also contain opaque data that needs to be passed down to userspace
for further processing.

As specified in draft-ietf-6man-ra-pref64-09 (while it is still a draft,
it is purely waiting on the RFC Editor for cleanups and publishing):
  PREF64 option contains lifetime and a (up to) 96-bit IPv6 prefix.

The 8-bit identifier of the option type as assigned by the IANA is 38.

Since we lack DNS64/NAT64/CLAT support in kernel at the moment,
thus this option should also be passed on to userland.

See:
  https://tools.ietf.org/html/draft-ietf-6man-ra-pref64-09
  https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-parameters-5

Cc: Erik Kline <ek@google.com>
Cc: Jen Linkova <furry@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Michael Haro <mharo@google.com>
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Acked-By: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ndisc.h
net/ipv6/ndisc.c