From nobody Fri Jan 23 22:36:40 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dyXpx245Fz6Pss1 for ; Fri, 23 Jan 2026 22:36:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dyXpw6R9nz3r2F for ; Fri, 23 Jan 2026 22:36:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769207800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1KbGQ8yj69rSf2fMTRsxEy10ahQfJLcX8wjRfU+2eFI=; b=jHRpZQMjr/TZee7s0ge+2EE2E6NMWaeL9/V+V+wWzmjvKd3ol7IbLKkaYflSHz4QQTHoot WqINdFAHwH3zKAkanOUhkgnpNjsiu7pz2VdiyRy10YJaHXcZmnIr0kca1DHb4BqXYNBp1D u5gFQUdTfA4BGjLJJvXd5+O4Bc6wwne/wjp/xoYI6oEG46ASWJ/dZlhCeoBkkuCY0kvXEi 9TLYSrrLYjf2dHnRDWSBcQ3tOzHd+rGixjd8j3iNffhqZ1Vk/0YObC9kgSo0m5j/4nSqei vsulORoU/CL9Hlb8KLoszVJxPgqZnfClqRH9Oj977/cUhyqsjFLR/0ZFrYND+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769207800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1KbGQ8yj69rSf2fMTRsxEy10ahQfJLcX8wjRfU+2eFI=; b=RroeAWA/GDqjxtWh7vdebLBCWgGY0PiHtNGBfcGLRb65BLOk0pkjDAoBppHwA9VTrFeljU /2d/mBNrzo/n3rHkvxPo9ZY0CRGEDbtqbTDMDR1IzOpaoLzqnTs/E5N2RVTc7oP9OPA8Pi 6E/ktMTzdb3mi5rBWJgiDZHyXXeVLjmQp5WxSjtgd/tRT68qTjEyOK9KObOn4qUtiJrHGn VQ+l5u5Ln4u6jscBIa/lFMqjizaGls8sUPJ+n1xeWjG8DtwhSG0/Rd6hTkXMCAwNzmq3C4 Uw8Z5uWpwVlAYwWynoyxbUbcVLOMqXYayMXXtS24BbpOyPNU0hobO/GW5DNbfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769207800; a=rsa-sha256; cv=none; b=A8sYl0paWj4ba2BPDcKcqo+ze/7JuoNbswzj3hgKGLkVHqXnOLcVXhgNwopoK1sXNKKPqu IAlLOpxJ0vRXdQVQDQaWEC1Iyr555Prl/V4fX/zmUjhLcn6fwqhRAzuCK0sG3UBnMGmM5C XHqGvfrUt95SdTnz3jxae9BrdRBFn1eJZmnTmSxjsXKGtv3McoFUVgOFKo4Ek1SW+wIu5M LmC0SWEjCnEkhozTjFWF1e862nTgn/9q1+avRSMTyy7k6CA5O7bMQ2Twt2lWIPJyjMkTR5 eML31v9GLn4s2rkS+8SwCK57nFUSNN9CvkBSAdbJchVHrrNZcqumIIwuSvGInQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dyXpw4j5DzfHp for ; Fri, 23 Jan 2026 22:36:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36d6f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 23 Jan 2026 22:36:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 25a11d9805fc - main - netinet6: use in6_ifmtu() instead of IN6_LINKMTU() macro List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 25a11d9805fc94ec6b01525b3902c89be87c735c Auto-Submitted: auto-generated Date: Fri, 23 Jan 2026 22:36:40 +0000 Message-Id: <6973f7f8.36d6f.5b204ad5@gitrepo.freebsd.org> The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=25a11d9805fc94ec6b01525b3902c89be87c735c commit 25a11d9805fc94ec6b01525b3902c89be87c735c Author: Gleb Smirnoff AuthorDate: 2026-01-23 22:17:16 +0000 Commit: Gleb Smirnoff CommitDate: 2026-01-23 22:17:16 +0000 netinet6: use in6_ifmtu() instead of IN6_LINKMTU() macro There should be no functional change. If there are any performance concerns with a function call, with the future changes, that would move ND6 bits into in6_ifextra, this function would be easily inline-able. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D54724 --- sys/netinet6/in6.c | 9 +++++++-- sys/netinet6/in6_rmx.c | 6 ++---- sys/netinet6/in6_var.h | 2 +- sys/netinet6/ip6_forward.c | 4 ++-- sys/netinet6/ip6_mroute.c | 2 +- sys/netinet6/ip6_output.c | 4 ++-- sys/netinet6/nd6.c | 2 +- sys/netinet6/nd6.h | 5 ----- sys/netpfil/pf/pf.c | 4 ++-- 9 files changed, 18 insertions(+), 20 deletions(-) diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 40bc286f3ab2..07f1198cd283 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2627,9 +2627,14 @@ EVENTHANDLER_DEFINE(ifnet_arrival_event, in6_ifarrival, NULL, EVENTHANDLER_PRI_ANY); uint32_t -in6_ifmtu(struct ifnet *ifp) +in6_ifmtu(const struct ifnet *ifp) { - return (IN6_LINKMTU(ifp)); + struct nd_ifinfo *ndi = ND_IFINFO(ifp); + + return ( + (ndi->linkmtu > 0 && ndi->linkmtu < ifp->if_mtu) ? ndi->linkmtu : + ((ndi->maxmtu > 0 && ndi->maxmtu < ifp->if_mtu) ? ndi->maxmtu : + ifp->if_mtu)); } /* diff --git a/sys/netinet6/in6_rmx.c b/sys/netinet6/in6_rmx.c index d1c121115b60..35c6cd5ba5f1 100644 --- a/sys/netinet6/in6_rmx.c +++ b/sys/netinet6/in6_rmx.c @@ -114,10 +114,8 @@ rib6_augment_nh(u_int fibnum, struct nhop_object *nh) * inherit interface MTU if not set or * check if MTU is too large. */ - if (nh->nh_mtu == 0) { - nh->nh_mtu = IN6_LINKMTU(nh->nh_ifp); - } else if (nh->nh_mtu > IN6_LINKMTU(nh->nh_ifp)) - nh->nh_mtu = IN6_LINKMTU(nh->nh_ifp); + if (nh->nh_mtu == 0 || nh->nh_mtu > in6_ifmtu(nh->nh_ifp)) + nh->nh_mtu = in6_ifmtu(nh->nh_ifp); /* Set nexthop type */ if (nhop_get_type(nh) == 0) { diff --git a/sys/netinet6/in6_var.h b/sys/netinet6/in6_var.h index 1e0b6c0ed29e..f22b75ce71db 100644 --- a/sys/netinet6/in6_var.h +++ b/sys/netinet6/in6_var.h @@ -861,7 +861,7 @@ void in6_purgeaddr(struct ifaddr *); void in6_purgeifaddr(struct in6_ifaddr *); int in6if_do_dad(struct ifnet *); void in6_savemkludge(struct in6_ifaddr *); -uint32_t in6_ifmtu(struct ifnet *); +uint32_t in6_ifmtu(const struct ifnet *); struct rib_head *in6_inithead(uint32_t fibnum); void in6_detachhead(struct rib_head *rh); int in6_if2idlen(struct ifnet *); diff --git a/sys/netinet6/ip6_forward.c b/sys/netinet6/ip6_forward.c index 9823366b0156..0ebb51fd80f0 100644 --- a/sys/netinet6/ip6_forward.c +++ b/sys/netinet6/ip6_forward.c @@ -384,11 +384,11 @@ again: pass: /* See if the size was changed by the packet filter. */ /* TODO: change to nh->nh_mtu */ - if (m->m_pkthdr.len > IN6_LINKMTU(nh->nh_ifp)) { + if (m->m_pkthdr.len > in6_ifmtu(nh->nh_ifp)) { in6_ifstat_inc(nh->nh_ifp, ifs6_in_toobig); if (mcopy) icmp6_error(mcopy, ICMP6_PACKET_TOO_BIG, 0, - IN6_LINKMTU(nh->nh_ifp)); + in6_ifmtu(nh->nh_ifp)); goto bad; } diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 4473d3931af8..46981aff1025 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -1582,7 +1582,7 @@ phyint_send(struct ip6_hdr *ip6, struct mif6 *mifp, struct mbuf *m) * Put the packet into the sending queue of the outgoing interface * if it would fit in the MTU of the interface. */ - linkmtu = IN6_LINKMTU(ifp); + linkmtu = in6_ifmtu(ifp); if (mb_copy->m_pkthdr.len <= linkmtu || linkmtu < IPV6_MMTU) { struct sockaddr_in6 dst6; diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c index d61bc983cc12..25fe8f347e35 100644 --- a/sys/netinet6/ip6_output.c +++ b/sys/netinet6/ip6_output.c @@ -1147,7 +1147,7 @@ passout: dontfrag = 1; else dontfrag = 0; - if (dontfrag && tlen > IN6_LINKMTU(ifp) && !tso) { /* Case 2-b. */ + if (dontfrag && tlen > in6_ifmtu(ifp) && !tso) { /* Case 2-b. */ /* * If the DONTFRAG option is specified, we cannot send the * packet when the data length is larger than the MTU of the @@ -1561,7 +1561,7 @@ ip6_calcmtu(struct ifnet *ifp, const struct in6_addr *dst, u_long rt_mtu, } if (mtu == 0) - mtu = IN6_LINKMTU(ifp); + mtu = in6_ifmtu(ifp); *mtup = mtu; } diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 04ce9bf6dd55..2e59f96a95c3 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -1662,7 +1662,7 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp) /* 0 means 'unspecified' */ if (ND.linkmtu != 0) { if (ND.linkmtu < IPV6_MMTU || - ND.linkmtu > IN6_LINKMTU(ifp)) { + ND.linkmtu > in6_ifmtu(ifp)) { error = EINVAL; break; } diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h index 28de6e2ae153..c500f236d6ff 100644 --- a/sys/netinet6/nd6.h +++ b/sys/netinet6/nd6.h @@ -83,11 +83,6 @@ struct llentry; #ifdef _KERNEL #define ND_IFINFO(ifp) ((if_getinet6(ifp))->nd_ifinfo) -#define IN6_LINKMTU(ifp) \ - ((ND_IFINFO(ifp)->linkmtu && ND_IFINFO(ifp)->linkmtu < (ifp)->if_mtu) \ - ? ND_IFINFO(ifp)->linkmtu \ - : ((ND_IFINFO(ifp)->maxmtu && ND_IFINFO(ifp)->maxmtu < (ifp)->if_mtu) \ - ? ND_IFINFO(ifp)->maxmtu : (ifp)->if_mtu)) #endif struct in6_nbrinfo { diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 13e2f5bb77f2..bec6911795bd 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -11708,9 +11708,9 @@ pf_test(sa_family_t af, int dir, int pflags, struct ifnet *ifp, struct mbuf **m0 * it here, before we do any NAT. */ if (af == AF_INET6 && dir == PF_OUT && pflags & PFIL_FWD && - IN6_LINKMTU(ifp) < pf_max_frag_size(*m0)) { + in6_ifmtu(ifp) < pf_max_frag_size(*m0)) { PF_RULES_RUNLOCK(); - icmp6_error(*m0, ICMP6_PACKET_TOO_BIG, 0, IN6_LINKMTU(ifp)); + icmp6_error(*m0, ICMP6_PACKET_TOO_BIG, 0, in6_ifmtu(ifp)); *m0 = NULL; return (PF_DROP); }