Treat ND option 31 as userland (DNSSL support)
authorAlexey I. Froloff <raorn@raorn.name>
Fri, 6 Apr 2012 05:50:58 +0000 (05:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Apr 2012 19:56:57 +0000 (15:56 -0400)
As specified in RFC6106, DNSSL option contains one or more domain names
of DNS suffixes.  8-bit identifier of the DNSSL option type as assigned
by the IANA is 31.  This option should also be treated as userland.

Signed-off-by: Alexey I. Froloff <raorn@raorn.name>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ndisc.h
net/ipv6/ndisc.c

index 6f9c25a76cd1328856293c1af4d9cf8b10188c1c..c02b6ad3f6c589359a9de57f48fa38d683010349 100644 (file)
@@ -34,6 +34,7 @@ enum {
        __ND_OPT_ARRAY_MAX,
        ND_OPT_ROUTE_INFO = 24,         /* RFC4191 */
        ND_OPT_RDNSS = 25,              /* RFC5006 */
+       ND_OPT_DNSSL = 31,              /* RFC6106 */
        __ND_OPT_MAX
 };
 
index 1d6fb0c94da1bf352e178dfcd97e8b5447a7c87d..7cb236e8e261e0620070273fabaa2a1673b043a0 100644 (file)
@@ -15,6 +15,7 @@
 /*
  *     Changes:
  *
+ *     Alexey I. Froloff               :       RFC6106 (DNSSL) support
  *     Pierre Ynard                    :       export userland ND options
  *                                             through netlink (RDNSS support)
  *     Lars Fenneberg                  :       fixed MTU setting on receipt
@@ -228,7 +229,8 @@ static struct nd_opt_hdr *ndisc_next_option(struct nd_opt_hdr *cur,
 
 static inline int ndisc_is_useropt(struct nd_opt_hdr *opt)
 {
-       return opt->nd_opt_type == ND_OPT_RDNSS;
+       return opt->nd_opt_type == ND_OPT_RDNSS ||
+               opt->nd_opt_type == ND_OPT_DNSSL;
 }
 
 static struct nd_opt_hdr *ndisc_next_useropt(struct nd_opt_hdr *cur,