svn commit: r299145 - stable/10/sys/netinet6
Mark Johnston
markj at FreeBSD.org
Thu May 5 23:06:41 UTC 2016
Author: markj
Date: Thu May 5 23:06:39 2016
New Revision: 299145
URL: https://svnweb.freebsd.org/changeset/base/299145
Log:
MFC r295583, r295584, r295729, r295730:
NDP code cleanup changes.
MFC r295732:
Fix an IPv6 DAD reference count leak.
Modified:
stable/10/sys/netinet6/nd6.c
stable/10/sys/netinet6/nd6.h
stable/10/sys/netinet6/nd6_nbr.c
stable/10/sys/netinet6/nd6_rtr.c
stable/10/sys/netinet6/scope6.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/netinet6/nd6.c
==============================================================================
--- stable/10/sys/netinet6/nd6.c Thu May 5 22:40:07 2016 (r299144)
+++ stable/10/sys/netinet6/nd6.c Thu May 5 23:06:39 2016 (r299145)
@@ -2215,7 +2215,7 @@ nd6_sysctl_drlist(SYSCTL_HANDLER_ARGS)
error = sa6_recoverscope(&d.rtaddr);
if (error != 0)
return (error);
- d.flags = dr->flags;
+ d.flags = dr->raflags;
d.rtlifetime = dr->rtlifetime;
d.expire = dr->expire + (time_second - time_uptime);
d.if_index = dr->ifp->if_index;
Modified: stable/10/sys/netinet6/nd6.h
==============================================================================
--- stable/10/sys/netinet6/nd6.h Thu May 5 22:40:07 2016 (r299144)
+++ stable/10/sys/netinet6/nd6.h Thu May 5 23:06:39 2016 (r299145)
@@ -235,13 +235,13 @@ struct in6_ndifreq {
((MAX_RANDOM_FACTOR - MIN_RANDOM_FACTOR) * (x >> 10)))) /1000)
TAILQ_HEAD(nd_drhead, nd_defrouter);
-struct nd_defrouter {
+struct nd_defrouter {
TAILQ_ENTRY(nd_defrouter) dr_entry;
- struct in6_addr rtaddr;
- u_char flags; /* flags on RA message */
+ struct in6_addr rtaddr;
+ u_char raflags; /* flags on RA message */
u_short rtlifetime;
u_long expire;
- struct ifnet *ifp;
+ struct ifnet *ifp;
int installed; /* is installed into kernel routing table */
};
@@ -445,7 +445,6 @@ void nd6_dad_stop(struct ifaddr *);
/* nd6_rtr.c */
void nd6_rs_input(struct mbuf *, int, int);
void nd6_ra_input(struct mbuf *, int, int);
-void prelist_del(struct nd_prefix *);
void defrouter_reset(void);
void defrouter_select(void);
void defrtrlist_del(struct nd_defrouter *);
Modified: stable/10/sys/netinet6/nd6_nbr.c
==============================================================================
--- stable/10/sys/netinet6/nd6_nbr.c Thu May 5 22:40:07 2016 (r299144)
+++ stable/10/sys/netinet6/nd6_nbr.c Thu May 5 23:06:39 2016 (r299145)
@@ -1315,9 +1315,10 @@ nd6_dad_start(struct ifaddr *ifa, int de
}
if ((dp = nd6_dad_find(ifa, NULL)) != NULL) {
/*
- * DAD already in progress. Let the existing entry
- * to finish it.
+ * DAD is already in progress. Let the existing entry
+ * finish it.
*/
+ nd6_dad_rele(dp);
return;
}
Modified: stable/10/sys/netinet6/nd6_rtr.c
==============================================================================
--- stable/10/sys/netinet6/nd6_rtr.c Thu May 5 22:40:07 2016 (r299144)
+++ stable/10/sys/netinet6/nd6_rtr.c Thu May 5 23:06:39 2016 (r299145)
@@ -270,7 +270,7 @@ nd6_ra_input(struct mbuf *m, int off, in
bzero(&dr0, sizeof(dr0));
dr0.rtaddr = saddr6;
- dr0.flags = nd_ra->nd_ra_flags_reserved;
+ dr0.raflags = nd_ra->nd_ra_flags_reserved;
/*
* Effectively-disable routes from RA messages when
* ND6_IFF_NO_RADR enabled on the receiving interface or
@@ -708,7 +708,7 @@ defrouter_select(void)
static int
rtpref(struct nd_defrouter *dr)
{
- switch (dr->flags & ND_RA_FLAG_RTPREF_MASK) {
+ switch (dr->raflags & ND_RA_FLAG_RTPREF_MASK) {
case ND_RA_FLAG_RTPREF_HIGH:
return (RTPREF_HIGH);
case ND_RA_FLAG_RTPREF_MEDIUM:
@@ -722,7 +722,7 @@ rtpref(struct nd_defrouter *dr)
* serious bug of kernel internal. We thus always bark here.
* Or, can we even panic?
*/
- log(LOG_ERR, "rtpref: impossible RA flag %x\n", dr->flags);
+ log(LOG_ERR, "rtpref: impossible RA flag %x\n", dr->raflags);
return (RTPREF_INVALID);
}
/* NOTREACHED */
@@ -744,7 +744,7 @@ defrtrlist_update(struct nd_defrouter *n
oldpref = rtpref(dr);
/* override */
- dr->flags = new->flags; /* xxx flag check */
+ dr->raflags = new->raflags; /* XXX flag check */
dr->rtlifetime = new->rtlifetime;
dr->expire = new->expire;
@@ -937,9 +937,9 @@ prelist_remove(struct nd_prefix *pr)
/* unlink ndpr_entry from nd_prefix list */
LIST_REMOVE(pr, ndpr_entry);
- /* free list of routers that adversed the prefix */
+ /* free list of routers that advertised the prefix */
LIST_FOREACH_SAFE(pfr, &pr->ndpr_advrtrs, pfr_entry, next) {
- free(pfr, M_IP6NDP);
+ pfxrtr_del(pfr);
}
free(pr, M_IP6NDP);
Modified: stable/10/sys/netinet6/scope6.c
==============================================================================
--- stable/10/sys/netinet6/scope6.c Thu May 5 22:40:07 2016 (r299144)
+++ stable/10/sys/netinet6/scope6.c Thu May 5 23:06:39 2016 (r299145)
@@ -416,7 +416,7 @@ sa6_recoverscope(struct sockaddr_in6 *si
zoneid != sin6->sin6_scope_id) {
log(LOG_NOTICE,
"%s: embedded scope mismatch: %s%%%d. "
- "sin6_scope_id was overridden.", __func__,
+ "sin6_scope_id was overridden\n", __func__,
ip6_sprintf(ip6buf, &sin6->sin6_addr),
sin6->sin6_scope_id);
}
More information about the svn-src-stable
mailing list