Just before lock mbuhl pointed out a new limit placed in pf, not
exported yet over snmp. Here's a diff to add support for
PF_LIMIT_ANCHORS.

the OPENBSD-PF-MIB.txt DESCRIPTION is adapted from pfLimitMaxTables.
The snmp{,d} parts are there just for pretty printing.

OK?

martijn@

Index: share/snmp/OPENBSD-PF-MIB.txt
===================================================================
RCS file: /cvs/src/share/snmp/OPENBSD-PF-MIB.txt,v
retrieving revision 1.7
diff -u -p -r1.7 OPENBSD-PF-MIB.txt
--- share/snmp/OPENBSD-PF-MIB.txt       23 Mar 2021 19:37:51 -0000      1.7
+++ share/snmp/OPENBSD-PF-MIB.txt       6 Oct 2022 16:14:32 -0000
@@ -493,6 +493,14 @@ pfLimitMaxTableEntries OBJECT-TYPE
        tables."
        ::= { pfLimits 5 }
 
+pfLimitAnchors OBJECT-TYPE
+       SYNTAX          Unsigned32
+       MAX-ACCESS      read-only
+       STATUS          current
+       DESCRIPTION
+       "The maximum number of anchors that can be created as part of the
+       active ruleset."
+       ::= { pfLimits 6 }
 
 -- pfTimeouts
 
Index: usr.bin/snmp/mib.h
===================================================================
RCS file: /cvs/src/usr.bin/snmp/mib.h,v
retrieving revision 1.10
diff -u -p -r1.10 mib.h
--- usr.bin/snmp/mib.h  23 Mar 2021 22:05:21 -0000      1.10
+++ usr.bin/snmp/mib.h  6 Oct 2022 16:14:32 -0000
@@ -580,6 +580,7 @@
 #define MIB_pfLimitFragments           MIB_pfLimits, 3
 #define MIB_pfLimitMaxTables           MIB_pfLimits, 4
 #define MIB_pfLimitMaxTableEntries     MIB_pfLimits, 5
+#define MIB_pfLimitAnchors             MIB_pfLimits, 6
 #define MIB_pfTimeouts                 MIB_pfMIBObjects, 7
 #define MIB_pfTimeoutTcpFirst          MIB_pfTimeouts, 1
 #define MIB_pfTimeoutTcpOpening                MIB_pfTimeouts, 2
@@ -1217,6 +1218,7 @@
        { MIBDECL(pfLimitFragments) },                  \
        { MIBDECL(pfLimitMaxTables) },                  \
        { MIBDECL(pfLimitMaxTableEntries) },            \
+       { MIBDECL(pfLimitAnchors) },                    \
        { MIBDECL(pfTimeouts) },                        \
        { MIBDECL(pfTimeoutTcpFirst) },                 \
        { MIBDECL(pfTimeoutTcpOpening) },               \
Index: usr.sbin/snmpd/mib.h
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/mib.h,v
retrieving revision 1.41
diff -u -p -r1.41 mib.h
--- usr.sbin/snmpd/mib.h        19 Jan 2022 10:26:37 -0000      1.41
+++ usr.sbin/snmpd/mib.h        6 Oct 2022 16:14:32 -0000
@@ -550,6 +550,7 @@
 #define MIB_pfLimitFragments           MIB_pfLimits, 3
 #define MIB_pfLimitMaxTables           MIB_pfLimits, 4
 #define MIB_pfLimitMaxTableEntries     MIB_pfLimits, 5
+#define MIB_pfLimitAnchors             MIB_pfLimits, 6
 #define MIB_pfTimeouts                 MIB_pfMIBObjects, 7
 #define MIB_pfTimeoutTcpFirst          MIB_pfTimeouts, 1
 #define MIB_pfTimeoutTcpOpening                MIB_pfTimeouts, 2
@@ -1126,6 +1127,7 @@
        { MIBDECL(pfLimitFragments) },                  \
        { MIBDECL(pfLimitMaxTables) },                  \
        { MIBDECL(pfLimitMaxTableEntries) },            \
+       { MIBDECL(pfLimitAnchors) },                    \
        { MIBDECL(pfTimeouts) },                        \
        { MIBDECL(pfTimeoutTcpFirst) },                 \
        { MIBDECL(pfTimeoutTcpOpening) },               \
Index: libexec/snmpd/snmpd_metrics/mib.c
===================================================================
RCS file: /cvs/src/libexec/snmpd/snmpd_metrics/mib.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 mib.c
--- libexec/snmpd/snmpd_metrics/mib.c   1 Sep 2022 14:20:34 -0000       1.1.1.1
+++ libexec/snmpd/snmpd_metrics/mib.c   6 Oct 2022 16:14:32 -0000
@@ -146,6 +146,7 @@ struct agentx_object *pfSrcTrackCount, *
 struct agentx_object *pfSrcTrackRemovals;
 struct agentx_object *pfLimitStates, *pfLimitSourceNodes, *pfLimitFragments;
 struct agentx_object *pfLimitMaxTables, *pfLimitMaxTableEntries;
+struct agentx_object *pfLimitAnchors;
 struct agentx_object *pfTimeoutTcpFirst, *pfTimeoutTcpOpening;
 struct agentx_object *pfTimeoutTcpEstablished, *pfTimeoutTcpClosing;
 struct agentx_object *pfTimeoutTcpFinWait, *pfTimeoutTcpClosed;
@@ -1404,6 +1405,8 @@ mib_pflimits(struct agentx_varbind *vb)
                pl.index = PF_LIMIT_TABLES;
        else if (obj == pfLimitMaxTableEntries)
                pl.index = PF_LIMIT_TABLE_ENTRIES;
+       else if (obj == pfLimitAnchors)
+               pl.index = PF_LIMIT_ANCHORS;
        else
                fatal("%s: Unexpected object", __func__);
 
@@ -3614,6 +3617,9 @@ main(int argc, char *argv[])
            AGENTX_OID(PFLIMITMAXTABLES), NULL, 0, 0, mib_pflimits)) == NULL ||
            (pfLimitMaxTableEntries = agentx_object(pfMIBObjects,
            AGENTX_OID(PFLIMITMAXTABLEENTRIES), NULL, 0, 0,
+           mib_pflimits)) == NULL ||
+           (pfLimitAnchors = agentx_object(pfMIBObjects,
+           AGENTX_OID(PFLIMITANCHORS), NULL, 0, 0,
            mib_pflimits)) == NULL)
                fatal("agentx_object");
 
Index: libexec/snmpd/snmpd_metrics/mib.h
===================================================================
RCS file: /cvs/src/libexec/snmpd/snmpd_metrics/mib.h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 mib.h
--- libexec/snmpd/snmpd_metrics/mib.h   1 Sep 2022 14:20:34 -0000       1.1.1.1
+++ libexec/snmpd/snmpd_metrics/mib.h   6 Oct 2022 16:14:32 -0000
@@ -300,6 +300,7 @@
 #define PFLIMITFRAGMENTS               PFLIMITS, 3
 #define PFLIMITMAXTABLES               PFLIMITS, 4
 #define PFLIMITMAXTABLEENTRIES         PFLIMITS, 5
+#define PFLIMITANCHORS                 PFLIMITS, 6
 #define PFTIMEOUTTCPFIRST              PFTIMEOUTS, 1
 #define PFTIMEOUTTCPOPENING            PFTIMEOUTS, 2
 #define PFTIMEOUTTCPESTABLISHED                PFTIMEOUTS, 3

Reply via email to