Page MenuHomeFreeBSD

D56134.id.diff
No OneTemporary

D56134.id.diff

diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -1596,14 +1596,13 @@
pfxrtr_add(pr, dr);
/*
- * 5.5.3 (d). If the prefix advertised is not equal to the prefix of
+ * 5.5.3 (d). If the prefix advertised is not equal to the prefix of
* an address configured by stateless autoconfiguration already in the
- * list of addresses associated with the interface, and the Valid
- * Lifetime is not 0, form an address. We first check if we have
- * a matching prefix.
- * Note: we apply a clarification in rfc2462bis-02 here. We only
- * consider autoconfigured addresses while RFC 4862 simply said
- * "address".
+ * list of addresses associated with the interface (where "equal"
+ * means the two prefix lengths are the same and the first prefix-length
+ * bits of the prefixes are identical),
+ * and if the Valid Lifetime is not 0, form an address (and
+ * add it to the list). We first check if we have a matching prefix.
*/
CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
struct in6_ifaddr *ifa6;
@@ -1613,21 +1612,9 @@
continue;
ifa6 = (struct in6_ifaddr *)ifa;
-
- /*
- * We only consider autoconfigured addresses as per rfc2462bis.
- */
if (!(ifa6->ia6_flags & IN6_IFF_AUTOCONF))
continue;
- /*
- * Spec is not clear here, but I believe we should concentrate
- * on unicast (i.e. not anycast) addresses.
- * XXX: other ia6_flags? detached or duplicated?
- */
- if ((ifa6->ia6_flags & IN6_IFF_ANYCAST) != 0)
- continue;
-
/*
* Ignore the address if it is not associated with a prefix
* or is associated with a prefix that is different from this

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 11, 9:55 PM (12 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30552373
Default Alt Text
D56134.id.diff (1 KB)

Event Timeline