summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey I. Froloff <raorn@raorn.name>2012-04-06 05:50:58 +0000
committerDavid S. Miller <davem@davemloft.net>2012-04-12 15:56:57 -0400
commite35f30c131a562bafd069820a6983fd4023e606e (patch)
tree7768d88caf0ae7950a586340510eb965bbc5bded
parent64d176fce1a28c7cef2f239936b760ed61c59586 (diff)
downloadlinux-e35f30c131a562bafd069820a6983fd4023e606e.tar.gz
linux-e35f30c131a562bafd069820a6983fd4023e606e.tar.bz2
linux-e35f30c131a562bafd069820a6983fd4023e606e.zip
Treat ND option 31 as userland (DNSSL support)
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>
-rw-r--r--include/net/ndisc.h1
-rw-r--r--net/ipv6/ndisc.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index 6f9c25a76cd1..c02b6ad3f6c5 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -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
};
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
index 1d6fb0c94da1..7cb236e8e261 100644
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -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,