diff options
author | qingli <qingli@FreeBSD.org> | 2008-12-17 10:03:49 +0000 |
---|---|---|
committer | qingli <qingli@FreeBSD.org> | 2008-12-17 10:03:49 +0000 |
commit | c6a0a000ca142a4c7062f6f2fc0c31b888309b18 (patch) | |
tree | 5820a671a6e7553fdca713d351b0eccfc6ac4ec1 /sys/netinet6/nd6_rtr.c | |
parent | 62ee68bb086f87555449fb796d5153418839b5cf (diff) | |
download | FreeBSD-src-c6a0a000ca142a4c7062f6f2fc0c31b888309b18.zip FreeBSD-src-c6a0a000ca142a4c7062f6f2fc0c31b888309b18.tar.gz |
in6_clsroute() was applied to prefix routes causing some
of them to expire. in6_clsroute() was only applied to
cloned routes that are no longer applicable after the
arp-v2 commit.
Diffstat (limited to 'sys/netinet6/nd6_rtr.c')
-rw-r--r-- | sys/netinet6/nd6_rtr.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 7df364e..a47a347 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -1554,6 +1554,12 @@ nd6_prefix_onlink(struct nd_prefix *pr) char ip6buf[INET6_ADDRSTRLEN]; struct sockaddr_dl null_sdl = {sizeof(null_sdl), AF_LINK}; + + log(LOG_DEBUG, "##1 nd6_prefix_onlink: %s, vltime = %x, pltime = %x\n", + ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), + pr->ndpr_vltime, pr->ndpr_pltime); + + /* sanity check */ if ((pr->ndpr_stateflags & NDPRF_ONLINK) != 0) { nd6log((LOG_ERR, @@ -1622,6 +1628,12 @@ nd6_prefix_onlink(struct nd_prefix *pr) rtflags = ifa->ifa_flags | RTF_UP; error = rtrequest(RTM_ADD, (struct sockaddr *)&pr->ndpr_prefix, ifa->ifa_addr, (struct sockaddr *)&mask6, rtflags, &rt); + + log(LOG_DEBUG, "##2 nd6_prefix_onlink: %s, vltime = %x, pltime = %x\n", + ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), + pr->ndpr_vltime, pr->ndpr_pltime); + + if (error == 0) { if (rt != NULL) /* this should be non NULL, though */ { rnh = V_rt_tables[rt->rt_fibnum][AF_INET6]; |