diff --git a/src/core/ipv6/nd6.c b/src/core/ipv6/nd6.c index 8b24180b..ec29a9bb 100644 --- a/src/core/ipv6/nd6.c +++ b/src/core/ipv6/nd6.c @@ -485,7 +485,9 @@ nd6_input(struct pbuf *p, struct netif *inp) struct prefix_option *prefix_opt; prefix_opt = (struct prefix_option *)buffer; - if (prefix_opt->flags & ND6_PREFIX_FLAG_ON_LINK) { + if ((prefix_opt->flags & ND6_PREFIX_FLAG_ON_LINK) && + (prefix_opt->length == 64) && + !ip6_addr_islinklocal(&(prefix_opt->prefix))) { /* Add to on-link prefix list. */ s8_t prefix;