git: e64fe5ad3a23 - main - netinet6: Remove a set but not used global variable in6_maxmtu

From: Zhenlei Huang <zlei_at_FreeBSD.org>
Date: Wed, 21 May 2025 10:12:38 UTC
The branch main has been updated by zlei:

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

commit e64fe5ad3a23a9f471ebf11e04e490588913c7af
Author:     Zhenlei Huang <zlei@FreeBSD.org>
AuthorDate: 2025-05-21 10:09:01 +0000
Commit:     Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2025-05-21 10:09:01 +0000

    netinet6: Remove a set but not used global variable in6_maxmtu
    
    and its setter in6_setmaxmtu().
    
    This variable was introduced by the KAME projec [1]. It holds the max
    IPv6 MTU through all the interfaces, but is never used anywhere.
    
    [1] 82cd038d51e2 KAME netinet6 basic part(no IPsec,no V6 Multicast
                     Forwarding, no UDP/TCP for IPv6 yet)
    
    Reviewed by:    glebius
    MFC after:      1 month
    Differential Revision:  https://reviews.freebsd.org/D49357
---
 sys/netinet6/in6.c          | 25 -------------------------
 sys/netinet6/in6_ifattach.c |  6 ------
 sys/netinet6/in6_var.h      |  4 ----
 sys/netinet6/nd6.c          |  4 ----
 sys/netinet6/nd6_rtr.c      |  8 ++------
 5 files changed, 2 insertions(+), 45 deletions(-)

diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index 62d00196e56b..ce0655408a28 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -2112,31 +2112,6 @@ in6if_do_dad(struct ifnet *ifp)
 	return (1);
 }
 
-/*
- * Calculate max IPv6 MTU through all the interfaces and store it
- * to in6_maxmtu.
- */
-void
-in6_setmaxmtu(void)
-{
-	struct epoch_tracker et;
-	unsigned long maxmtu = 0;
-	struct ifnet *ifp;
-
-	NET_EPOCH_ENTER(et);
-	CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) {
-		/* this function can be called during ifnet initialization */
-		if (!ifp->if_afdata[AF_INET6])
-			continue;
-		if ((ifp->if_flags & IFF_LOOPBACK) == 0 &&
-		    IN6_LINKMTU(ifp) > maxmtu)
-			maxmtu = IN6_LINKMTU(ifp);
-	}
-	NET_EPOCH_EXIT(et);
-	if (maxmtu)	/* update only when maxmtu is positive */
-		V_in6_maxmtu = maxmtu;
-}
-
 /*
  * Provide the length of interface identifiers to be used for the link attached
  * to the given interface.  The length should be defined in "IPv6 over
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c
index 11e9cba81332..1b5a38ba412a 100644
--- a/sys/netinet6/in6_ifattach.c
+++ b/sys/netinet6/in6_ifattach.c
@@ -70,8 +70,6 @@
 #include <netinet6/mld6_var.h>
 #include <netinet6/scope6_var.h>
 
-VNET_DEFINE(unsigned long, in6_maxmtu) = 0;
-
 #ifdef IP6_AUTO_LINKLOCAL
 VNET_DEFINE(int, ip6_auto_linklocal) = IP6_AUTO_LINKLOCAL;
 #else
@@ -731,10 +729,6 @@ in6_ifattach(struct ifnet *ifp, struct ifnet *altifp)
 		else
 			ifa_free(&ia->ia_ifa);
 	}
-
-	/* update dynamically. */
-	if (V_in6_maxmtu < ifp->if_mtu)
-		V_in6_maxmtu = ifp->if_mtu;
 }
 
 /*
diff --git a/sys/netinet6/in6_var.h b/sys/netinet6/in6_var.h
index 969625a58934..918a3abe426e 100644
--- a/sys/netinet6/in6_var.h
+++ b/sys/netinet6/in6_var.h
@@ -549,9 +549,6 @@ do {								\
 		    ((ifp)->if_afdata[AF_INET6]))->in6_ifstat[	\
 		    offsetof(struct in6_ifstat, tag) / sizeof(uint64_t)], 1);\
 } while (/*CONSTCOND*/ 0)
-
-VNET_DECLARE(unsigned long, in6_maxmtu);
-#define	V_in6_maxmtu			VNET(in6_maxmtu)
 #endif /* _KERNEL */
 
 /*
@@ -875,7 +872,6 @@ void	in6_domifdetach(struct ifnet *, void *);
 int	in6_domifmtu(struct ifnet *);
 struct rib_head *in6_inithead(uint32_t fibnum);
 void	in6_detachhead(struct rib_head *rh);
-void	in6_setmaxmtu(void);
 int	in6_if2idlen(struct ifnet *);
 struct in6_ifaddr *in6ifa_ifpforlinklocal(struct ifnet *, int);
 struct in6_ifaddr *in6ifa_ifpwithaddr(struct ifnet *, const struct in6_addr *);
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 887da1ebe21a..6ec5a8b54cf4 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -379,10 +379,6 @@ nd6_setmtu0(struct ifnet *ifp, struct nd_ifinfo *ndi)
 		    "new link MTU on %s (%lu) is too small for IPv6\n",
 		    if_name(ifp), (unsigned long)ndi->maxmtu);
 	}
-
-	if (ndi->maxmtu > V_in6_maxmtu)
-		in6_setmaxmtu(); /* check all interfaces just in case */
-
 }
 
 void
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
index 845f9094f4c4..c145af7d3ffc 100644
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -553,12 +553,8 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len)
 		maxmtu = (ndi->maxmtu && ndi->maxmtu < ifp->if_mtu)
 		    ? ndi->maxmtu : ifp->if_mtu;
 		if (mtu <= maxmtu) {
-			int change = (ndi->linkmtu != mtu);
-
-			ndi->linkmtu = mtu;
-			if (change) {
-				/* in6_maxmtu may change */
-				in6_setmaxmtu();
+			if (ndi->linkmtu != mtu) {
+				ndi->linkmtu = mtu;
 				rt_updatemtu(ifp);
 			}
 		} else {