On Mon, May 18, 2020 at 12:18:47PM +0200, Martijn van Duren wrote:
> Anyone feeling like trimming a little fat?
>
OK denis@
> On Fri, 2020-05-08 at 11:41 +0200, Martijn van Duren wrote:
> > Diff below removes fields from struct oid used by snmpd but not useful
> > for snmp(1). Minus 503LoC and -200kb on installed binary.
> > No functional change intended.
> >
> > OK?
> >
> > martijn@
> >
> > Index: mib.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/snmp/mib.c,v
> > retrieving revision 1.1
> > diff -u -p -r1.1 mib.c
> > --- mib.c 9 Aug 2019 06:17:59 -0000 1.1
> > +++ mib.c 8 May 2020 09:40:59 -0000
> > @@ -27,466 +27,9 @@
> > #include "smi.h"
> >
> > static struct oid mib_tree[] = MIB_TREE;
> > -static struct oid base_mib[] = {
> > - { MIB(mib_2), OID_MIB },
> > - { MIB(sysDescr), OID_RD },
> > - { MIB(sysOID), OID_RD },
> > - { MIB(sysUpTime), OID_RD },
> > - { MIB(sysContact), OID_RW },
> > - { MIB(sysName), OID_RW },
> > - { MIB(sysLocation), OID_RW },
> > - { MIB(sysServices), OID_RS },
> > - { MIB(sysORLastChange), OID_RD },
> > - { MIB(sysORIndex), OID_TRD },
> > - { MIB(sysORID), OID_TRD },
> > - { MIB(sysORDescr), OID_TRD },
> > - { MIB(sysORUpTime), OID_TRD },
> > - { MIB(snmp), OID_MIB },
> > - { MIB(snmpInPkts), OID_RD },
> > - { MIB(snmpOutPkts), OID_RD },
> > - { MIB(snmpInBadVersions), OID_RD },
> > - { MIB(snmpInBadCommunityNames), OID_RD },
> > - { MIB(snmpInBadCommunityUses), OID_RD },
> > - { MIB(snmpInASNParseErrs), OID_RD },
> > - { MIB(snmpInTooBigs), OID_RD },
> > - { MIB(snmpInNoSuchNames), OID_RD },
> > - { MIB(snmpInBadValues), OID_RD },
> > - { MIB(snmpInReadOnlys), OID_RD },
> > - { MIB(snmpInGenErrs), OID_RD },
> > - { MIB(snmpInTotalReqVars), OID_RD },
> > - { MIB(snmpInTotalSetVars), OID_RD },
> > - { MIB(snmpInGetRequests), OID_RD },
> > - { MIB(snmpInGetNexts), OID_RD },
> > - { MIB(snmpInSetRequests), OID_RD },
> > - { MIB(snmpInGetResponses), OID_RD },
> > - { MIB(snmpInTraps), OID_RD },
> > - { MIB(snmpOutTooBigs), OID_RD },
> > - { MIB(snmpOutNoSuchNames), OID_RD },
> > - { MIB(snmpOutBadValues), OID_RD },
> > - { MIB(snmpOutGenErrs), OID_RD },
> > - { MIB(snmpOutGetRequests), OID_RD },
> > - { MIB(snmpOutGetNexts), OID_RD },
> > - { MIB(snmpOutSetRequests), OID_RD },
> > - { MIB(snmpOutGetResponses), OID_RD },
> > - { MIB(snmpOutTraps), OID_RD },
> > - { MIB(snmpEnableAuthenTraps), OID_RW },
> > - { MIB(snmpSilentDrops), OID_RD },
> > - { MIB(snmpProxyDrops), OID_RD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid usm_mib[] = {
> > - { MIB(snmpEngine), OID_MIB },
> > - { MIB(snmpEngineID), OID_RD },
> > - { MIB(snmpEngineBoots), OID_RD },
> > - { MIB(snmpEngineTime), OID_RD },
> > - { MIB(snmpEngineMaxMsgSize), OID_RD },
> > - { MIB(usmStats), OID_MIB },
> > - { MIB(usmStatsUnsupportedSecLevels), OID_RD },
> > - { MIB(usmStatsNotInTimeWindow), OID_RD },
> > - { MIB(usmStatsUnknownUserNames), OID_RD },
> > - { MIB(usmStatsUnknownEngineId), OID_RD },
> > - { MIB(usmStatsWrongDigests), OID_RD },
> > - { MIB(usmStatsDecryptionErrors), OID_RD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid hr_mib[] = {
> > - { MIB(host), OID_MIB },
> > - { MIB(hrSystemUptime), OID_RD },
> > - { MIB(hrSystemDate), OID_RD },
> > - { MIB(hrSystemProcesses), OID_RD },
> > - { MIB(hrSystemMaxProcesses), OID_RD },
> > - { MIB(hrMemorySize), OID_RD },
> > - { MIB(hrStorageIndex), OID_TRD },
> > - { MIB(hrStorageType), OID_TRD },
> > - { MIB(hrStorageDescr), OID_TRD },
> > - { MIB(hrStorageAllocationUnits), OID_TRD },
> > - { MIB(hrStorageSize), OID_TRD },
> > - { MIB(hrStorageUsed), OID_TRD },
> > - { MIB(hrStorageAllocationFailures), OID_TRD },
> > - { MIB(hrDeviceIndex), OID_TRD },
> > - { MIB(hrDeviceType), OID_TRD },
> > - { MIB(hrDeviceDescr), OID_TRD },
> > - { MIB(hrDeviceID), OID_TRD },
> > - { MIB(hrDeviceStatus), OID_TRD },
> > - { MIB(hrDeviceErrors), OID_TRD },
> > - { MIB(hrProcessorFrwID), OID_TRD },
> > - { MIB(hrProcessorLoad), OID_TRD },
> > - { MIB(hrSWRunIndex), OID_TRD },
> > - { MIB(hrSWRunName), OID_TRD },
> > - { MIB(hrSWRunID), OID_TRD },
> > - { MIB(hrSWRunPath), OID_TRD },
> > - { MIB(hrSWRunParameters), OID_TRD },
> > - { MIB(hrSWRunType), OID_TRD },
> > - { MIB(hrSWRunStatus), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid if_mib[] = {
> > - { MIB(ifMIB), OID_MIB },
> > - { MIB(ifName), OID_TRD },
> > - { MIB(ifInMulticastPkts), OID_TRD },
> > - { MIB(ifInBroadcastPkts), OID_TRD },
> > - { MIB(ifOutMulticastPkts), OID_TRD },
> > - { MIB(ifOutBroadcastPkts), OID_TRD },
> > - { MIB(ifHCInOctets), OID_TRD },
> > - { MIB(ifHCInUcastPkts), OID_TRD },
> > - { MIB(ifHCInMulticastPkts), OID_TRD },
> > - { MIB(ifHCInBroadcastPkts), OID_TRD },
> > - { MIB(ifHCOutOctets), OID_TRD },
> > - { MIB(ifHCOutUcastPkts), OID_TRD },
> > - { MIB(ifHCOutMulticastPkts), OID_TRD },
> > - { MIB(ifHCOutBroadcastPkts), OID_TRD },
> > - { MIB(ifLinkUpDownTrapEnable), OID_TRD },
> > - { MIB(ifHighSpeed), OID_TRD },
> > - { MIB(ifPromiscuousMode), OID_TRD },
> > - { MIB(ifConnectorPresent), OID_TRD },
> > - { MIB(ifAlias), OID_TRD },
> > - { MIB(ifCounterDiscontinuityTime), OID_TRD },
> > - { MIB(ifRcvAddressStatus), OID_TRD },
> > - { MIB(ifRcvAddressType), OID_TRD },
> > - { MIB(ifStackLastChange), OID_RD },
> > - { MIB(ifNumber), OID_RD },
> > - { MIB(ifIndex), OID_TRD },
> > - { MIB(ifDescr), OID_TRD },
> > - { MIB(ifType), OID_TRD },
> > - { MIB(ifMtu), OID_TRD },
> > - { MIB(ifSpeed), OID_TRD },
> > - { MIB(ifPhysAddress), OID_TRD },
> > - { MIB(ifAdminStatus), OID_TRD },
> > - { MIB(ifOperStatus), OID_TRD },
> > - { MIB(ifLastChange), OID_TRD },
> > - { MIB(ifInOctets), OID_TRD },
> > - { MIB(ifInUcastPkts), OID_TRD },
> > - { MIB(ifInNUcastPkts), OID_TRD },
> > - { MIB(ifInDiscards), OID_TRD },
> > - { MIB(ifInErrors), OID_TRD },
> > - { MIB(ifInUnknownProtos), OID_TRD },
> > - { MIB(ifOutOctets), OID_TRD },
> > - { MIB(ifOutUcastPkts), OID_TRD },
> > - { MIB(ifOutNUcastPkts), OID_TRD },
> > - { MIB(ifOutDiscards), OID_TRD },
> > - { MIB(ifOutErrors), OID_TRD },
> > - { MIB(ifOutQLen), OID_TRD },
> > - { MIB(ifSpecific), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid ip_mib[] = {
> > - { MIB(ipMIB), OID_MIB },
> > - { MIB(ipForwarding), OID_RD },
> > - { MIB(ipDefaultTTL), OID_RD },
> > - { MIB(ipInReceives), OID_RD },
> > - { MIB(ipInHdrErrors), OID_RD },
> > - { MIB(ipInAddrErrors), OID_RD },
> > - { MIB(ipForwDatagrams), OID_RD },
> > - { MIB(ipInUnknownProtos), OID_RD },
> > - { MIB(ipInDelivers), OID_RD },
> > - { MIB(ipOutRequests), OID_RD },
> > - { MIB(ipOutDiscards), OID_RD },
> > - { MIB(ipOutNoRoutes), OID_RD },
> > - { MIB(ipReasmTimeout), OID_RD },
> > - { MIB(ipReasmReqds), OID_RD },
> > - { MIB(ipReasmOKs), OID_RD },
> > - { MIB(ipReasmFails), OID_RD },
> > - { MIB(ipFragOKs), OID_RD },
> > - { MIB(ipFragFails), OID_RD },
> > - { MIB(ipFragCreates), OID_RD },
> > - { MIB(ipAdEntAddr), OID_TRD },
> > - { MIB(ipAdEntIfIndex), OID_TRD },
> > - { MIB(ipAdEntNetMask), OID_TRD },
> > - { MIB(ipAdEntBcastAddr), OID_TRD },
> > - { MIB(ipAdEntReasmMaxSize), OID_TRD },
> > - { MIB(ipNetToMediaIfIndex), OID_TRD },
> > - { MIB(ipNetToMediaPhysAddress), OID_TRD },
> > - { MIB(ipNetToMediaNetAddress), OID_TRD },
> > - { MIB(ipNetToMediaType), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid ipf_mib[] = {
> > - { MIB(ipfMIB), OID_MIB },
> > - { MIB(ipfInetCidrRouteNumber), OID_RD },
> > - { MIB(ipfRouteEntIfIndex), OID_TRD },
> > - { MIB(ipfRouteEntType), OID_TRD },
> > - { MIB(ipfRouteEntProto), OID_TRD },
> > - { MIB(ipfRouteEntAge), OID_TRD },
> > - { MIB(ipfRouteEntNextHopAS), OID_TRD },
> > - { MIB(ipfRouteEntRouteMetric1), OID_TRD },
> > - { MIB(ipfRouteEntRouteMetric2), OID_TRD },
> > - { MIB(ipfRouteEntRouteMetric3), OID_TRD },
> > - { MIB(ipfRouteEntRouteMetric4), OID_TRD },
> > - { MIB(ipfRouteEntRouteMetric5), OID_TRD },
> > - { MIB(ipfRouteEntStatus), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid bridge_mib[] = {
> > - { MIB(dot1dBridge), OID_MIB },
> > - { MIB(dot1dBaseBridgeAddress) },
> > - { MIB(dot1dBaseNumPorts), OID_RD },
> > - { MIB(dot1dBaseType), OID_RD },
> > - { MIB(dot1dBasePort), OID_TRD },
> > - { MIB(dot1dBasePortIfIndex), OID_TRD },
> > - { MIB(dot1dBasePortCircuit), OID_TRD},
> > - { MIB(dot1dBasePortDelayExceededDiscards), OID_TRD },
> > - { MIB(dot1dBasePortMtuExceededDiscards), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid diskio_mib[] = {
> > - { MIB(ucdDiskIOMIB), OID_MIB },
> > - { MIB(diskIOIndex), OID_TRD },
> > - { MIB(diskIODevice), OID_TRD },
> > - { MIB(diskIONRead), OID_TRD },
> > - { MIB(diskIONWritten), OID_TRD },
> > - { MIB(diskIOReads), OID_TRD },
> > - { MIB(diskIOWrites), OID_TRD },
> > - { MIB(diskIONReadX), OID_TRD },
> > - { MIB(diskIONWrittenX), OID_TRD },
> > - { MIBEND }
> > -};
> > -
> > -static struct oid openbsd_mib[] = {
> > - { MIB(pfMIBObjects), OID_MIB },
> > - { MIB(pfRunning), OID_RD },
> > - { MIB(pfRuntime), OID_RD },
> > - { MIB(pfDebug), OID_RD },
> > - { MIB(pfHostid), OID_RD },
> > - { MIB(pfCntMatch), OID_RD },
> > - { MIB(pfCntBadOffset), OID_RD },
> > - { MIB(pfCntFragment), OID_RD },
> > - { MIB(pfCntShort), OID_RD },
> > - { MIB(pfCntNormalize), OID_RD },
> > - { MIB(pfCntMemory), OID_RD },
> > - { MIB(pfCntTimestamp), OID_RD },
> > - { MIB(pfCntCongestion), OID_RD },
> > - { MIB(pfCntIpOptions), OID_RD },
> > - { MIB(pfCntProtoCksum), OID_RD },
> > - { MIB(pfCntStateMismatch), OID_RD },
> > - { MIB(pfCntStateInsert), OID_RD },
> > - { MIB(pfCntStateLimit), OID_RD },
> > - { MIB(pfCntSrcLimit), OID_RD },
> > - { MIB(pfCntSynproxy), OID_RD },
> > - { MIB(pfCntTranslate), OID_RD },
> > - { MIB(pfCntNoRoute), OID_RD },
> > - { MIB(pfStateCount), OID_RD },
> > - { MIB(pfStateSearches), OID_RD },
> > - { MIB(pfStateInserts), OID_RD },
> > - { MIB(pfStateRemovals), OID_RD },
> > - { MIB(pfLogIfName), OID_RD },
> > - { MIB(pfLogIfIpBytesIn), OID_RD },
> > - { MIB(pfLogIfIpBytesOut), OID_RD },
> > - { MIB(pfLogIfIpPktsInPass), OID_RD },
> > - { MIB(pfLogIfIpPktsInDrop), OID_RD },
> > - { MIB(pfLogIfIpPktsOutPass), OID_RD },
> > - { MIB(pfLogIfIpPktsOutDrop), OID_RD },
> > - { MIB(pfLogIfIp6BytesIn), OID_RD },
> > - { MIB(pfLogIfIp6BytesOut), OID_RD },
> > - { MIB(pfLogIfIp6PktsInPass), OID_RD },
> > - { MIB(pfLogIfIp6PktsInDrop), OID_RD },
> > - { MIB(pfLogIfIp6PktsOutPass), OID_RD },
> > - { MIB(pfLogIfIp6PktsOutDrop), OID_RD },
> > - { MIB(pfSrcTrackCount), OID_RD },
> > - { MIB(pfSrcTrackSearches), OID_RD },
> > - { MIB(pfSrcTrackInserts), OID_RD },
> > - { MIB(pfSrcTrackRemovals), OID_RD },
> > - { MIB(pfLimitStates), OID_RD },
> > - { MIB(pfLimitSourceNodes), OID_RD },
> > - { MIB(pfLimitFragments), OID_RD },
> > - { MIB(pfLimitMaxTables), OID_RD },
> > - { MIB(pfLimitMaxTableEntries), OID_RD },
> > - { MIB(pfTimeoutTcpFirst), OID_RD },
> > - { MIB(pfTimeoutTcpOpening), OID_RD },
> > - { MIB(pfTimeoutTcpEstablished), OID_RD },
> > - { MIB(pfTimeoutTcpClosing), OID_RD },
> > - { MIB(pfTimeoutTcpFinWait), OID_RD },
> > - { MIB(pfTimeoutTcpClosed), OID_RD },
> > - { MIB(pfTimeoutUdpFirst), OID_RD },
> > - { MIB(pfTimeoutUdpSingle), OID_RD },
> > - { MIB(pfTimeoutUdpMultiple), OID_RD },
> > - { MIB(pfTimeoutIcmpFirst), OID_RD },
> > - { MIB(pfTimeoutIcmpError), OID_RD },
> > - { MIB(pfTimeoutOtherFirst), OID_RD },
> > - { MIB(pfTimeoutOtherSingle), OID_RD },
> > - { MIB(pfTimeoutOtherMultiple), OID_RD },
> > - { MIB(pfTimeoutFragment), OID_RD },
> > - { MIB(pfTimeoutInterval), OID_RD },
> > - { MIB(pfTimeoutAdaptiveStart), OID_RD },
> > - { MIB(pfTimeoutAdaptiveEnd), OID_RD },
> > - { MIB(pfTimeoutSrcTrack), OID_RD },
> > - { MIB(pfIfNumber), OID_RD },
> > - { MIB(pfIfIndex), OID_TRD },
> > - { MIB(pfIfDescr), OID_TRD },
> > - { MIB(pfIfType), OID_TRD },
> > - { MIB(pfIfRefs), OID_TRD },
> > - { MIB(pfIfRules), OID_TRD },
> > - { MIB(pfIfIn4PassPkts), OID_TRD },
> > - { MIB(pfIfIn4PassBytes), OID_TRD },
> > - { MIB(pfIfIn4BlockPkts), OID_TRD },
> > - { MIB(pfIfIn4BlockBytes), OID_TRD },
> > - { MIB(pfIfOut4PassPkts), OID_TRD },
> > - { MIB(pfIfOut4PassBytes), OID_TRD },
> > - { MIB(pfIfOut4BlockPkts), OID_TRD },
> > - { MIB(pfIfOut4BlockBytes), OID_TRD },
> > - { MIB(pfIfIn6PassPkts), OID_TRD },
> > - { MIB(pfIfIn6PassBytes), OID_TRD },
> > - { MIB(pfIfIn6BlockPkts), OID_TRD },
> > - { MIB(pfIfIn6BlockBytes), OID_TRD },
> > - { MIB(pfIfOut6PassPkts), OID_TRD },
> > - { MIB(pfIfOut6PassBytes), OID_TRD },
> > - { MIB(pfIfOut6BlockPkts), OID_TRD },
> > - { MIB(pfIfOut6BlockBytes), OID_TRD },
> > - { MIB(pfTblNumber), OID_RD },
> > - { MIB(pfTblIndex), OID_TRD },
> > - { MIB(pfTblName), OID_TRD },
> > - { MIB(pfTblAddresses), OID_TRD },
> > - { MIB(pfTblAnchorRefs), OID_TRD },
> > - { MIB(pfTblRuleRefs), OID_TRD },
> > - { MIB(pfTblEvalsMatch), OID_TRD },
> > - { MIB(pfTblEvalsNoMatch), OID_TRD },
> > - { MIB(pfTblInPassPkts), OID_TRD },
> > - { MIB(pfTblInPassBytes), OID_TRD },
> > - { MIB(pfTblInBlockPkts), OID_TRD },
> > - { MIB(pfTblInBlockBytes), OID_TRD },
> > - { MIB(pfTblInXPassPkts), OID_TRD },
> > - { MIB(pfTblInXPassBytes), OID_TRD },
> > - { MIB(pfTblOutPassPkts), OID_TRD },
> > - { MIB(pfTblOutPassBytes), OID_TRD },
> > - { MIB(pfTblOutBlockPkts), OID_TRD },
> > - { MIB(pfTblOutBlockBytes), OID_TRD },
> > - { MIB(pfTblOutXPassPkts), OID_TRD },
> > - { MIB(pfTblOutXPassBytes), OID_TRD },
> > - { MIB(pfTblStatsCleared), OID_TRD },
> > - { MIB(pfTblInMatchPkts), OID_TRD },
> > - { MIB(pfTblInMatchBytes), OID_TRD },
> > - { MIB(pfTblOutMatchPkts), OID_TRD },
> > - { MIB(pfTblOutMatchBytes), OID_TRD },
> > - { MIB(pfTblAddrTblIndex), OID_TRD },
> > - { MIB(pfTblAddrNet), OID_TRD },
> > - { MIB(pfTblAddrMask), OID_TRD },
> > - { MIB(pfTblAddrCleared), OID_TRD },
> > - { MIB(pfTblAddrInBlockPkts), OID_TRD },
> > - { MIB(pfTblAddrInBlockBytes), OID_TRD },
> > - { MIB(pfTblAddrInPassPkts), OID_TRD },
> > - { MIB(pfTblAddrInPassBytes), OID_TRD },
> > - { MIB(pfTblAddrOutBlockPkts), OID_TRD },
> > - { MIB(pfTblAddrOutBlockBytes), OID_TRD },
> > - { MIB(pfTblAddrOutPassPkts), OID_TRD },
> > - { MIB(pfTblAddrOutPassBytes), OID_TRD },
> > - { MIB(pfTblAddrInMatchPkts), OID_TRD },
> > - { MIB(pfTblAddrInMatchBytes), OID_TRD },
> > - { MIB(pfTblAddrOutMatchPkts), OID_TRD },
> > - { MIB(pfTblAddrOutMatchBytes), OID_TRD },
> > - { MIB(pfLabelNumber), OID_RD },
> > - { MIB(pfLabelIndex), OID_TRD },
> > - { MIB(pfLabelName), OID_TRD },
> > - { MIB(pfLabelEvals), OID_TRD },
> > - { MIB(pfLabelPkts), OID_TRD },
> > - { MIB(pfLabelBytes), OID_TRD },
> > - { MIB(pfLabelInPkts), OID_TRD },
> > - { MIB(pfLabelInBytes), OID_TRD },
> > - { MIB(pfLabelOutPkts), OID_TRD },
> > - { MIB(pfLabelOutBytes), OID_TRD },
> > - { MIB(pfLabelTotalStates), OID_TRD },
> > - { MIB(pfsyncIpPktsRecv), OID_RD },
> > - { MIB(pfsyncIp6PktsRecv), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadInterface), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadTtl), OID_RD },
> > - { MIB(pfsyncPktShorterThanHeader), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadVersion), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadAction), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadLength), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadAuth), OID_RD },
> > - { MIB(pfsyncPktDiscardsForStaleState), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadValues), OID_RD },
> > - { MIB(pfsyncPktDiscardsForBadState), OID_RD },
> > - { MIB(pfsyncIpPktsSent), OID_RD },
> > - { MIB(pfsyncIp6PktsSent), OID_RD },
> > - { MIB(pfsyncNoMemory), OID_RD },
> > - { MIB(pfsyncOutputErrors), OID_RD },
> > - { MIB(sensorsMIBObjects), OID_MIB },
> > - { MIB(sensorNumber), OID_RD },
> > - { MIB(sensorIndex), OID_TRD },
> > - { MIB(sensorDescr), OID_TRD },
> > - { MIB(sensorType), OID_TRD },
> > - { MIB(sensorDevice), OID_TRD },
> > - { MIB(sensorValue), OID_TRD },
> > - { MIB(sensorUnits), OID_TRD },
> > - { MIB(sensorStatus), OID_TRD },
> > - { MIB(carpMIBObjects), OID_MIB },
> > - { MIB(carpAllow), OID_RD },
> > - { MIB(carpPreempt), OID_RD },
> > - { MIB(carpLog), OID_RD },
> > - { MIB(carpIpPktsRecv), OID_RD },
> > - { MIB(carpIp6PktsRecv), OID_RD },
> > - { MIB(carpPktDiscardsBadIface), OID_RD },
> > - { MIB(carpPktDiscardsBadTtl), OID_RD },
> > - { MIB(carpPktShorterThanHdr), OID_RD },
> > - { MIB(carpDiscardsBadCksum), OID_RD },
> > - { MIB(carpDiscardsBadVersion), OID_RD },
> > - { MIB(carpDiscardsTooShort), OID_RD },
> > - { MIB(carpDiscardsBadAuth), OID_RD },
> > - { MIB(carpDiscardsBadVhid), OID_RD },
> > - { MIB(carpDiscardsBadAddrList), OID_RD },
> > - { MIB(carpIpPktsSent), OID_RD },
> > - { MIB(carpIp6PktsSent), OID_RD },
> > - { MIB(carpNoMemory), OID_RD },
> > - { MIB(carpTransitionsToMaster), OID_RD },
> > - { MIB(carpIfNumber), OID_RD },
> > - { MIB(carpIfIndex), OID_TRD },
> > - { MIB(carpIfDescr), OID_TRD },
> > - { MIB(carpIfVhid), OID_TRD },
> > - { MIB(carpIfDev ), OID_TRD },
> > - { MIB(carpIfAdvbase), OID_TRD },
> > - { MIB(carpIfAdvskew), OID_TRD },
> > - { MIB(carpIfState), OID_TRD },
> > - { MIB(carpGroupName), OID_TRD },
> > - { MIB(carpGroupDemote), OID_TRD },
> > - { MIB(memMIBObjects), OID_MIB },
> > - { MIB(memMIBVersion), OID_RD },
> > - { MIB(memIfName), OID_TRD },
> > - { MIB(memIfLiveLocks), OID_TRD },
> > - { MIBEND }
> > -};
> >
> > void
> > mib_init(void)
> > {
> > - /*
> > - * MIB declarations (to register the OID names)
> > - */
> > smi_mibtree(mib_tree);
> > -
> > - /*
> > - * MIB definitions (the implementation)
> > - */
> > -
> > - /* SNMPv2-MIB */
> > - smi_mibtree(base_mib);
> > -
> > - /* SNMP-USER-BASED-SM-MIB */
> > - smi_mibtree(usm_mib);
> > -
> > - /* HOST-RESOURCES-MIB */
> > - smi_mibtree(hr_mib);
> > -
> > - /* IF-MIB */
> > - smi_mibtree(if_mib);
> > -
> > - /* IP-MIB */
> > - smi_mibtree(ip_mib);
> > -
> > - /* IP-FORWARD-MIB */
> > - smi_mibtree(ipf_mib);
> > -
> > - /* BRIDGE-MIB */
> > - smi_mibtree(bridge_mib);
> > -
> > - /* UCD-DISKIO-MIB */
> > - smi_mibtree(diskio_mib);
> > -
> > - /* OPENBSD-MIB */
> > - smi_mibtree(openbsd_mib);
> > }
> > Index: smi.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/snmp/smi.c,v
> > retrieving revision 1.7
> > diff -u -p -r1.7 smi.c
> > --- smi.c 17 Jan 2020 09:52:44 -0000 1.7
> > +++ smi.c 8 May 2020 09:40:59 -0000
> > @@ -537,7 +537,6 @@ smi_oid2string(struct ber_oid *o, char *
> > bzero(buf, len);
> > bzero(&key, sizeof(key));
> > bcopy(o, &key.o_id, sizeof(struct ber_oid));
> > - key.o_flags |= OID_KEY; /* do not match wildcards */
> >
> > for (i = 0; i < o->bo_n; i++) {
> > key.o_oidlen = i + 1;
> > @@ -573,12 +572,6 @@ smi_mibtree(struct oid *oids)
> > continue;
> > }
> > decl = RB_FIND(oidtree, &smi_oidtree, oid);
> > - decl->o_flags = oid->o_flags;
> > - decl->o_get = oid->o_get;
> > - decl->o_set = oid->o_set;
> > - decl->o_table = oid->o_table;
> > - decl->o_val = oid->o_val;
> > - decl->o_data = oid->o_data;
> > }
> > }
> >
> > @@ -593,28 +586,15 @@ smi_findkey(char *name)
> > }
> >
> > struct oid *
> > -smi_foreach(struct oid *oid, u_int flags)
> > +smi_foreach(struct oid *oid)
> > {
> > /*
> > * Traverse the tree of MIBs with the option to check
> > * for specific OID flags.
> > */
> > - if (oid == NULL) {
> > - oid = RB_MIN(oidtree, &smi_oidtree);
> > - if (oid == NULL)
> > - return (NULL);
> > - if (flags == 0 || (oid->o_flags & flags))
> > - return (oid);
> > - }
> > - for (;;) {
> > - oid = RB_NEXT(oidtree, &smi_oidtree, oid);
> > - if (oid == NULL)
> > - break;
> > - if (flags == 0 || (oid->o_flags & flags))
> > - return (oid);
> > - }
> > -
> > - return (oid);
> > + if (oid == NULL)
> > + return RB_MIN(oidtree, &smi_oidtree);
> > + return RB_NEXT(oidtree, &smi_oidtree, oid);
> > }
> >
> > int
> > @@ -626,17 +606,6 @@ smi_oid_cmp(struct oid *a, struct oid *b
> > if (a->o_oid[i] != b->o_oid[i])
> > return (a->o_oid[i] - b->o_oid[i]);
> > }
> > -
> > - /*
> > - * Return success if the matched object is a table
> > - * or a MIB registered by a subagent
> > - * (it will match any sub-elements)
> > - */
> > - if ((b->o_flags & OID_TABLE ||
> > - b->o_flags & OID_REGISTERED) &&
> > - (a->o_flags & OID_KEY) == 0 &&
> > - (a->o_oidlen > b->o_oidlen))
> > - return (0);
> >
> > return (a->o_oidlen - b->o_oidlen);
> > }
> > Index: smi.h
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/snmp/smi.h,v
> > retrieving revision 1.1
> > diff -u -p -r1.1 smi.h
> > --- smi.h 9 Aug 2019 06:17:59 -0000 1.1
> > +++ smi.h 8 May 2020 09:40:59 -0000
> > @@ -61,23 +61,8 @@ struct oid {
> >
> > char *o_name;
> >
> > - u_int o_flags;
> > -
> > - int (*o_get)(struct oid *, struct ber_oid *,
> > - struct ber_element **);
> > - int (*o_set)(struct oid *, struct ber_oid *,
> > - struct ber_element **);
> > - struct ber_oid *(*o_table)(struct oid *, struct ber_oid *,
> > - struct ber_oid *);
> > -
> > - long long o_val;
> > - void *o_data;
> > -
> > - struct ctl_conn *o_session;
> > -
> > RB_ENTRY(oid) o_element;
> > RB_ENTRY(oid) o_keyword;
> > - TAILQ_ENTRY(oid) o_list;
> > };
> >
> > int smi_init(void);
> > @@ -85,7 +70,7 @@ unsigned int smi_application(struct ber_
> > int smi_string2oid(const char *, struct ber_oid *);
> > char *smi_oid2string(struct ber_oid *, char *, size_t, enum
> > smi_oid_lookup);
> > void smi_mibtree(struct oid *);
> > -struct oid *smi_foreach(struct oid *, u_int);
> > +struct oid *smi_foreach(struct oid *);
> > void smi_debug_elements(struct ber_element *);
> > char *smi_print_element(struct ber_element *, int, enum smi_output_string,
> > enum smi_oid_lookup);
> > Index: snmpc.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/snmp/snmpc.c,v
> > retrieving revision 1.22
> > diff -u -p -r1.22 snmpc.c
> > --- snmpc.c 22 Mar 2020 08:59:22 -0000 1.22
> > +++ snmpc.c 8 May 2020 09:40:59 -0000
> > @@ -1034,7 +1034,7 @@ snmpc_mibtree(int argc, char *argv[])
> > struct oid *oid;
> > char buf[BUFSIZ];
> >
> > - for (oid = NULL; (oid = smi_foreach(oid, 0)) != NULL;) {
> > + for (oid = NULL; (oid = smi_foreach(oid)) != NULL;) {
> > smi_oid2string(&oid->o_id, buf, sizeof(buf), oid_lookup);
> > printf("%s\n", buf);
> > }
> >
>