Message ID | 20200324011019.248392-1-zenczykowski@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | net-ipv6-ndisc: add support for 'PREF64' dns64 prefix identifier | expand |
On Tue, Mar 24, 2020 at 10:10 AM Maciej Żenczykowski <zenczykowski@gmail.com> wrote: > 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. Right. The number is assigned by IANA and the draft is in the RFC editor queue, so this number will not change. > diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c > index 4a3feccd5b10..6ffa153e5166 100644 > --- a/net/ipv6/ndisc.c > +++ b/net/ipv6/ndisc.c > @@ -197,6 +197,7 @@ static inline int ndisc_is_useropt(const struct net_device *dev, > return opt->nd_opt_type == ND_OPT_RDNSS || > opt->nd_opt_type == ND_OPT_DNSSL || > opt->nd_opt_type == ND_OPT_CAPTIVE_PORTAL || > + opt->nd_opt_type == ND_OPT_PREF64 || > ndisc_ops_is_useropt(dev, opt->nd_opt_type); > } Acked-By: Lorenzo Colitti <lorenzo@google.com>
From: Maciej Żenczykowski <zenczykowski@gmail.com> Date: Mon, 23 Mar 2020 18:10:19 -0700 > From: Maciej Żenczykowski <maze@google.com> > > 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> Applied to net-next.
diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 1c61aeb3a1c0..7d107113f988 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -41,6 +41,7 @@ enum { ND_OPT_DNSSL = 31, /* RFC6106 */ ND_OPT_6CO = 34, /* RFC6775 */ ND_OPT_CAPTIVE_PORTAL = 37, /* RFC7710 */ + ND_OPT_PREF64 = 38, /* RFC-ietf-6man-ra-pref64-09 */ __ND_OPT_MAX }; diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 4a3feccd5b10..6ffa153e5166 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -197,6 +197,7 @@ static inline int ndisc_is_useropt(const struct net_device *dev, return opt->nd_opt_type == ND_OPT_RDNSS || opt->nd_opt_type == ND_OPT_DNSSL || opt->nd_opt_type == ND_OPT_CAPTIVE_PORTAL || + opt->nd_opt_type == ND_OPT_PREF64 || ndisc_ops_is_useropt(dev, opt->nd_opt_type); }