Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Apr 2026 22:58:47 +0000
From:      Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: d022dd82059b - main - nd6: Change prelist_update return type to void
Message-ID:  <69e2bb27.3908f.71752c21@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by pouria:

URL: https://cgit.FreeBSD.org/src/commit/?id=d022dd82059b6173505377d47e3d0048906f8311

commit d022dd82059b6173505377d47e3d0048906f8311
Author:     Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
AuthorDate: 2026-04-16 22:20:47 +0000
Commit:     Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
CommitDate: 2026-04-17 22:52:17 +0000

    nd6: Change prelist_update return type to void
    
    The return value of `prelist_update()` is unused.
    
    Reviewed by: markj, zlei
    Differential Revision: https://reviews.freebsd.org/D56132
---
 sys/netinet6/nd6_rtr.c | 47 ++++++++++++++++++-----------------------------
 1 file changed, 18 insertions(+), 29 deletions(-)

diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
index 5833bf487c23..339ae5ebbaea 100644
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -89,7 +89,7 @@ struct nd_routectl {
 };
 
 static struct nd_defrouter *defrtrlist_update(struct nd_defrouter *);
-static int prelist_update(struct nd_prefixctl *, struct nd_defrouter *,
+static void prelist_update(struct nd_prefixctl *, struct nd_defrouter *,
     bool, int);
 static int nd6_routelist_update(struct nd_routectl *);
 static int nd6_prefix_onlink(struct nd_prefix *);
@@ -313,7 +313,7 @@ nd6_ra_opt_pi(struct nd_opt_hdr *pt, struct ifnet *ifp,
 	pr.ndpr_plen = pi->nd_opt_pi_prefix_len;
 	pr.ndpr_vltime = ntohl(pi->nd_opt_pi_valid_time);
 	pr.ndpr_pltime = ntohl(pi->nd_opt_pi_preferred_time);
-	(void)prelist_update(&pr, dr, auth, mcast);
+	prelist_update(&pr, dr, auth, mcast);
 }
 
 static void
@@ -1552,7 +1552,7 @@ nd6_prefix_update(struct nd_prefixctl *new, struct nd_prefix *pr)
 	}
 }
 
-static int
+static void
 prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
     bool auth, int mcast)
 {
@@ -1572,9 +1572,9 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
 		nd6_prefix_update(new, pr);
 	else {
 		if (new->ndpr_vltime == 0)
-			goto end;
+			return;
 		if (new->ndpr_raf_onlink == 0 && new->ndpr_raf_auto == 0)
-			goto end;
+			return;
 
 		error = nd6_prelist_add(new, &pr);
 		if (error != 0) {
@@ -1582,7 +1582,8 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
 			    "the prefix %s/%d on %s (errno=%d)\n", __func__,
 			    ip6_sprintf(ip6buf, &new->ndpr_prefix.sin6_addr),
 			    new->ndpr_plen, if_name(new->ndpr_ifp), error));
-			goto end; /* we should just give up in this case. */
+			/* we should just give up in this case. */
+			return;
 		}
 
 		/*
@@ -1602,24 +1603,16 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
 		pfxrtr_add(pr, dr);
 
 	/*
-	 * Address autoconfiguration based on Section 5.5.3 of RFC 2462.
+	 * Address autoconfiguration based on Section 5.5.3 of RFC 4862.
 	 * Note that pr must be non NULL at this point.
+	 *
+	 * 5.5.3 (a). Ignore the prefix without the A bit set.
+	 * 5.5.3 (b). the link-local prefix should have been ignored in nd6_ra_input.
+	 * 5.5.3 (c). Consistency check on lifetimes: pltime <= vltime.
 	 */
-
-	/* 5.5.3 (a). Ignore the prefix without the A bit set. */
-	if (!new->ndpr_raf_auto)
-		goto end;
-
-	/*
-	 * 5.5.3 (b). the link-local prefix should have been ignored in
-	 * nd6_ra_input.
-	 */
-
-	/* 5.5.3 (c). Consistency check on lifetimes: pltime <= vltime. */
-	if (new->ndpr_pltime > new->ndpr_vltime) {
-		error = EINVAL;	/* XXX: won't be used */
+	if (new->ndpr_raf_auto == 0 ||
+	    new->ndpr_pltime > new->ndpr_vltime)
 		goto end;
-	}
 
 	/*
 	 * 5.5.3 (d).  If the prefix advertised is not equal to the prefix of
@@ -1628,12 +1621,12 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
 	 * 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 RFC2462 simply said
+	 * consider autoconfigured addresses while RFC 4862 simply said
 	 * "address".
 	 */
 	CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
 		struct in6_ifaddr *ifa6;
-		u_int32_t remaininglifetime;
+		uint32_t remaininglifetime;
 
 		if (ifa->ifa_addr->sa_family != AF_INET6)
 			continue;
@@ -1844,16 +1837,12 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr,
 			 * XXX: what if address duplication happens?
 			 */
 			pfxlist_onlink_check();
-		} else {
-			/* just set an error. do not bark here. */
-			error = EADDRNOTAVAIL; /* XXX: might be unused. */
 		}
 	}
 
 end:
-	if (pr != NULL)
-		nd6_prefix_rele(pr);
-	return (error);
+	nd6_prefix_rele(pr);
+	return;
 }
 
 /*


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69e2bb27.3908f.71752c21>