The branch releng/14.0 has been updated by zlei:

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

commit ea3e5ee5856008ea469fe4e90d231a36d5b432b5
Author:     Zhenlei Huang <z...@freebsd.org>
AuthorDate: 2023-09-27 16:23:22 +0000
Commit:     Zhenlei Huang <z...@freebsd.org>
CommitDate: 2023-10-03 03:34:16 +0000

    ip_mroute: Fix sysctl knobs
    
    The loader tunable `net.inet.ip.mfchashsize` does not have corresponding
    sysctl MIB entry. Just add it.
    
    While here, the sysctl variable `net.inet.pim.squelch_wholepkt` is actually
    a loader tunable. Add sysctl flag CTLFLAG_TUN to it so that `sysctl -T`
    will report it correctly.
    
    Reviewed by:    kp
    Approved by:    re (gjb)
    Fixes:          443fc3176dee Introduce a number of changes to the MROUTING 
code
    MFC after:      3 days
    Differential Revision:  https://reviews.freebsd.org/D41997
    
    (cherry picked from commit f549e22901b3a391c76659bee55802b1214112fd)
    (cherry picked from commit b0f026435a150933ecb6f2d1359fd1b4898657f1)
---
 sys/netinet/ip_mroute.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c
index 2444fd9686f7..cda5f160e8fb 100644
--- a/sys/netinet/ip_mroute.c
+++ b/sys/netinet/ip_mroute.c
@@ -172,7 +172,9 @@ VNET_DEFINE_STATIC(u_long, mfchash);
          ((g).s_addr >> 20) ^ ((g).s_addr >> 10) ^ (g).s_addr) & V_mfchash)
 #define        MFCHASHSIZE     256
 
-static u_long mfchashsize;                     /* Hash size */
+static u_long mfchashsize = MFCHASHSIZE;       /* Hash size */
+SYSCTL_ULONG(_net_inet_ip, OID_AUTO, mfchashsize, CTLFLAG_RDTUN,
+    &mfchashsize, 0, "IPv4 Multicast Forwarding Table hash size");
 VNET_DEFINE_STATIC(u_char *, nexpire);         /* 0..mfchashsize-1 */
 #define        V_nexpire               VNET(nexpire)
 VNET_DEFINE_STATIC(LIST_HEAD(mfchashhdr, mfc)*, mfchashtbl);
@@ -226,7 +228,7 @@ SYSCTL_VNET_PCPUSTAT(_net_inet_pim, PIMCTL_STATS, stats, 
struct pimstat,
     pimstat, "PIM Statistics (struct pimstat, netinet/pim_var.h)");
 
 static u_long  pim_squelch_wholepkt = 0;
-SYSCTL_ULONG(_net_inet_pim, OID_AUTO, squelch_wholepkt, CTLFLAG_RW,
+SYSCTL_ULONG(_net_inet_pim, OID_AUTO, squelch_wholepkt, CTLFLAG_RWTUN,
     &pim_squelch_wholepkt, 0,
     "Disable IGMP_WHOLEPKT notifications if rendezvous point is unspecified");
 
@@ -2817,18 +2819,12 @@ ip_mroute_modevent(module_t mod, int type, void *unused)
                        return (EINVAL);
                }
 
-               mfchashsize = MFCHASHSIZE;
-               if (TUNABLE_ULONG_FETCH("net.inet.ip.mfchashsize", 
&mfchashsize) &&
-                               !powerof2(mfchashsize)) {
+               if (!powerof2(mfchashsize)) {
                        printf("WARNING: %s not a power of 2; using default\n",
                                        "net.inet.ip.mfchashsize");
                        mfchashsize = MFCHASHSIZE;
                }
 
-               pim_squelch_wholepkt = 0;
-               TUNABLE_ULONG_FETCH("net.inet.pim.squelch_wholepkt",
-                               &pim_squelch_wholepkt);
-
                pim_encap_cookie = ip_encap_attach(&ipv4_encap_cfg, NULL, 
M_WAITOK);
 
                ip_mcast_src = X_ip_mcast_src;

Reply via email to