The variable la_hold_total contains the number of packets currently
authorbluhm <bluhm@openbsd.org>
Fri, 23 Apr 2021 21:47:32 +0000 (21:47 +0000)
committerbluhm <bluhm@openbsd.org>
Fri, 23 Apr 2021 21:47:32 +0000 (21:47 +0000)
in the arp queue.  So the sysctl net.inet.ip.arpqueued must be read
only.  In if_ether.c include the header with the declaration of
la_hold_total to ensure that the definition matches.
OK mvs@

sys/netinet/if_ether.c
sys/netinet/ip_input.c

index fceeffc..710f7d5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_ether.c,v 1.243 2020/06/24 22:03:43 cheloha Exp $  */
+/*     $OpenBSD: if_ether.c,v 1.244 2021/04/23 21:47:32 bluhm Exp $    */
 /*     $NetBSD: if_ether.c,v 1.31 1996/05/11 12:59:58 mycroft Exp $    */
 
 /*
@@ -60,6 +60,7 @@
 #include <netinet/in.h>
 #include <netinet/in_var.h>
 #include <netinet/if_ether.h>
+#include <netinet/ip_var.h>
 #if NCARP > 0
 #include <netinet/ip_carp.h>
 #endif
index e5b74e4..69d5646 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ip_input.c,v 1.356 2021/03/30 08:37:10 sashan Exp $   */
+/*     $OpenBSD: ip_input.c,v 1.357 2021/04/23 21:47:32 bluhm Exp $    */
 /*     $NetBSD: ip_input.c,v 1.30 1996/03/16 23:53:58 christos Exp $   */
 
 /*
@@ -126,7 +126,6 @@ const struct sysctl_bounded_args ipctl_vars[] = {
        { IPCTL_IPPORT_MAXQUEUE, &ip_maxqueue, 0, 10000 },
        { IPCTL_MFORWARDING, &ipmforwarding, 0, 1 },
        { IPCTL_MULTIPATH, &ipmultipath, 0, 1 },
-       { IPCTL_ARPQUEUED, &la_hold_total, 0, 1000 },
        { IPCTL_ARPTIMEOUT, &arpt_keep, 0, INT_MAX },
        { IPCTL_ARPDOWN, &arpt_down, 0, INT_MAX },
 };
@@ -1643,6 +1642,8 @@ ip_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp,
        case IPCTL_ARPQUEUE:
                return (sysctl_niq(name + 1, namelen - 1,
                    oldp, oldlenp, newp, newlen, &arpinq));
+       case IPCTL_ARPQUEUED:
+               return (sysctl_rdint(oldp, oldlenp, newp, la_hold_total));
        case IPCTL_STATS:
                return (ip_sysctl_ipstat(oldp, oldlenp, newp));
 #ifdef MROUTING