Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Importing custom mibs #67

Open
BusbyActual opened this issue Jul 18, 2017 · 15 comments
Open

Importing custom mibs #67

BusbyActual opened this issue Jul 18, 2017 · 15 comments

Comments

@BusbyActual
Copy link

BusbyActual commented Jul 18, 2017

I'm trying to import some custom MIB files and I'm not getting the output I'd expect. A large amount of the modules aren't being shown. I'm using your SNMP MIB browser template. I found a stacked overflow article on how the MIB files need to be formatted to pysnmp format first. According to the docs this appears to be automated now so that might not be the issue. I'm just trying to get a browser / parser for the Oids and their names.

@etingof
Copy link
Owner

etingof commented Jul 18, 2017

You do not need to prepare MIBs anyhow to let pysnmp consuming them.

Do you get all the compiled MIBs in ~/.pysnmp/mibs/ ?

Do you have MIB compiler piece uncommented?

Have you set up MIB search path properly with all the dependent MIBs present there?

I'd suggest setting up http://mibs.snmplabs.com/asn1/ as one of your MIB sources to make sure the dependencies would be satisfied.

To see what is happenning under the hood I'd enable pysmi debugging and watch its output:

from pysmi import debug
debug.setLogger(debug.Debug('searcher', 'reader', 'compiler'))

@BusbyActual
Copy link
Author

BusbyActual commented Jul 18, 2017

Below is the script template I'm working off of.

  1. Do you get all the compiled MIBs in ~/.pysnmp/mibs/ ?

I'm unable to locate this directory so no.

  1. Do you have MIB compiler piece uncommented?

I didn't initially however I tried logging it and the same result.

  1. Have you set up MIB search path properly with all the dependent MIBs present there?

Not sure here. Trying to find documentation on this one. I'm just sourcing the directory with all the MIBs and they work fine in a MIB browsing app.

  1. Debugging

I can see the steps it's taking to do things more clearly. However, it doesn't like the from arg or the import options provided so I copied some from here
.

from pysnmp.smi import builder, view, compiler, error
from pysnmp import debug

debug.setLogger(debug.Debug('dsp'))

# Create MIB loader/builder
mibBuilder = builder.MibBuilder()

# Optionally attach PySMI MIB compiler (if installed)
print('Attaching MIB compiler...'),
compiler.addMibCompiler(mibBuilder, sources=['/users/admin/desktop/mib/mibfiles/', 'http://mibs.snmplabs.com/asn1/'])
print('done')

# Optionally set an alternative path to compiled MIBs
print('Setting MIB sources...')
mibBuilder.addMibSources(builder.DirMibSource('/users/admin/desktop/mib/mibfiles/'))
print(mibBuilder.getMibSources())
print('done')

print('Loading MIB modules...'),
mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-FRAMEWORK-MIB', 'SNMP-COMMUNITY-MIB', 'IP-MIB')
print('done')

print('Indexing MIB objects...'),
mibView = view.MibViewController(mibBuilder)
print('done')

print('MIB symbol name lookup by OID: '),
oid, label, suffix = mibView.getNodeName((1,3,6,1,4,1))
print(oid, label, suffix)

print('MIB symbol name lookup by label: '),
oid, label, suffix = mibView.getNodeName((1,3,6,1,4,1,'mib-2',1,'sysDescr'))
print(oid, label, suffix)

print('MIB symbol name lookup by symbol description: '),
oid, label, suffix = mibView.getNodeName(('sysDescr',))
oid, label, suffix = mibView.getNodeName(('snmpEngineID',), 'SNMP-FRAMEWORK-MIB')
print(oid, label, suffix)

print('MIB object value pretty print: '),
mibNode, = mibBuilder.importSymbols('SNMP-FRAMEWORK-MIB', 'snmpEngineID')
print(mibNode.syntax.prettyPrint())

print('MIB symbol location lookup by name: '),
modName, symName, suffix = mibView.getNodeLocation(('snmpCommunityEntry',))
print(symName, modName)

print('MIB node lookup by location: '),
rowNode, = mibBuilder.importSymbols(modName, symName)
print(rowNode)

print('Conceptual table index value to oid convertion: '),
oid = rowNode.getInstIdFromIndices('router')
print(oid)
print('Conceptual table index oid to value convertion: '),
print(rowNode.getIndicesFromInstId(oid))

print('MIB tree traversal')
oid, label, suffix = mibView.getFirstNodeName()
while 1:
    try:
        modName, nodeDesc, suffix = mibView.getNodeLocation(oid)
        print('%s::%s == %s' % (modName, nodeDesc, oid))
        oid, label, suffix = mibView.getNextNodeName(oid)
    except error.NoSuchObjectError:
        break

print('Modules traversal')
modName = mibView.getFirstModuleName()
while 1:
    if modName: print(modName)
    try:
        modName = mibView.getNextModuleName(modName)
    except error.SmiError:
        break

@etingof
Copy link
Owner

etingof commented Jul 19, 2017

The exact same code runs for me with the latest pysnmp and its dependencies.

I've a couple of MIBs lended in ~/.pysnmp/mibs/*.py once I run your script.

Can you make sure you are running the latest released pysnmp (which should also pull in its dependencies)?

However, it doesn't like the from arg or the import options provided so I copied some from here

Can you please elaborate on this? What is the exact error message? Is it that MIB compiler (pysmi) is not installed on your system?

@BusbyActual
Copy link
Author

BusbyActual commented Jul 19, 2017

When I tried to check the version / install of pysmi and pysnmp it said the requirements were met. I uninstalled and reinstalled and it works now. Before it was giving an error that it couldn't find debug. I still have the same issue of the Oids not being populated in the output. I'm adding an example MIB

I now have files at ~/.pysnmp/mibs/*.py:

IANAifType-MIB.py IP-MIB.py pycache
IF-MIB.py SNMPv2-MIB.py


python3 test.py
2017-07-19 08:01:32,926 pysmi: running pysmi version 0.1.3
2017-07-19 08:01:32,927 pysmi: debug category 'searcher' enabled
2017-07-19 08:01:32,927 pysmi: debug category 'reader' enabled
2017-07-19 08:01:32,927 pysmi: debug category 'compiler' enabled
Attaching MIB compiler...
2017-07-19 08:01:33,091 pysmi: current MIB source(s): FileReader{"/users/admin/desktop/mib/mibfiles"}, HttpReader{"http://mibs.snmplabs.com:80/asn1/"}
2017-07-19 08:01:33,091 pysmi: current compiled MIBs location(s): StubSearcher
2017-07-19 08:01:33,091 pysmi: current compiled MIBs location(s): StubSearcher, PyPackageSearcher{"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pysnmp/smi/mibs"}, PyPackageSearcher{"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pysnmp/smi/mibs/instances"}, PyPackageSearcher{"pysnmp_mibs"}
2017-07-19 08:01:33,091 pysmi: current MIB borrower(s):
done
Setting MIB sources...
(DirMibSource('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pysnmp/smi/mibs'), DirMibSource('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pysnmp/smi/mibs/instances'), DirMibSource('pysnmp_mibs'), DirMibSource('/Users/admin/.pysnmp/mibs'), DirMibSource('/users/admin/desktop/mib/mibfiles'))
done
Loading MIB modules...
done
Indexing MIB objects...
done
MIB symbol name lookup by OID:
(1, 3, 6, 1, 4, 1) ('iso', 'org', 'dod', 'internet', 'private', 'enterprises') ()
MIB symbol name lookup by label:
(1, 3, 6, 1, 4, 1) ('iso', 'org', 'dod', 'internet', 'private', 'enterprises') ('mib-2', 1, 'sysDescr')
MIB symbol name lookup by symbol description:
(1, 3, 6, 1, 6, 3, 10, 2, 1, 1) ('iso', 'org', 'dod', 'internet', 'snmpV2', 'snmpModules', 'snmpFrameworkMIB', 'snmpFrameworkMIBObjects', 'snmpEngine', 'snmpEngineID') ()
MIB object value pretty print:
0x80004fb80542757362792e6c6f63616cfcd13208
MIB symbol location lookup by name:
snmpCommunityEntry SNMP-COMMUNITY-MIB
MIB node lookup by location:
MibTableRow((1, 3, 6, 1, 6, 3, 18, 1, 1, 1), None)
Conceptual table index value to oid convertion:
(114, 111, 117, 116, 101, 114)
Conceptual table index oid to value convertion:
(SnmpAdminString(b'router', subtypeSpec=ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(), ValueSizeConstraint(0, 65535)), ValueSizeConstraint(0, 255)), ValueSizeConstraint(1, 32))),)
MIB tree traversal
SNMPv2-SMI::itu-t == (0,)
SNMPv2-SMI::zeroDotZero == (0, 0)
SNMPv2-SMI::iso == (1,)
SNMPv2-SMI::org == (1, 3)
SNMPv2-SMI::dod == (1, 3, 6)
SNMPv2-SMI::internet == (1, 3, 6, 1)
SNMPv2-SMI::directory == (1, 3, 6, 1, 1)
SNMPv2-SMI::mgmt == (1, 3, 6, 1, 2)
SNMPv2-SMI::mib-2 == (1, 3, 6, 1, 2, 1)
SNMPv2-MIB::system == (1, 3, 6, 1, 2, 1, 1)
SNMPv2-MIB::sysDescr == (1, 3, 6, 1, 2, 1, 1, 1)
SNMPv2-MIB::sysObjectID == (1, 3, 6, 1, 2, 1, 1, 2)
SNMPv2-MIB::sysUpTime == (1, 3, 6, 1, 2, 1, 1, 3)
SNMPv2-MIB::sysContact == (1, 3, 6, 1, 2, 1, 1, 4)
SNMPv2-MIB::sysName == (1, 3, 6, 1, 2, 1, 1, 5)
SNMPv2-MIB::sysLocation == (1, 3, 6, 1, 2, 1, 1, 6)
SNMPv2-MIB::sysServices == (1, 3, 6, 1, 2, 1, 1, 7)
SNMPv2-MIB::sysORLastChange == (1, 3, 6, 1, 2, 1, 1, 8)
SNMPv2-MIB::sysORTable == (1, 3, 6, 1, 2, 1, 1, 9)
SNMPv2-MIB::sysOREntry == (1, 3, 6, 1, 2, 1, 1, 9, 1)
SNMPv2-MIB::sysORIndex == (1, 3, 6, 1, 2, 1, 1, 9, 1, 1)
SNMPv2-MIB::sysORID == (1, 3, 6, 1, 2, 1, 1, 9, 1, 2)
SNMPv2-MIB::sysORDescr == (1, 3, 6, 1, 2, 1, 1, 9, 1, 3)
SNMPv2-MIB::sysORUpTime == (1, 3, 6, 1, 2, 1, 1, 9, 1, 4)
IF-MIB::interfaces == (1, 3, 6, 1, 2, 1, 2)
IF-MIB::ifNumber == (1, 3, 6, 1, 2, 1, 2, 1)
IF-MIB::ifTable == (1, 3, 6, 1, 2, 1, 2, 2)
IF-MIB::ifEntry == (1, 3, 6, 1, 2, 1, 2, 2, 1)
IF-MIB::ifIndex == (1, 3, 6, 1, 2, 1, 2, 2, 1, 1)
IF-MIB::ifDescr == (1, 3, 6, 1, 2, 1, 2, 2, 1, 2)
IF-MIB::ifType == (1, 3, 6, 1, 2, 1, 2, 2, 1, 3)
IF-MIB::ifMtu == (1, 3, 6, 1, 2, 1, 2, 2, 1, 4)
IF-MIB::ifSpeed == (1, 3, 6, 1, 2, 1, 2, 2, 1, 5)
IF-MIB::ifPhysAddress == (1, 3, 6, 1, 2, 1, 2, 2, 1, 6)
IF-MIB::ifAdminStatus == (1, 3, 6, 1, 2, 1, 2, 2, 1, 7)
IF-MIB::ifOperStatus == (1, 3, 6, 1, 2, 1, 2, 2, 1, 8)
IF-MIB::ifLastChange == (1, 3, 6, 1, 2, 1, 2, 2, 1, 9)
IF-MIB::ifInOctets == (1, 3, 6, 1, 2, 1, 2, 2, 1, 10)
IF-MIB::ifInUcastPkts == (1, 3, 6, 1, 2, 1, 2, 2, 1, 11)
IF-MIB::ifInNUcastPkts == (1, 3, 6, 1, 2, 1, 2, 2, 1, 12)
IF-MIB::ifInDiscards == (1, 3, 6, 1, 2, 1, 2, 2, 1, 13)
IF-MIB::ifInErrors == (1, 3, 6, 1, 2, 1, 2, 2, 1, 14)
IF-MIB::ifInUnknownProtos == (1, 3, 6, 1, 2, 1, 2, 2, 1, 15)
IF-MIB::ifOutOctets == (1, 3, 6, 1, 2, 1, 2, 2, 1, 16)
IF-MIB::ifOutUcastPkts == (1, 3, 6, 1, 2, 1, 2, 2, 1, 17)
IF-MIB::ifOutNUcastPkts == (1, 3, 6, 1, 2, 1, 2, 2, 1, 18)
IF-MIB::ifOutDiscards == (1, 3, 6, 1, 2, 1, 2, 2, 1, 19)
IF-MIB::ifOutErrors == (1, 3, 6, 1, 2, 1, 2, 2, 1, 20)
IF-MIB::ifOutQLen == (1, 3, 6, 1, 2, 1, 2, 2, 1, 21)
IF-MIB::ifSpecific == (1, 3, 6, 1, 2, 1, 2, 2, 1, 22)
IP-MIB::ip == (1, 3, 6, 1, 2, 1, 4)
IP-MIB::ipForwarding == (1, 3, 6, 1, 2, 1, 4, 1)
IP-MIB::ipDefaultTTL == (1, 3, 6, 1, 2, 1, 4, 2)
IP-MIB::ipInReceives == (1, 3, 6, 1, 2, 1, 4, 3)
IP-MIB::ipInHdrErrors == (1, 3, 6, 1, 2, 1, 4, 4)
IP-MIB::ipInAddrErrors == (1, 3, 6, 1, 2, 1, 4, 5)
IP-MIB::ipForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 6)
IP-MIB::ipInUnknownProtos == (1, 3, 6, 1, 2, 1, 4, 7)
IP-MIB::ipInDiscards == (1, 3, 6, 1, 2, 1, 4, 8)
IP-MIB::ipInDelivers == (1, 3, 6, 1, 2, 1, 4, 9)
IP-MIB::ipOutRequests == (1, 3, 6, 1, 2, 1, 4, 10)
IP-MIB::ipOutDiscards == (1, 3, 6, 1, 2, 1, 4, 11)
IP-MIB::ipOutNoRoutes == (1, 3, 6, 1, 2, 1, 4, 12)
IP-MIB::ipReasmTimeout == (1, 3, 6, 1, 2, 1, 4, 13)
IP-MIB::ipReasmReqds == (1, 3, 6, 1, 2, 1, 4, 14)
IP-MIB::ipReasmOKs == (1, 3, 6, 1, 2, 1, 4, 15)
IP-MIB::ipReasmFails == (1, 3, 6, 1, 2, 1, 4, 16)
IP-MIB::ipFragOKs == (1, 3, 6, 1, 2, 1, 4, 17)
IP-MIB::ipFragFails == (1, 3, 6, 1, 2, 1, 4, 18)
IP-MIB::ipFragCreates == (1, 3, 6, 1, 2, 1, 4, 19)
IP-MIB::ipAddrTable == (1, 3, 6, 1, 2, 1, 4, 20)
IP-MIB::ipAddrEntry == (1, 3, 6, 1, 2, 1, 4, 20, 1)
IP-MIB::ipAdEntAddr == (1, 3, 6, 1, 2, 1, 4, 20, 1, 1)
IP-MIB::ipAdEntIfIndex == (1, 3, 6, 1, 2, 1, 4, 20, 1, 2)
IP-MIB::ipAdEntNetMask == (1, 3, 6, 1, 2, 1, 4, 20, 1, 3)
IP-MIB::ipAdEntBcastAddr == (1, 3, 6, 1, 2, 1, 4, 20, 1, 4)
IP-MIB::ipAdEntReasmMaxSize == (1, 3, 6, 1, 2, 1, 4, 20, 1, 5)
IP-MIB::ipNetToMediaTable == (1, 3, 6, 1, 2, 1, 4, 22)
IP-MIB::ipNetToMediaEntry == (1, 3, 6, 1, 2, 1, 4, 22, 1)
IP-MIB::ipNetToMediaIfIndex == (1, 3, 6, 1, 2, 1, 4, 22, 1, 1)
IP-MIB::ipNetToMediaPhysAddress == (1, 3, 6, 1, 2, 1, 4, 22, 1, 2)
IP-MIB::ipNetToMediaNetAddress == (1, 3, 6, 1, 2, 1, 4, 22, 1, 3)
IP-MIB::ipNetToMediaType == (1, 3, 6, 1, 2, 1, 4, 22, 1, 4)
IP-MIB::ipRoutingDiscards == (1, 3, 6, 1, 2, 1, 4, 23)
IP-MIB::ipv6IpForwarding == (1, 3, 6, 1, 2, 1, 4, 25)
IP-MIB::ipv6IpDefaultHopLimit == (1, 3, 6, 1, 2, 1, 4, 26)
IP-MIB::ipv4InterfaceTableLastChange == (1, 3, 6, 1, 2, 1, 4, 27)
IP-MIB::ipv4InterfaceTable == (1, 3, 6, 1, 2, 1, 4, 28)
IP-MIB::ipv4InterfaceEntry == (1, 3, 6, 1, 2, 1, 4, 28, 1)
IP-MIB::ipv4InterfaceIfIndex == (1, 3, 6, 1, 2, 1, 4, 28, 1, 1)
IP-MIB::ipv4InterfaceReasmMaxSize == (1, 3, 6, 1, 2, 1, 4, 28, 1, 2)
IP-MIB::ipv4InterfaceEnableStatus == (1, 3, 6, 1, 2, 1, 4, 28, 1, 3)
IP-MIB::ipv4InterfaceRetransmitTime == (1, 3, 6, 1, 2, 1, 4, 28, 1, 4)
IP-MIB::ipv6InterfaceTableLastChange == (1, 3, 6, 1, 2, 1, 4, 29)
IP-MIB::ipv6InterfaceTable == (1, 3, 6, 1, 2, 1, 4, 30)
IP-MIB::ipv6InterfaceEntry == (1, 3, 6, 1, 2, 1, 4, 30, 1)
IP-MIB::ipv6InterfaceIfIndex == (1, 3, 6, 1, 2, 1, 4, 30, 1, 1)
IP-MIB::ipv6InterfaceReasmMaxSize == (1, 3, 6, 1, 2, 1, 4, 30, 1, 2)
IP-MIB::ipv6InterfaceIdentifier == (1, 3, 6, 1, 2, 1, 4, 30, 1, 3)
IP-MIB::ipv6InterfaceEnableStatus == (1, 3, 6, 1, 2, 1, 4, 30, 1, 5)
IP-MIB::ipv6InterfaceReachableTime == (1, 3, 6, 1, 2, 1, 4, 30, 1, 6)
IP-MIB::ipv6InterfaceRetransmitTime == (1, 3, 6, 1, 2, 1, 4, 30, 1, 7)
IP-MIB::ipv6InterfaceForwarding == (1, 3, 6, 1, 2, 1, 4, 30, 1, 8)
IP-MIB::ipTrafficStats == (1, 3, 6, 1, 2, 1, 4, 31)
IP-MIB::ipSystemStatsTable == (1, 3, 6, 1, 2, 1, 4, 31, 1)
IP-MIB::ipSystemStatsEntry == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1)
IP-MIB::ipSystemStatsIPVersion == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 1)
IP-MIB::ipSystemStatsInReceives == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 3)
IP-MIB::ipSystemStatsHCInReceives == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 4)
IP-MIB::ipSystemStatsInOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 5)
IP-MIB::ipSystemStatsHCInOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 6)
IP-MIB::ipSystemStatsInHdrErrors == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 7)
IP-MIB::ipSystemStatsInNoRoutes == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 8)
IP-MIB::ipSystemStatsInAddrErrors == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 9)
IP-MIB::ipSystemStatsInUnknownProtos == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 10)
IP-MIB::ipSystemStatsInTruncatedPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 11)
IP-MIB::ipSystemStatsInForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 12)
IP-MIB::ipSystemStatsHCInForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 13)
IP-MIB::ipSystemStatsReasmReqds == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 14)
IP-MIB::ipSystemStatsReasmOKs == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 15)
IP-MIB::ipSystemStatsReasmFails == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 16)
IP-MIB::ipSystemStatsInDiscards == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 17)
IP-MIB::ipSystemStatsInDelivers == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 18)
IP-MIB::ipSystemStatsHCInDelivers == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 19)
IP-MIB::ipSystemStatsOutRequests == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 20)
IP-MIB::ipSystemStatsHCOutRequests == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 21)
IP-MIB::ipSystemStatsOutNoRoutes == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 22)
IP-MIB::ipSystemStatsOutForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 23)
IP-MIB::ipSystemStatsHCOutForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 24)
IP-MIB::ipSystemStatsOutDiscards == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 25)
IP-MIB::ipSystemStatsOutFragReqds == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 26)
IP-MIB::ipSystemStatsOutFragOKs == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 27)
IP-MIB::ipSystemStatsOutFragFails == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 28)
IP-MIB::ipSystemStatsOutFragCreates == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 29)
IP-MIB::ipSystemStatsOutTransmits == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 30)
IP-MIB::ipSystemStatsHCOutTransmits == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 31)
IP-MIB::ipSystemStatsOutOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 32)
IP-MIB::ipSystemStatsHCOutOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 33)
IP-MIB::ipSystemStatsInMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 34)
IP-MIB::ipSystemStatsHCInMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 35)
IP-MIB::ipSystemStatsInMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 36)
IP-MIB::ipSystemStatsHCInMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 37)
IP-MIB::ipSystemStatsOutMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 38)
IP-MIB::ipSystemStatsHCOutMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 39)
IP-MIB::ipSystemStatsOutMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 40)
IP-MIB::ipSystemStatsHCOutMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 41)
IP-MIB::ipSystemStatsInBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 42)
IP-MIB::ipSystemStatsHCInBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 43)
IP-MIB::ipSystemStatsOutBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 44)
IP-MIB::ipSystemStatsHCOutBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 45)
IP-MIB::ipSystemStatsDiscontinuityTime == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 46)
IP-MIB::ipSystemStatsRefreshRate == (1, 3, 6, 1, 2, 1, 4, 31, 1, 1, 47)
IP-MIB::ipIfStatsTableLastChange == (1, 3, 6, 1, 2, 1, 4, 31, 2)
IP-MIB::ipIfStatsTable == (1, 3, 6, 1, 2, 1, 4, 31, 3)
IP-MIB::ipIfStatsEntry == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1)
IP-MIB::ipIfStatsIPVersion == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 1)
IP-MIB::ipIfStatsIfIndex == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 2)
IP-MIB::ipIfStatsInReceives == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 3)
IP-MIB::ipIfStatsHCInReceives == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 4)
IP-MIB::ipIfStatsInOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 5)
IP-MIB::ipIfStatsHCInOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 6)
IP-MIB::ipIfStatsInHdrErrors == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 7)
IP-MIB::ipIfStatsInNoRoutes == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 8)
IP-MIB::ipIfStatsInAddrErrors == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 9)
IP-MIB::ipIfStatsInUnknownProtos == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 10)
IP-MIB::ipIfStatsInTruncatedPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 11)
IP-MIB::ipIfStatsInForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 12)
IP-MIB::ipIfStatsHCInForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 13)
IP-MIB::ipIfStatsReasmReqds == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 14)
IP-MIB::ipIfStatsReasmOKs == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 15)
IP-MIB::ipIfStatsReasmFails == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 16)
IP-MIB::ipIfStatsInDiscards == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 17)
IP-MIB::ipIfStatsInDelivers == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 18)
IP-MIB::ipIfStatsHCInDelivers == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 19)
IP-MIB::ipIfStatsOutRequests == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 20)
IP-MIB::ipIfStatsHCOutRequests == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 21)
IP-MIB::ipIfStatsOutForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 23)
IP-MIB::ipIfStatsHCOutForwDatagrams == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 24)
IP-MIB::ipIfStatsOutDiscards == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 25)
IP-MIB::ipIfStatsOutFragReqds == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 26)
IP-MIB::ipIfStatsOutFragOKs == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 27)
IP-MIB::ipIfStatsOutFragFails == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 28)
IP-MIB::ipIfStatsOutFragCreates == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 29)
IP-MIB::ipIfStatsOutTransmits == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 30)
IP-MIB::ipIfStatsHCOutTransmits == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 31)
IP-MIB::ipIfStatsOutOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 32)
IP-MIB::ipIfStatsHCOutOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 33)
IP-MIB::ipIfStatsInMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 34)
IP-MIB::ipIfStatsHCInMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 35)
IP-MIB::ipIfStatsInMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 36)
IP-MIB::ipIfStatsHCInMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 37)
IP-MIB::ipIfStatsOutMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 38)
IP-MIB::ipIfStatsHCOutMcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 39)
IP-MIB::ipIfStatsOutMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 40)
IP-MIB::ipIfStatsHCOutMcastOctets == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 41)
IP-MIB::ipIfStatsInBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 42)
IP-MIB::ipIfStatsHCInBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 43)
IP-MIB::ipIfStatsOutBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 44)
IP-MIB::ipIfStatsHCOutBcastPkts == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 45)
IP-MIB::ipIfStatsDiscontinuityTime == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 46)
IP-MIB::ipIfStatsRefreshRate == (1, 3, 6, 1, 2, 1, 4, 31, 3, 1, 47)
IP-MIB::ipAddressPrefixTable == (1, 3, 6, 1, 2, 1, 4, 32)
IP-MIB::ipAddressPrefixEntry == (1, 3, 6, 1, 2, 1, 4, 32, 1)
IP-MIB::ipAddressPrefixIfIndex == (1, 3, 6, 1, 2, 1, 4, 32, 1, 1)
IP-MIB::ipAddressPrefixType == (1, 3, 6, 1, 2, 1, 4, 32, 1, 2)
IP-MIB::ipAddressPrefixPrefix == (1, 3, 6, 1, 2, 1, 4, 32, 1, 3)
IP-MIB::ipAddressPrefixLength == (1, 3, 6, 1, 2, 1, 4, 32, 1, 4)
IP-MIB::ipAddressPrefixOrigin == (1, 3, 6, 1, 2, 1, 4, 32, 1, 5)
IP-MIB::ipAddressPrefixOnLinkFlag == (1, 3, 6, 1, 2, 1, 4, 32, 1, 6)
IP-MIB::ipAddressPrefixAutonomousFlag == (1, 3, 6, 1, 2, 1, 4, 32, 1, 7)
IP-MIB::ipAddressPrefixAdvPreferredLifetime == (1, 3, 6, 1, 2, 1, 4, 32, 1, 8)
IP-MIB::ipAddressPrefixAdvValidLifetime == (1, 3, 6, 1, 2, 1, 4, 32, 1, 9)
IP-MIB::ipAddressSpinLock == (1, 3, 6, 1, 2, 1, 4, 33)
IP-MIB::ipAddressTable == (1, 3, 6, 1, 2, 1, 4, 34)
IP-MIB::ipAddressEntry == (1, 3, 6, 1, 2, 1, 4, 34, 1)
IP-MIB::ipAddressAddrType == (1, 3, 6, 1, 2, 1, 4, 34, 1, 1)
IP-MIB::ipAddressAddr == (1, 3, 6, 1, 2, 1, 4, 34, 1, 2)
IP-MIB::ipAddressIfIndex == (1, 3, 6, 1, 2, 1, 4, 34, 1, 3)
IP-MIB::ipAddressType == (1, 3, 6, 1, 2, 1, 4, 34, 1, 4)
IP-MIB::ipAddressPrefix == (1, 3, 6, 1, 2, 1, 4, 34, 1, 5)
IP-MIB::ipAddressOrigin == (1, 3, 6, 1, 2, 1, 4, 34, 1, 6)
IP-MIB::ipAddressStatus == (1, 3, 6, 1, 2, 1, 4, 34, 1, 7)
IP-MIB::ipAddressCreated == (1, 3, 6, 1, 2, 1, 4, 34, 1, 8)
IP-MIB::ipAddressLastChanged == (1, 3, 6, 1, 2, 1, 4, 34, 1, 9)
IP-MIB::ipAddressRowStatus == (1, 3, 6, 1, 2, 1, 4, 34, 1, 10)
IP-MIB::ipAddressStorageType == (1, 3, 6, 1, 2, 1, 4, 34, 1, 11)
IP-MIB::ipNetToPhysicalTable == (1, 3, 6, 1, 2, 1, 4, 35)
IP-MIB::ipNetToPhysicalEntry == (1, 3, 6, 1, 2, 1, 4, 35, 1)
IP-MIB::ipNetToPhysicalIfIndex == (1, 3, 6, 1, 2, 1, 4, 35, 1, 1)
IP-MIB::ipNetToPhysicalNetAddressType == (1, 3, 6, 1, 2, 1, 4, 35, 1, 2)
IP-MIB::ipNetToPhysicalNetAddress == (1, 3, 6, 1, 2, 1, 4, 35, 1, 3)
IP-MIB::ipNetToPhysicalPhysAddress == (1, 3, 6, 1, 2, 1, 4, 35, 1, 4)
IP-MIB::ipNetToPhysicalLastUpdated == (1, 3, 6, 1, 2, 1, 4, 35, 1, 5)
IP-MIB::ipNetToPhysicalType == (1, 3, 6, 1, 2, 1, 4, 35, 1, 6)
IP-MIB::ipNetToPhysicalState == (1, 3, 6, 1, 2, 1, 4, 35, 1, 7)
IP-MIB::ipNetToPhysicalRowStatus == (1, 3, 6, 1, 2, 1, 4, 35, 1, 8)
IP-MIB::ipv6ScopeZoneIndexTable == (1, 3, 6, 1, 2, 1, 4, 36)
IP-MIB::ipv6ScopeZoneIndexEntry == (1, 3, 6, 1, 2, 1, 4, 36, 1)
IP-MIB::ipv6ScopeZoneIndexIfIndex == (1, 3, 6, 1, 2, 1, 4, 36, 1, 1)
IP-MIB::ipv6ScopeZoneIndexLinkLocal == (1, 3, 6, 1, 2, 1, 4, 36, 1, 2)
IP-MIB::ipv6ScopeZoneIndex3 == (1, 3, 6, 1, 2, 1, 4, 36, 1, 3)
IP-MIB::ipv6ScopeZoneIndexAdminLocal == (1, 3, 6, 1, 2, 1, 4, 36, 1, 4)
IP-MIB::ipv6ScopeZoneIndexSiteLocal == (1, 3, 6, 1, 2, 1, 4, 36, 1, 5)
IP-MIB::ipv6ScopeZoneIndex6 == (1, 3, 6, 1, 2, 1, 4, 36, 1, 6)
IP-MIB::ipv6ScopeZoneIndex7 == (1, 3, 6, 1, 2, 1, 4, 36, 1, 7)
IP-MIB::ipv6ScopeZoneIndexOrganizationLocal == (1, 3, 6, 1, 2, 1, 4, 36, 1, 8)
IP-MIB::ipv6ScopeZoneIndex9 == (1, 3, 6, 1, 2, 1, 4, 36, 1, 9)
IP-MIB::ipv6ScopeZoneIndexA == (1, 3, 6, 1, 2, 1, 4, 36, 1, 10)
IP-MIB::ipv6ScopeZoneIndexB == (1, 3, 6, 1, 2, 1, 4, 36, 1, 11)
IP-MIB::ipv6ScopeZoneIndexC == (1, 3, 6, 1, 2, 1, 4, 36, 1, 12)
IP-MIB::ipv6ScopeZoneIndexD == (1, 3, 6, 1, 2, 1, 4, 36, 1, 13)
IP-MIB::ipDefaultRouterTable == (1, 3, 6, 1, 2, 1, 4, 37)
IP-MIB::ipDefaultRouterEntry == (1, 3, 6, 1, 2, 1, 4, 37, 1)
IP-MIB::ipDefaultRouterAddressType == (1, 3, 6, 1, 2, 1, 4, 37, 1, 1)
IP-MIB::ipDefaultRouterAddress == (1, 3, 6, 1, 2, 1, 4, 37, 1, 2)
IP-MIB::ipDefaultRouterIfIndex == (1, 3, 6, 1, 2, 1, 4, 37, 1, 3)
IP-MIB::ipDefaultRouterLifetime == (1, 3, 6, 1, 2, 1, 4, 37, 1, 4)
IP-MIB::ipDefaultRouterPreference == (1, 3, 6, 1, 2, 1, 4, 37, 1, 5)
IP-MIB::ipv6RouterAdvertSpinLock == (1, 3, 6, 1, 2, 1, 4, 38)
IP-MIB::ipv6RouterAdvertTable == (1, 3, 6, 1, 2, 1, 4, 39)
IP-MIB::ipv6RouterAdvertEntry == (1, 3, 6, 1, 2, 1, 4, 39, 1)
IP-MIB::ipv6RouterAdvertIfIndex == (1, 3, 6, 1, 2, 1, 4, 39, 1, 1)
IP-MIB::ipv6RouterAdvertSendAdverts == (1, 3, 6, 1, 2, 1, 4, 39, 1, 2)
IP-MIB::ipv6RouterAdvertMaxInterval == (1, 3, 6, 1, 2, 1, 4, 39, 1, 3)
IP-MIB::ipv6RouterAdvertMinInterval == (1, 3, 6, 1, 2, 1, 4, 39, 1, 4)
IP-MIB::ipv6RouterAdvertManagedFlag == (1, 3, 6, 1, 2, 1, 4, 39, 1, 5)
IP-MIB::ipv6RouterAdvertOtherConfigFlag == (1, 3, 6, 1, 2, 1, 4, 39, 1, 6)
IP-MIB::ipv6RouterAdvertLinkMTU == (1, 3, 6, 1, 2, 1, 4, 39, 1, 7)
IP-MIB::ipv6RouterAdvertReachableTime == (1, 3, 6, 1, 2, 1, 4, 39, 1, 8)
IP-MIB::ipv6RouterAdvertRetransmitTime == (1, 3, 6, 1, 2, 1, 4, 39, 1, 9)
IP-MIB::ipv6RouterAdvertCurHopLimit == (1, 3, 6, 1, 2, 1, 4, 39, 1, 10)
IP-MIB::ipv6RouterAdvertDefaultLifetime == (1, 3, 6, 1, 2, 1, 4, 39, 1, 11)
IP-MIB::ipv6RouterAdvertRowStatus == (1, 3, 6, 1, 2, 1, 4, 39, 1, 12)
IP-MIB::icmp == (1, 3, 6, 1, 2, 1, 5)
IP-MIB::icmpInMsgs == (1, 3, 6, 1, 2, 1, 5, 1)
IP-MIB::icmpInErrors == (1, 3, 6, 1, 2, 1, 5, 2)
IP-MIB::icmpInDestUnreachs == (1, 3, 6, 1, 2, 1, 5, 3)
IP-MIB::icmpInTimeExcds == (1, 3, 6, 1, 2, 1, 5, 4)
IP-MIB::icmpInParmProbs == (1, 3, 6, 1, 2, 1, 5, 5)
IP-MIB::icmpInSrcQuenchs == (1, 3, 6, 1, 2, 1, 5, 6)
IP-MIB::icmpInRedirects == (1, 3, 6, 1, 2, 1, 5, 7)
IP-MIB::icmpInEchos == (1, 3, 6, 1, 2, 1, 5, 8)
IP-MIB::icmpInEchoReps == (1, 3, 6, 1, 2, 1, 5, 9)
IP-MIB::icmpInTimestamps == (1, 3, 6, 1, 2, 1, 5, 10)
IP-MIB::icmpInTimestampReps == (1, 3, 6, 1, 2, 1, 5, 11)
IP-MIB::icmpInAddrMasks == (1, 3, 6, 1, 2, 1, 5, 12)
IP-MIB::icmpInAddrMaskReps == (1, 3, 6, 1, 2, 1, 5, 13)
IP-MIB::icmpOutMsgs == (1, 3, 6, 1, 2, 1, 5, 14)
IP-MIB::icmpOutErrors == (1, 3, 6, 1, 2, 1, 5, 15)
IP-MIB::icmpOutDestUnreachs == (1, 3, 6, 1, 2, 1, 5, 16)
IP-MIB::icmpOutTimeExcds == (1, 3, 6, 1, 2, 1, 5, 17)
IP-MIB::icmpOutParmProbs == (1, 3, 6, 1, 2, 1, 5, 18)
IP-MIB::icmpOutSrcQuenchs == (1, 3, 6, 1, 2, 1, 5, 19)
IP-MIB::icmpOutRedirects == (1, 3, 6, 1, 2, 1, 5, 20)
IP-MIB::icmpOutEchos == (1, 3, 6, 1, 2, 1, 5, 21)
IP-MIB::icmpOutEchoReps == (1, 3, 6, 1, 2, 1, 5, 22)
IP-MIB::icmpOutTimestamps == (1, 3, 6, 1, 2, 1, 5, 23)
IP-MIB::icmpOutTimestampReps == (1, 3, 6, 1, 2, 1, 5, 24)
IP-MIB::icmpOutAddrMasks == (1, 3, 6, 1, 2, 1, 5, 25)
IP-MIB::icmpOutAddrMaskReps == (1, 3, 6, 1, 2, 1, 5, 26)
IP-MIB::icmpStatsTable == (1, 3, 6, 1, 2, 1, 5, 29)
IP-MIB::icmpStatsEntry == (1, 3, 6, 1, 2, 1, 5, 29, 1)
IP-MIB::icmpStatsIPVersion == (1, 3, 6, 1, 2, 1, 5, 29, 1, 1)
IP-MIB::icmpStatsInMsgs == (1, 3, 6, 1, 2, 1, 5, 29, 1, 2)
IP-MIB::icmpStatsInErrors == (1, 3, 6, 1, 2, 1, 5, 29, 1, 3)
IP-MIB::icmpStatsOutMsgs == (1, 3, 6, 1, 2, 1, 5, 29, 1, 4)
IP-MIB::icmpStatsOutErrors == (1, 3, 6, 1, 2, 1, 5, 29, 1, 5)
IP-MIB::icmpMsgStatsTable == (1, 3, 6, 1, 2, 1, 5, 30)
IP-MIB::icmpMsgStatsEntry == (1, 3, 6, 1, 2, 1, 5, 30, 1)
IP-MIB::icmpMsgStatsIPVersion == (1, 3, 6, 1, 2, 1, 5, 30, 1, 1)
IP-MIB::icmpMsgStatsType == (1, 3, 6, 1, 2, 1, 5, 30, 1, 2)
IP-MIB::icmpMsgStatsInPkts == (1, 3, 6, 1, 2, 1, 5, 30, 1, 3)
IP-MIB::icmpMsgStatsOutPkts == (1, 3, 6, 1, 2, 1, 5, 30, 1, 4)
SNMPv2-SMI::transmission == (1, 3, 6, 1, 2, 1, 10)
SNMPv2-MIB::snmp == (1, 3, 6, 1, 2, 1, 11)
SNMPv2-MIB::snmpInPkts == (1, 3, 6, 1, 2, 1, 11, 1)
SNMPv2-MIB::snmpOutPkts == (1, 3, 6, 1, 2, 1, 11, 2)
SNMPv2-MIB::snmpInBadVersions == (1, 3, 6, 1, 2, 1, 11, 3)
SNMPv2-MIB::snmpInBadCommunityNames == (1, 3, 6, 1, 2, 1, 11, 4)
SNMPv2-MIB::snmpInBadCommunityUses == (1, 3, 6, 1, 2, 1, 11, 5)
SNMPv2-MIB::snmpInASNParseErrs == (1, 3, 6, 1, 2, 1, 11, 6)
SNMPv2-MIB::snmpInTooBigs == (1, 3, 6, 1, 2, 1, 11, 8)
SNMPv2-MIB::snmpInNoSuchNames == (1, 3, 6, 1, 2, 1, 11, 9)
SNMPv2-MIB::snmpInBadValues == (1, 3, 6, 1, 2, 1, 11, 10)
SNMPv2-MIB::snmpInReadOnlys == (1, 3, 6, 1, 2, 1, 11, 11)
SNMPv2-MIB::snmpInGenErrs == (1, 3, 6, 1, 2, 1, 11, 12)
SNMPv2-MIB::snmpInTotalReqVars == (1, 3, 6, 1, 2, 1, 11, 13)
SNMPv2-MIB::snmpInTotalSetVars == (1, 3, 6, 1, 2, 1, 11, 14)
SNMPv2-MIB::snmpInGetRequests == (1, 3, 6, 1, 2, 1, 11, 15)
SNMPv2-MIB::snmpInGetNexts == (1, 3, 6, 1, 2, 1, 11, 16)
SNMPv2-MIB::snmpInSetRequests == (1, 3, 6, 1, 2, 1, 11, 17)
SNMPv2-MIB::snmpInGetResponses == (1, 3, 6, 1, 2, 1, 11, 18)
SNMPv2-MIB::snmpInTraps == (1, 3, 6, 1, 2, 1, 11, 19)
SNMPv2-MIB::snmpOutTooBigs == (1, 3, 6, 1, 2, 1, 11, 20)
SNMPv2-MIB::snmpOutNoSuchNames == (1, 3, 6, 1, 2, 1, 11, 21)
SNMPv2-MIB::snmpOutBadValues == (1, 3, 6, 1, 2, 1, 11, 22)
SNMPv2-MIB::snmpOutGenErrs == (1, 3, 6, 1, 2, 1, 11, 24)
SNMPv2-MIB::snmpOutGetRequests == (1, 3, 6, 1, 2, 1, 11, 25)
SNMPv2-MIB::snmpOutGetNexts == (1, 3, 6, 1, 2, 1, 11, 26)
SNMPv2-MIB::snmpOutSetRequests == (1, 3, 6, 1, 2, 1, 11, 27)
SNMPv2-MIB::snmpOutGetResponses == (1, 3, 6, 1, 2, 1, 11, 28)
SNMPv2-MIB::snmpOutTraps == (1, 3, 6, 1, 2, 1, 11, 29)
SNMPv2-MIB::snmpEnableAuthenTraps == (1, 3, 6, 1, 2, 1, 11, 30)
SNMPv2-MIB::snmpSilentDrops == (1, 3, 6, 1, 2, 1, 11, 31)
SNMPv2-MIB::snmpProxyDrops == (1, 3, 6, 1, 2, 1, 11, 32)
IANAifType-MIB::ianaifType == (1, 3, 6, 1, 2, 1, 30)
IF-MIB::ifMIB == (1, 3, 6, 1, 2, 1, 31)
IF-MIB::ifMIBObjects == (1, 3, 6, 1, 2, 1, 31, 1)
IF-MIB::ifXTable == (1, 3, 6, 1, 2, 1, 31, 1, 1)
IF-MIB::ifXEntry == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1)
IF-MIB::ifName == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 1)
IF-MIB::ifInMulticastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 2)
IF-MIB::ifInBroadcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 3)
IF-MIB::ifOutMulticastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 4)
IF-MIB::ifOutBroadcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 5)
IF-MIB::ifHCInOctets == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 6)
IF-MIB::ifHCInUcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 7)
IF-MIB::ifHCInMulticastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 8)
IF-MIB::ifHCInBroadcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 9)
IF-MIB::ifHCOutOctets == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 10)
IF-MIB::ifHCOutUcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 11)
IF-MIB::ifHCOutMulticastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 12)
IF-MIB::ifHCOutBroadcastPkts == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 13)
IF-MIB::ifLinkUpDownTrapEnable == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 14)
IF-MIB::ifHighSpeed == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15)
IF-MIB::ifPromiscuousMode == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 16)
IF-MIB::ifConnectorPresent == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 17)
IF-MIB::ifAlias == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18)
IF-MIB::ifCounterDiscontinuityTime == (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 19)
IF-MIB::ifStackTable == (1, 3, 6, 1, 2, 1, 31, 1, 2)
IF-MIB::ifStackEntry == (1, 3, 6, 1, 2, 1, 31, 1, 2, 1)
IF-MIB::ifStackHigherLayer == (1, 3, 6, 1, 2, 1, 31, 1, 2, 1, 1)
IF-MIB::ifStackLowerLayer == (1, 3, 6, 1, 2, 1, 31, 1, 2, 1, 2)
IF-MIB::ifStackStatus == (1, 3, 6, 1, 2, 1, 31, 1, 2, 1, 3)
IF-MIB::ifTestTable == (1, 3, 6, 1, 2, 1, 31, 1, 3)
IF-MIB::ifTestEntry == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1)
IF-MIB::ifTestId == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 1)
IF-MIB::ifTestStatus == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 2)
IF-MIB::ifTestType == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 3)
IF-MIB::ifTestResult == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 4)
IF-MIB::ifTestCode == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 5)
IF-MIB::ifTestOwner == (1, 3, 6, 1, 2, 1, 31, 1, 3, 1, 6)
IF-MIB::ifRcvAddressTable == (1, 3, 6, 1, 2, 1, 31, 1, 4)
IF-MIB::ifRcvAddressEntry == (1, 3, 6, 1, 2, 1, 31, 1, 4, 1)
IF-MIB::ifRcvAddressAddress == (1, 3, 6, 1, 2, 1, 31, 1, 4, 1, 1)
IF-MIB::ifRcvAddressStatus == (1, 3, 6, 1, 2, 1, 31, 1, 4, 1, 2)
IF-MIB::ifRcvAddressType == (1, 3, 6, 1, 2, 1, 31, 1, 4, 1, 3)
IF-MIB::ifTableLastChange == (1, 3, 6, 1, 2, 1, 31, 1, 5)
IF-MIB::ifStackLastChange == (1, 3, 6, 1, 2, 1, 31, 1, 6)
IF-MIB::ifConformance == (1, 3, 6, 1, 2, 1, 31, 2)
IF-MIB::ifGroups == (1, 3, 6, 1, 2, 1, 31, 2, 1)
IF-MIB::ifGeneralGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 1)
IF-MIB::ifFixedLengthGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 2)
IF-MIB::ifHCFixedLengthGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 3)
IF-MIB::ifPacketGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 4)
IF-MIB::ifHCPacketGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 5)
IF-MIB::ifVHCPacketGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 6)
IF-MIB::ifRcvAddressGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 7)
IF-MIB::ifTestGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 8)
IF-MIB::ifStackGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 9)
IF-MIB::ifGeneralInformationGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 10)
IF-MIB::ifStackGroup2 == (1, 3, 6, 1, 2, 1, 31, 2, 1, 11)
IF-MIB::ifOldObjectsGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 12)
IF-MIB::ifCounterDiscontinuityGroup == (1, 3, 6, 1, 2, 1, 31, 2, 1, 13)
IF-MIB::ifCompliances == (1, 3, 6, 1, 2, 1, 31, 2, 2)
IF-MIB::ifCompliance == (1, 3, 6, 1, 2, 1, 31, 2, 2, 1)
IF-MIB::ifCompliance2 == (1, 3, 6, 1, 2, 1, 31, 2, 2, 2)
IP-MIB::ipMIB == (1, 3, 6, 1, 2, 1, 48)
IP-MIB::ipMIBConformance == (1, 3, 6, 1, 2, 1, 48, 2)
IP-MIB::ipMIBCompliances == (1, 3, 6, 1, 2, 1, 48, 2, 1)
IP-MIB::ipMIBCompliance == (1, 3, 6, 1, 2, 1, 48, 2, 1, 1)
IP-MIB::ipMIBCompliance2 == (1, 3, 6, 1, 2, 1, 48, 2, 1, 2)
IP-MIB::ipMIBGroups == (1, 3, 6, 1, 2, 1, 48, 2, 2)
IP-MIB::ipGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 1)
IP-MIB::icmpGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 2)
IP-MIB::ipv4GeneralGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 3)
IP-MIB::ipv4IfGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 4)
IP-MIB::ipv6GeneralGroup2 == (1, 3, 6, 1, 2, 1, 48, 2, 2, 5)
IP-MIB::ipv6IfGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 6)
IP-MIB::ipLastChangeGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 7)
IP-MIB::ipSystemStatsGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 8)
IP-MIB::ipv4SystemStatsGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 9)
IP-MIB::ipSystemStatsHCOctetGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 10)
IP-MIB::ipSystemStatsHCPacketGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 11)
IP-MIB::ipv4SystemStatsHCPacketGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 12)
IP-MIB::ipIfStatsGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 13)
IP-MIB::ipv4IfStatsGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 14)
IP-MIB::ipIfStatsHCOctetGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 15)
IP-MIB::ipIfStatsHCPacketGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 16)
IP-MIB::ipv4IfStatsHCPacketGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 17)
IP-MIB::ipAddressPrefixGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 18)
IP-MIB::ipAddressGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 19)
IP-MIB::ipNetToPhysicalGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 20)
IP-MIB::ipv6ScopeGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 21)
IP-MIB::ipDefaultRouterGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 22)
IP-MIB::ipv6RouterAdvertGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 23)
IP-MIB::icmpStatsGroup == (1, 3, 6, 1, 2, 1, 48, 2, 2, 24)
INET-ADDRESS-MIB::inetAddressMIB == (1, 3, 6, 1, 2, 1, 76)
SNMPv2-SMI::experimental == (1, 3, 6, 1, 3)
SNMPv2-SMI::private == (1, 3, 6, 1, 4)
SNMPv2-SMI::enterprises == (1, 3, 6, 1, 4, 1)
SNMPv2-SMI::security == (1, 3, 6, 1, 5)
SNMPv2-SMI::snmpV2 == (1, 3, 6, 1, 6)
SNMPv2-SMI::snmpDomains == (1, 3, 6, 1, 6, 1)
SNMPv2-SMI::snmpProxys == (1, 3, 6, 1, 6, 2)
SNMPv2-SMI::snmpModules == (1, 3, 6, 1, 6, 3)
SNMPv2-MIB::snmpMIB == (1, 3, 6, 1, 6, 3, 1)
SNMPv2-MIB::snmpMIBObjects == (1, 3, 6, 1, 6, 3, 1, 1)
SNMPv2-MIB::snmpTrap == (1, 3, 6, 1, 6, 3, 1, 1, 4)
SNMPv2-MIB::snmpTrapOID == (1, 3, 6, 1, 6, 3, 1, 1, 4, 1)
SNMPv2-MIB::snmpTrapEnterprise == (1, 3, 6, 1, 6, 3, 1, 1, 4, 3)
SNMPv2-MIB::snmpTraps == (1, 3, 6, 1, 6, 3, 1, 1, 5)
SNMPv2-MIB::coldStart == (1, 3, 6, 1, 6, 3, 1, 1, 5, 1)
SNMPv2-MIB::warmStart == (1, 3, 6, 1, 6, 3, 1, 1, 5, 2)
IF-MIB::linkDown == (1, 3, 6, 1, 6, 3, 1, 1, 5, 3)
IF-MIB::linkUp == (1, 3, 6, 1, 6, 3, 1, 1, 5, 4)
SNMPv2-MIB::authenticationFailure == (1, 3, 6, 1, 6, 3, 1, 1, 5, 5)
SNMPv2-MIB::snmpSet == (1, 3, 6, 1, 6, 3, 1, 1, 6)
SNMPv2-MIB::snmpSetSerialNo == (1, 3, 6, 1, 6, 3, 1, 1, 6, 1)
SNMPv2-MIB::snmpMIBConformance == (1, 3, 6, 1, 6, 3, 1, 2)
SNMPv2-MIB::snmpMIBCompliances == (1, 3, 6, 1, 6, 3, 1, 2, 1)
SNMPv2-MIB::snmpBasicCompliance == (1, 3, 6, 1, 6, 3, 1, 2, 1, 2)
SNMPv2-MIB::snmpBasicComplianceRev2 == (1, 3, 6, 1, 6, 3, 1, 2, 1, 3)
SNMPv2-MIB::snmpMIBGroups == (1, 3, 6, 1, 6, 3, 1, 2, 2)
SNMPv2-MIB::snmpSetGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 5)
SNMPv2-MIB::systemGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 6)
SNMPv2-MIB::snmpBasicNotificationsGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 7)
SNMPv2-MIB::snmpGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 8)
SNMPv2-MIB::snmpCommunityGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 9)
SNMPv2-MIB::snmpObsoleteGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 10)
SNMPv2-MIB::snmpWarmStartNotificationGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 11)
SNMPv2-MIB::snmpNotificationGroup == (1, 3, 6, 1, 6, 3, 1, 2, 2, 12)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIB == (1, 3, 6, 1, 6, 3, 10)
SNMP-FRAMEWORK-MIB::snmpFrameworkAdmin == (1, 3, 6, 1, 6, 3, 10, 1)
SNMP-FRAMEWORK-MIB::snmpAuthProtocols == (1, 3, 6, 1, 6, 3, 10, 1, 1)
SNMP-FRAMEWORK-MIB::snmpPrivProtocols == (1, 3, 6, 1, 6, 3, 10, 1, 2)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIBObjects == (1, 3, 6, 1, 6, 3, 10, 2)
SNMP-FRAMEWORK-MIB::snmpEngine == (1, 3, 6, 1, 6, 3, 10, 2, 1)
SNMP-FRAMEWORK-MIB::snmpEngineID == (1, 3, 6, 1, 6, 3, 10, 2, 1, 1)
SNMP-FRAMEWORK-MIB::snmpEngineBoots == (1, 3, 6, 1, 6, 3, 10, 2, 1, 2)
SNMP-FRAMEWORK-MIB::snmpEngineTime == (1, 3, 6, 1, 6, 3, 10, 2, 1, 3)
SNMP-FRAMEWORK-MIB::snmpEngineMaxMessageSize == (1, 3, 6, 1, 6, 3, 10, 2, 1, 4)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIBConformance == (1, 3, 6, 1, 6, 3, 10, 3)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliances == (1, 3, 6, 1, 6, 3, 10, 3, 1)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance == (1, 3, 6, 1, 6, 3, 10, 3, 1, 1)
SNMP-FRAMEWORK-MIB::snmpFrameworkMIBGroups == (1, 3, 6, 1, 6, 3, 10, 3, 2)
SNMP-FRAMEWORK-MIB::snmpEngineGroup == (1, 3, 6, 1, 6, 3, 10, 3, 2, 1)
SNMP-TARGET-MIB::snmpTargetMIB == (1, 3, 6, 1, 6, 3, 12)
SNMP-TARGET-MIB::snmpTargetObjects == (1, 3, 6, 1, 6, 3, 12, 1)
SNMP-TARGET-MIB::snmpTargetSpinLock == (1, 3, 6, 1, 6, 3, 12, 1, 1)
SNMP-TARGET-MIB::snmpTargetAddrTable == (1, 3, 6, 1, 6, 3, 12, 1, 2)
SNMP-TARGET-MIB::snmpTargetAddrEntry == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1)
SNMP-TARGET-MIB::snmpTargetAddrName == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 1)
SNMP-TARGET-MIB::snmpTargetAddrTDomain == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 2)
SNMP-TARGET-MIB::snmpTargetAddrTAddress == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 3)
SNMP-TARGET-MIB::snmpTargetAddrTimeout == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 4)
SNMP-TARGET-MIB::snmpTargetAddrRetryCount == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 5)
SNMP-TARGET-MIB::snmpTargetAddrTagList == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 6)
SNMP-TARGET-MIB::snmpTargetAddrParams == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 7)
SNMP-TARGET-MIB::snmpTargetAddrStorageType == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 8)
SNMP-TARGET-MIB::snmpTargetAddrRowStatus == (1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 9)
SNMP-TARGET-MIB::snmpTargetParamsTable == (1, 3, 6, 1, 6, 3, 12, 1, 3)
SNMP-TARGET-MIB::snmpTargetParamsEntry == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1)
SNMP-TARGET-MIB::snmpTargetParamsName == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 1)
SNMP-TARGET-MIB::snmpTargetParamsMPModel == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 2)
SNMP-TARGET-MIB::snmpTargetParamsSecurityModel == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 3)
SNMP-TARGET-MIB::snmpTargetParamsSecurityName == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 4)
SNMP-TARGET-MIB::snmpTargetParamsSecurityLevel == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 5)
SNMP-TARGET-MIB::snmpTargetParamsStorageType == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 6)
SNMP-TARGET-MIB::snmpTargetParamsRowStatus == (1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 7)
SNMP-TARGET-MIB::snmpUnavailableContexts == (1, 3, 6, 1, 6, 3, 12, 1, 4)
SNMP-TARGET-MIB::snmpUnknownContexts == (1, 3, 6, 1, 6, 3, 12, 1, 5)
SNMP-TARGET-MIB::snmpTargetConformance == (1, 3, 6, 1, 6, 3, 12, 3)
SNMP-TARGET-MIB::snmpTargetCompliances == (1, 3, 6, 1, 6, 3, 12, 3, 1)
SNMP-TARGET-MIB::snmpTargetCommandResponderCompliance == (1, 3, 6, 1, 6, 3, 12, 3, 1, 1)
SNMP-TARGET-MIB::snmpTargetGroups == (1, 3, 6, 1, 6, 3, 12, 3, 2)
SNMP-TARGET-MIB::snmpTargetBasicGroup == (1, 3, 6, 1, 6, 3, 12, 3, 2, 1)
SNMP-TARGET-MIB::snmpTargetResponseGroup == (1, 3, 6, 1, 6, 3, 12, 3, 2, 2)
SNMP-TARGET-MIB::snmpTargetCommandResponderGroup == (1, 3, 6, 1, 6, 3, 12, 3, 2, 3)
SNMP-COMMUNITY-MIB::snmpCommunityMIB == (1, 3, 6, 1, 6, 3, 18)
SNMP-COMMUNITY-MIB::snmpCommunityMIBObjects == (1, 3, 6, 1, 6, 3, 18, 1)
SNMP-COMMUNITY-MIB::snmpCommunityTable == (1, 3, 6, 1, 6, 3, 18, 1, 1)
SNMP-COMMUNITY-MIB::snmpCommunityEntry == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1)
SNMP-COMMUNITY-MIB::snmpCommunityIndex == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 1)
SNMP-COMMUNITY-MIB::snmpCommunityName == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 2)
SNMP-COMMUNITY-MIB::snmpCommunitySecurityName == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 3)
SNMP-COMMUNITY-MIB::snmpCommunityContextEngineID == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 4)
SNMP-COMMUNITY-MIB::snmpCommunityContextName == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 5)
SNMP-COMMUNITY-MIB::snmpCommunityTransportTag == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 6)
SNMP-COMMUNITY-MIB::snmpCommunityStorageType == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 7)
SNMP-COMMUNITY-MIB::snmpCommunityStatus == (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 8)
SNMP-COMMUNITY-MIB::snmpTargetAddrExtTable == (1, 3, 6, 1, 6, 3, 18, 1, 2)
SNMP-COMMUNITY-MIB::snmpTargetAddrExtEntry == (1, 3, 6, 1, 6, 3, 18, 1, 2, 1)
SNMP-COMMUNITY-MIB::snmpTargetAddrTMask == (1, 3, 6, 1, 6, 3, 18, 1, 2, 1, 1)
SNMP-COMMUNITY-MIB::snmpTargetAddrMMS == (1, 3, 6, 1, 6, 3, 18, 1, 2, 1, 2)
SNMP-COMMUNITY-MIB::snmpTrapAddress == (1, 3, 6, 1, 6, 3, 18, 1, 3)
SNMP-COMMUNITY-MIB::snmpTrapCommunity == (1, 3, 6, 1, 6, 3, 18, 1, 4)
SNMP-COMMUNITY-MIB::snmpCommunityMIBConformance == (1, 3, 6, 1, 6, 3, 18, 2)
SNMP-COMMUNITY-MIB::snmpCommunityMIBCompliances == (1, 3, 6, 1, 6, 3, 18, 2, 1)
SNMP-COMMUNITY-MIB::snmpCommunityMIBCompliance == (1, 3, 6, 1, 6, 3, 18, 2, 1, 1)
SNMP-COMMUNITY-MIB::snmpProxyTrapForwardCompliance == (1, 3, 6, 1, 6, 3, 18, 2, 1, 2)
SNMP-COMMUNITY-MIB::snmpCommunityMIBFullCompliance == (1, 3, 6, 1, 6, 3, 18, 2, 1, 3)
SNMP-COMMUNITY-MIB::snmpCommunityMIBGroups == (1, 3, 6, 1, 6, 3, 18, 2, 2)
SNMP-COMMUNITY-MIB::snmpCommunityTableGroup == (1, 3, 6, 1, 6, 3, 18, 2, 2, 1)
SNMP-COMMUNITY-MIB::snmpProxyTrapForwardGroup == (1, 3, 6, 1, 6, 3, 18, 2, 2, 3)
SNMPv2-SMI::joint-iso-itu-t == (2,)
Modules traversal
ASN1
ASN1-ENUMERATION
ASN1-REFINEMENT
IANAifType-MIB
IF-MIB
INET-ADDRESS-MIB
IP-MIB
SNMP-COMMUNITY-MIB
SNMP-FRAMEWORK-MIB
SNMP-TARGET-MIB
SNMPv2-CONF
SNMPv2-MIB
SNMPv2-SMI
SNMPv2-TC

-- **********************************************************************
-- **********************************************************************
-- **
-- **  COPYRIGHT      (c) 2006 Rohde & Schwarz GmbH & Co. KG
-- **                          Muehldorfstrasse 15
-- **    R & S                 81671 Muenchen
-- **
-- ** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-- **
-- **  MODULE         RS-COMMON-MIB.my
-- **  
-- **  DESCRIPTION    Rohde & Schwarz common SNMP mib
-- **
-- **  HISTORY        2010-08-09 Christian Hoelzl
-- **                 rsProdRadioCommEquipment added
-- **
-- **                 05/27/2008 Christian Hoelzl
-- **                 rsProdBroadcastHeadend added
-- **
-- **                 05/07/2008 Christian Hoelzl
-- **                 rsProdRadioCommSystems added
-- **
-- **                 10/31/2007 Christian Hoelzl
-- **                 rsProdRadioCommunications added
-- **                 rsProdRadioCommCommon added
-- **                 rsProdRadioCommSeries4200 added
-- **
-- **                 09/05/2006 Christian Hoelzl
-- **                 rsCrypto added
-- **
-- **                 06/24/2005 Christian Hoelzl
-- **                 first version
-- **
-- ** +-iso(1)
-- **   +-org(3)
-- **     +-dod(6)
-- **       +-internet(1)
-- **         +-private(4)
-- **           +-enterprises(1)
-- **             +-rsRoot(2566)
-- **               +-rsCommon(123)
-- **               +-rsProduct(127)
-- **               | +-rsProdBroadcast(1)
-- **               | | +-rsProdBroadcastMeasurement(1)
-- **               | | +-rsProdBroadcastTransmitter(2)
-- **               | | +-rsProdBroadcastHeadend(3)
-- **               | |
-- **               | +-rsProdRadioCommunications(2)
-- **               |   +-rsProdRadioCommCommon(1)
-- **               |   +-rsProdRadioCommSeries4200(2)
-- **               |   +-rsProdRadioCommSystems(3)
-- **               |   +-rsPrdoRadioCommEquipment(4)
-- **               |
-- **               +-rsRequirements(131)
-- **               +-rsExperimental(137)
-- **               +-rsCapabilities(139)
-- **               +-rsRegistration(149)
-- **               | +-rsRegModules(1)
-- **               | +-rsRegBroadcast(2)
-- **               |   +-rsRegBroadcastMeasurement(1)
-- **               |   +-rsRegBroadcastTransmitter(2)
-- **               |
-- **               +-rsCrypto(151)
-- ** 
-- **
-- **********************************************************************
-- **********************************************************************

  RS-COMMON-MIB DEFINITIONS ::= BEGIN
 
    IMPORTS enterprises, OBJECT-IDENTITY, MODULE-IDENTITY FROM SNMPv2-SMI;

    rsRoot MODULE-IDENTITY
        LAST-UPDATED "201008090803Z" -- August 9th 2010 at 08:03 GMT
        ORGANIZATION 
		        "Rohde&Schwarz GmbH & Co.KG"
        CONTACT-INFO 
		        "Rohde & Schwarz GmbH & Co. KG
		         Muehldorfstrasse 15
		         81671 Munich
		         Germany"
	      DESCRIPTION 
            "The root OID of Rohde&Schwarz GmbH & Co.KG"
        REVISION "201008090803Z" -- August 9th 2010 at 08:03 GMT
	      DESCRIPTION 
            "MODULE-IDENTITY added to RS-COMMON-MIB"
        ::= { enterprises 2566 }

    rsCommon OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for common object and event definitions"
        ::= { rsRoot 113 }

    rsProducts OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for products."
        ::= { rsRoot 127 }

    rsProdBroadcast OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast products."
        ::= { rsProducts 1 }

    rsProdBroadcastMeasurement OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast measurement products."
        ::= { rsProdBroadcast 1 }

    rsProdBroadcastTransmitter OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast transmitter products."
        ::= { rsProdBroadcast 2 }

    rsProdBroadcastHeadend OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast headend products."
        ::= { rsProdBroadcast 3 }

    rsProdRadioCommunications OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication products."
        ::= { rsProducts 2 }

    rsProdRadioCommCommon OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication product common features."
        ::= { rsProdRadioCommunications 1 }

    rsProdRadioCommSeries4200 OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication series 4200."
        ::= { rsProdRadioCommunications 2 }

    rsProdRadioCommSystems OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication systems."
        ::= { rsProdRadioCommunications 3 }

    rsProdRadioCommEquipment OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication equipment."
        ::= { rsProdRadioCommunications 4 }

    rsRequirements OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for management application requirements"
        ::= { rsRoot 131 }

    rsExperimental OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for experimental definitions"
        ::= { rsRoot 137 }

    rsCapabilities OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for agent capabilities"
        ::= { rsRoot 139 }

    rsRegistration OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for registrations"
        ::= { rsRoot 149 }

    rsRegModules OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for modules registrations"
        ::= { rsRegistration 1 }
    
    rsRegBroadcast OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegistration 2 }

    rsRegBroadcastMeasurement OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegBroadcast 1 }

    rsRegBroadcastTransmitter OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegBroadcast 2 }

    rsCrypto OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for crypto algorithms"
        ::= { rsRoot 151 }

    END

--
-- RS-COMMON-MIB.my
--

@etingof
Copy link
Owner

etingof commented Jul 19, 2017

Do you have your MIB (RS-COMMON-MIB.my) specified in .loadModules()?

mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-FRAMEWORK-MIB', 'SNMP-COMMUNITY-MIB', 'IP-MIB')

@BusbyActual
Copy link
Author

I sure didn't. I see what you mean by the MIB order in the loadingModules method. I have it working as expected now. The code for output to the console has a plug for nodeDesc. Are their ways to pull DESCRIPTION or STATUS as well? I've been looking at the docs and can't find much on the mibView.getNodeLocation method.

 rsRoot MODULE-IDENTITY
        LAST-UPDATED "201008090803Z" -- August 9th 2010 at 08:03 GMT
        ORGANIZATION 
		        "Rohde&Schwarz GmbH & Co.KG"
        CONTACT-INFO 
		        "Rohde & Schwarz GmbH & Co. KG
		         Muehldorfstrasse 15
		         81671 Munich
		         Germany"
	      DESCRIPTION 
            "The root OID of Rohde&Schwarz GmbH & Co.KG"
        REVISION "201008090803Z" -- August 9th 2010 at 08:03 GMT
	      DESCRIPTION 
            "MODULE-IDENTITY added to RS-COMMON-MIB"
        ::= { enterprises 2566 }

print('MIB tree traversal')
oid, label, suffix = mibView.getFirstNodeName()
while 1:
    try:
        modName, nodeDesc, suffix = mibView.getNodeLocation(oid)
        print('%s::%s == %s' % (modName, nodeDesc, oid))
        oid, label, suffix = mibView.getNextNodeName(oid)
    except error.NoSuchObjectError:
        break

@etingof
Copy link
Owner

etingof commented Jul 19, 2017

Are their ways to pull DESCRIPTION or STATUS as well?

Sure, you should be able to get everything from MIB definitions. These methods are not yet documented -- this is something to be done in the nearest future.

Meanwhile, I can refer you to the code.

Make sure to pass genTexts=True to the MIB compiler if you want all the text (e.g. DESCRIPTION) to be put into .py files. You may need to wipe out everything from ~/.pysnmp/mibs/ for this change to take effect.

compiler.addMibCompiler(mibBuilder, sources=['/users/admin/desktop/mib/mibfiles/', 
                                             'http://mibs.snmplabs.com/asn1/'], genTexts=True)

@BusbyActual
Copy link
Author

Hmm I'm not too familiar with Python. JavaScript is my bread and butter. I'm trying to figure out where to invoke the method my guess is mibBuilder.ObjectIdentity.getDescription because ObjectIdentity is exported from mibBuilder.exportSymbols however that doesn't work. Could you provide an example? Also, I'm looking at the mibBuilder methods addMibCompiler and addMibSources is their support for passing a MIB as JSON as opposed to a flat file?

@etingof
Copy link
Owner

etingof commented Jul 21, 2017

The MIBs and the objects defined in MIBs are maintained by the MibBuilder by the MIB module name + MIB object name pair:

mibName, objName = 'SNMP-FRAMEWORK-MIB', 'snmpEngineID'
mibObj, = mibBuilder.importSymbols(mibName, objName)

Once you have the MIB object you can get all the information it has:

print(mibObj.getDescription())

Additionally, the MibViewController maintains its own independent index by OID (as well as other helpful indices). So if you have an OID and want the description of associated object, you first need to ask MibViewController what's the name of the MIB object having this OID:

    mibName, objName, restOfOid = mibView.getNodeLocation(oid)

Then look up the MIB object:

mibObj, = mibBuilder.importSymbols(mibName, objName)

And inspect it.

If you give it a longer OID (most commonly, the tail of the OID would refer to MIB object instance in SNMP terms), then that tail part would be returned as-is.

@BusbyActual
Copy link
Author

I think I understand how the methods interact with each other from your explanation. When I follow the example with using the custom MIB and object name I get errors. When I use the samples in the loop it doesn't provide the correct description. Maybe I'm missing something?

Error

Traceback (most recent call last):
  File "test.py", line 87, in <module>
    mibObj, = mibBuilder.importSymbols(mibName, objName)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pysnmp/smi/builder.py", line 407, in importSymbols
    'No symbol %s::%s at %s' % (modName, symName, self)
pysnmp.smi.error.SmiError: No symbol RS-COMMON-MIB::snmpEngineID at <pysnmp.smi.builder.MibBuilder object at 0x1014a3dd8>

Code

print('MIB tree traversal')
oid, label, suffix = mibView.getFirstNodeName()
while 1:
    try:
        mibName, objName = 'SNMP-FRAMEWORK-MIB', 'snmpEngineID'
        mibObj, = mibBuilder.importSymbols(mibName, objName)
        modName, nodeDesc, suffix = mibView.getNodeLocation(oid)
        # mibObj, = mibBuilder.importSymbols(modName, nodeDesc)
        print(mibObj.getDescription())

        print('%s::%s == %s && %s' % (modName, nodeDesc, oid, mibObj))
        oid, label, suffix = mibView.getNextNodeName(oid)


    except error.NoSuchObjectError:
        break

Output


RS-XX9-SMI-MIB::rsXx9DvbT == (1, 3, 6, 1, 4, 1, 2566, 127, 1, 2, 216, 6) && MibScalar((1, 3, 6, 1, 6, 3, 10, 2, 1, 1), SnmpEngineID())

@BusbyActual
Copy link
Author

I checked my .py mibs that are generated and they also don't have the description. I can see STATUS and MAXACCESS are converted in the .py files. So I'm assuming if it was to be processed properly the data would reside there as well?

RS-COMMON-MIB.py

#
# PySNMP MIB module RS-COMMON-MIB (http://pysnmp.sf.net)
# ASN.1 source file:///users/admin/desktop/mib/mibFiles/RS-COMMON-MIB.mib
# Produced by pysmi-0.1.3 at Fri Jul 21 11:27:16 2017
# On host Busby.local platform Darwin version 15.6.0 by user admin
# Using Python version 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) 
#
Integer, ObjectIdentifier, OctetString = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString")
NamedValues, = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues")
ValueRangeConstraint, SingleValueConstraint, ConstraintsUnion, ConstraintsIntersection, ValueSizeConstraint = mibBuilder.importSymbols("ASN1-REFINEMENT", "ValueRangeConstraint", "SingleValueConstraint", "ConstraintsUnion", "ConstraintsIntersection", "ValueSizeConstraint")
ModuleCompliance, NotificationGroup = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "NotificationGroup")
MibIdentifier, NotificationType, ModuleIdentity, Gauge32, IpAddress, enterprises, Bits, Integer32, Counter64, TimeTicks, MibScalar, MibTable, MibTableRow, MibTableColumn, Counter32, Unsigned32, iso, ObjectIdentity = mibBuilder.importSymbols("SNMPv2-SMI", "MibIdentifier", "NotificationType", "ModuleIdentity", "Gauge32", "IpAddress", "enterprises", "Bits", "Integer32", "Counter64", "TimeTicks", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "Counter32", "Unsigned32", "iso", "ObjectIdentity")
TextualConvention, DisplayString = mibBuilder.importSymbols("SNMPv2-TC", "TextualConvention", "DisplayString")
rsRoot = ModuleIdentity((1, 3, 6, 1, 4, 1, 2566))
if mibBuilder.loadTexts: rsRoot.setRevisions(('2010-08-09 08:03',))
if mibBuilder.loadTexts: rsRoot.setLastUpdated('201008090803Z')
rsCommon = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 113))
if mibBuilder.loadTexts: rsCommon.setStatus('current')
rsProducts = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127))
if mibBuilder.loadTexts: rsProducts.setStatus('current')
rsProdBroadcast = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1))
if mibBuilder.loadTexts: rsProdBroadcast.setStatus('current')
rsProdBroadcastMeasurement = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 1))
if mibBuilder.loadTexts: rsProdBroadcastMeasurement.setStatus('current')
rsProdBroadcastTransmitter = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 2))
if mibBuilder.loadTexts: rsProdBroadcastTransmitter.setStatus('current')
rsProdBroadcastHeadend = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 3))
if mibBuilder.loadTexts: rsProdBroadcastHeadend.setStatus('current')
rsProdRadioCommunications = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2))
if mibBuilder.loadTexts: rsProdRadioCommunications.setStatus('current')
rsProdRadioCommCommon = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 1))
if mibBuilder.loadTexts: rsProdRadioCommCommon.setStatus('current')
rsProdRadioCommSeries4200 = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 2))
if mibBuilder.loadTexts: rsProdRadioCommSeries4200.setStatus('current')
rsProdRadioCommSystems = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 3))
if mibBuilder.loadTexts: rsProdRadioCommSystems.setStatus('current')
rsProdRadioCommEquipment = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 4))
if mibBuilder.loadTexts: rsProdRadioCommEquipment.setStatus('current')
rsRequirements = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 131))
if mibBuilder.loadTexts: rsRequirements.setStatus('current')
rsExperimental = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 137))
if mibBuilder.loadTexts: rsExperimental.setStatus('current')
rsCapabilities = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 139))
if mibBuilder.loadTexts: rsCapabilities.setStatus('current')
rsRegistration = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149))
if mibBuilder.loadTexts: rsRegistration.setStatus('current')
rsRegModules = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 1))
if mibBuilder.loadTexts: rsRegModules.setStatus('current')
rsRegBroadcast = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2))
if mibBuilder.loadTexts: rsRegBroadcast.setStatus('current')
rsRegBroadcastMeasurement = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2, 1))
if mibBuilder.loadTexts: rsRegBroadcastMeasurement.setStatus('current')
rsRegBroadcastTransmitter = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2, 2))
if mibBuilder.loadTexts: rsRegBroadcastTransmitter.setStatus('current')
rsCrypto = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 151))
if mibBuilder.loadTexts: rsCrypto.setStatus('current')
mibBuilder.exportSymbols("RS-COMMON-MIB", rsRegBroadcast=rsRegBroadcast, rsProdBroadcastHeadend=rsProdBroadcastHeadend, rsProdRadioCommunications=rsProdRadioCommunications, rsProdBroadcastMeasurement=rsProdBroadcastMeasurement, rsRegModules=rsRegModules, rsProducts=rsProducts, rsProdRadioCommEquipment=rsProdRadioCommEquipment, rsRegistration=rsRegistration, rsRequirements=rsRequirements, PYSNMP_MODULE_ID=rsRoot, rsExperimental=rsExperimental, rsProdBroadcastTransmitter=rsProdBroadcastTransmitter, rsProdRadioCommSeries4200=rsProdRadioCommSeries4200, rsProdRadioCommSystems=rsProdRadioCommSystems, rsRegBroadcastTransmitter=rsRegBroadcastTransmitter, rsCommon=rsCommon, rsRoot=rsRoot, rsRegBroadcastMeasurement=rsRegBroadcastMeasurement, rsProdBroadcast=rsProdBroadcast, rsCrypto=rsCrypto, rsProdRadioCommCommon=rsProdRadioCommCommon, rsCapabilities=rsCapabilities)

RS-COMMON-MIB.mib

-- **********************************************************************
-- **********************************************************************
-- **
-- **  COPYRIGHT      (c) 2006 Rohde & Schwarz GmbH & Co. KG
-- **                          Muehldorfstrasse 15
-- **    R & S                 81671 Muenchen
-- **
-- ** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-- **
-- **  MODULE         RS-COMMON-MIB.my
-- **  
-- **  DESCRIPTION    Rohde & Schwarz common SNMP mib
-- **
-- **  HISTORY        2010-08-09 Christian Hoelzl
-- **                 rsProdRadioCommEquipment added
-- **
-- **                 05/27/2008 Christian Hoelzl
-- **                 rsProdBroadcastHeadend added
-- **
-- **                 05/07/2008 Christian Hoelzl
-- **                 rsProdRadioCommSystems added
-- **
-- **                 10/31/2007 Christian Hoelzl
-- **                 rsProdRadioCommunications added
-- **                 rsProdRadioCommCommon added
-- **                 rsProdRadioCommSeries4200 added
-- **
-- **                 09/05/2006 Christian Hoelzl
-- **                 rsCrypto added
-- **
-- **                 06/24/2005 Christian Hoelzl
-- **                 first version
-- **
-- ** +-iso(1)
-- **   +-org(3)
-- **     +-dod(6)
-- **       +-internet(1)
-- **         +-private(4)
-- **           +-enterprises(1)
-- **             +-rsRoot(2566)
-- **               +-rsCommon(123)
-- **               +-rsProduct(127)
-- **               | +-rsProdBroadcast(1)
-- **               | | +-rsProdBroadcastMeasurement(1)
-- **               | | +-rsProdBroadcastTransmitter(2)
-- **               | | +-rsProdBroadcastHeadend(3)
-- **               | |
-- **               | +-rsProdRadioCommunications(2)
-- **               |   +-rsProdRadioCommCommon(1)
-- **               |   +-rsProdRadioCommSeries4200(2)
-- **               |   +-rsProdRadioCommSystems(3)
-- **               |   +-rsPrdoRadioCommEquipment(4)
-- **               |
-- **               +-rsRequirements(131)
-- **               +-rsExperimental(137)
-- **               +-rsCapabilities(139)
-- **               +-rsRegistration(149)
-- **               | +-rsRegModules(1)
-- **               | +-rsRegBroadcast(2)
-- **               |   +-rsRegBroadcastMeasurement(1)
-- **               |   +-rsRegBroadcastTransmitter(2)
-- **               |
-- **               +-rsCrypto(151)
-- ** 
-- **
-- **********************************************************************
-- **********************************************************************

  RS-COMMON-MIB DEFINITIONS ::= BEGIN
 
    IMPORTS enterprises, OBJECT-IDENTITY, MODULE-IDENTITY FROM SNMPv2-SMI;

    rsRoot MODULE-IDENTITY
        LAST-UPDATED "201008090803Z" -- August 9th 2010 at 08:03 GMT
        ORGANIZATION 
		        "Rohde&Schwarz GmbH & Co.KG"
        CONTACT-INFO 
		        "Rohde & Schwarz GmbH & Co. KG
		         Muehldorfstrasse 15
		         81671 Munich
		         Germany"
	      DESCRIPTION 
            "The root OID of Rohde&Schwarz GmbH & Co.KG"
        REVISION "201008090803Z" -- August 9th 2010 at 08:03 GMT
	      DESCRIPTION 
            "MODULE-IDENTITY added to RS-COMMON-MIB"
        ::= { enterprises 2566 }

    rsCommon OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for common object and event definitions"
        ::= { rsRoot 113 }

    rsProducts OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for products."
        ::= { rsRoot 127 }

    rsProdBroadcast OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast products."
        ::= { rsProducts 1 }

    rsProdBroadcastMeasurement OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast measurement products."
        ::= { rsProdBroadcast 1 }

    rsProdBroadcastTransmitter OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast transmitter products."
        ::= { rsProdBroadcast 2 }

    rsProdBroadcastHeadend OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for broadcast headend products."
        ::= { rsProdBroadcast 3 }

    rsProdRadioCommunications OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication products."
        ::= { rsProducts 2 }

    rsProdRadioCommCommon OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication product common features."
        ::= { rsProdRadioCommunications 1 }

    rsProdRadioCommSeries4200 OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication series 4200."
        ::= { rsProdRadioCommunications 2 }

    rsProdRadioCommSystems OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication systems."
        ::= { rsProdRadioCommunications 3 }

    rsProdRadioCommEquipment OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for radio communication equipment."
        ::= { rsProdRadioCommunications 4 }

    rsRequirements OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for management application requirements"
        ::= { rsRoot 131 }

    rsExperimental OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for experimental definitions"
        ::= { rsRoot 137 }

    rsCapabilities OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for agent capabilities"
        ::= { rsRoot 139 }

    rsRegistration OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for registrations"
        ::= { rsRoot 149 }

    rsRegModules OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for modules registrations"
        ::= { rsRegistration 1 }
    
    rsRegBroadcast OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegistration 2 }

    rsRegBroadcastMeasurement OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegBroadcast 1 }

    rsRegBroadcastTransmitter OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Description."
        ::= { rsRegBroadcast 2 }

    rsCrypto OBJECT-IDENTITY
        STATUS current
        DESCRIPTION 
            "Sub-tree for crypto algorithms"
        ::= { rsRoot 151 }

    END

--
-- RS-COMMON-MIB.my
--

@etingof
Copy link
Owner

etingof commented Aug 1, 2017

The texts should be there... Can you remove everything from ~/.pysnmp/mibs/* then add the genText option to your script:

compiler.addMibCompiler(mibBuilder, sources=['/users/admin/desktop/mib/mibfiles/', 
                                         'http://mibs.snmplabs.com/asn1/'], genTexts=True)

Re-run the script and check the MIB files afterwards?

That's to make sure those are not stale files generated before you added the genTexts flag.

@BusbyActual
Copy link
Author

BusbyActual commented Aug 1, 2017

I ran rm -rf * in the ~/.psnmp/mibs directory and confirmed nothing was there. After I re-ran the scripts the directory had pretty much the same output.

Script

from pysnmp.smi import builder, view, compiler, error, instrum, exval

from pysmi import debug
debug.setLogger(debug.Debug('searcher', 'reader', 'compiler'))

# Create MIB loader/builder
mibBuilder = builder.MibBuilder()

# Optionally attach PySMI MIB compiler (if installed)
print('Attaching MIB compiler...'),
compiler.addMibCompiler(mibBuilder, sources=['/users/admin/desktop/mib/mibFiles/', 'http://mibs.snmplabs.com/asn1/'], genTexts=True)
print('done')

# Optionally set an alternative path to compiled MIBs
print('Setting MIB sources...')
mibBuilder.addMibSources(builder.DirMibSource('/users/admin/desktop/mib/mibfiles/'))
print(mibBuilder.getMibSources())
print('done')

print('Loading MIB modules...'),
mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-FRAMEWORK-MIB', 'SNMP-COMMUNITY-MIB', 'RS-COMMON-MIB', 'RS-XX9-SMI-MIB' , 'RS-XX9-TC-MIB', 'RS-XX9-COMMON-MIB')

# RS-XX9-ATSC-MIB', 'RS-XX9-ATV-MIB', 'RS-XX9-AIR-COOLING-MIB');
# mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-FRAMEWORK-MIB', 'SNMP-COMMUNITY-MIB', 'RS-COMMON-MIB', 'RS-XX9-AIR-COOLING-MIB', 'RS-XX9-ATSC-MIB', 'RS-XX9-ATV-MIB', 'RS-XX9-COMMON-MIB', 'RS-XX9-DAB-MIB', 'RS-XX9-DTMB-MIB', 'RS-XX9-DVBT-MIB', 'RS-XX9-DVBT2-MIB', 'RS-XX9-FM-MIB', 'RS-XX9-ISDBT-MIB', 'RS-XX9-LIQUID-COOLING-MIB', 'RS-XX9-MTX-MIB', 'RS-XX9-SMI-MIB', 'RS-XX9-TC-MIB', 'RS-XX9-TX-MIB');
 # RS-COMMON-MIB         - mandatory for this MIB
 #                - RS-XX9-SMI-MIB        - mandatory for this MIB
 #                - RS-XX9-TC-MIB         - mandatory for this MIB
 #                - RS-XX9-COMMON-MIB
# print('done')

print('Indexing MIB objects...'),
mibView = view.MibViewController(mibBuilder)
print('done')

# print('MIB symbol name lookup by OID: '),
# oid, label, suffix = mibView.getNodeName((1, 3, 6, 1, 4, 1))
# print(oid, label, suffix)

# print('MIB symbol name lookup by label: '),
# oid, label, suffix = mibView.getNodeName((1, 3, 6, 1, 4, 1, 'mib-2', 1, 'sysDescr'))
# print(oid, label, suffix)

print('MIB symbol name lookup by symbol description: '),
oid, label, suffix = mibView.getNodeName(('sysDescr',))
oid, label, suffix = mibView.getNodeName(('snmpEngineID',), 'SNMP-FRAMEWORK-MIB')
print(oid, label, suffix)

print('MIB 1: '),
mibName, objName = 'SNMP-FRAMEWORK-MIB', 'snmpEngineID'
mibObj, = mibBuilder.importSymbols(mibName, objName)
print(mibObj.getDescription())

mibName, objName, restOfOid = mibView.getNodeLocation(oid)
mibObj, = mibBuilder.importSymbols(mibName, objName)
print(mibObj.getDescription())

print('MIB 2: '),
mibName, objName = 'SNMP-FRAMEWORK-MIB', 'snmpEngineID'
mibObj, = mibBuilder.importSymbols(mibName, objName)
print(mibObj.getDescription())

mibName, objName, restOfOid = mibView.getNodeLocation(oid)
mibObj, = mibBuilder.importSymbols(mibName, objName)
print(mibObj.getDescription())

print('MIB object value pretty print: '),
mibNode, = mibBuilder.importSymbols('SNMP-FRAMEWORK-MIB', 'snmpEngineID')
print(mibNode.syntax.prettyPrint())

print('MIB symbol location lookup by name: '),
modName, symName, suffix = mibView.getNodeLocation(('snmpCommunityEntry',))
print(symName, modName)

print('MIB node lookup by location: '),
rowNode, = mibBuilder.importSymbols(modName, symName)
print(rowNode)

print('Conceptual table index value to oid convertion: '),
oid = rowNode.getInstIdFromIndices('router')
print(oid)

print('Conceptual table index oid to value convertion: '),
print(rowNode.getIndicesFromInstId(oid))

print('MIB tree traversal')
oid, label, suffix = mibView.getFirstNodeName()
while 1:
    try:
        mibName, objName, mibName2 = 'SNMP-FRAMEWORK-MIB', 'snmpEngineID', 'RS-COMMON-MIB'
        mibObj, = mibBuilder.importSymbols(mibName, objName)
        # mibObj2, = mibBuilder.importSymbols(mibName2);
        # print(mibBuilder['RS-COMMON-MIB'])

        modName, nodeDesc, suffix = mibView.getNodeLocation(oid)
        # mibObj, = mibBuilder.importSymbols(modName, nodeDesc)
        print(mibObj.getDescription())


        print('%s::%s == %s && %s' % (modName, nodeDesc, oid, mibObj))
        oid, label, suffix = mibView.getNextNodeName(oid)


    except error.NoSuchObjectError:
        break


print('Building MIB tree...'),
mibInstrum = instrum.MibInstrumController(mibBuilder)
print('done')

print('Building table entry index from human-friendly representation...'),
snmpCommunityEntry, = mibBuilder.importSymbols(
    'SNMP-COMMUNITY-MIB', 'snmpCommunityEntry'
)
instanceId = snmpCommunityEntry.getInstIdFromIndices('my-router')
print('done')

# print('Create/update SNMP-COMMUNITY-MIB::snmpCommunityEntry table row: ')
# varBinds = mibInstrum.writeVars(
#     ((snmpCommunityEntry.name + (2,) + instanceId, 'mycomm'),
#      (snmpCommunityEntry.name + (3,) + instanceId, 'mynmsname'),
#      (snmpCommunityEntry.name + (7,) + instanceId, 'volatile'))
# )
# for oid, val in varBinds:
#     print('%s = %s' % ('.'.join([str(x) for x in oid]), val.prettyPrint()))
# print('done')

print('Read whole MIB (table walk)')
oid, val = (), None
while 1:
    oid, val = mibInstrum.readNextVars(((oid, val),))[0]
    if exval.endOfMib.isSameTypeWith(val):
        break
    print('%s = %s' % ('.'.join([str(x) for x in oid]), val.prettyPrint()))
print('done')

print('Unloading MIB modules...'),
mibBuilder.unloadModules()
print('done')

# print('Modules traversal')
# modName = mibView.getFirstModuleName()
# while 1:
#     if modName: print(modName)
#     try:
#         modName = mibView.getNextModuleName(modName)
#     except error.SmiError:
#         break

RS-COMMON-MIB.py

#
# PySNMP MIB module RS-COMMON-MIB (http://pysnmp.sf.net)
# ASN.1 source file:///users/admin/desktop/mib/mibFiles/RS-COMMON-MIB.mib
# Produced by pysmi-0.1.3 at Tue Aug  1 14:05:37 2017
# On host Busby.local platform Darwin version 15.6.0 by user admin
# Using Python version 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) 
#
ObjectIdentifier, OctetString, Integer = mibBuilder.importSymbols("ASN1", "ObjectIdentifier", "OctetString", "Integer")
NamedValues, = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues")
ValueRangeConstraint, ConstraintsIntersection, SingleValueConstraint, ValueSizeConstraint, ConstraintsUnion = mibBuilder.importSymbols("ASN1-REFINEMENT", "ValueRangeConstraint", "ConstraintsIntersection", "SingleValueConstraint", "ValueSizeConstraint", "ConstraintsUnion")
ModuleCompliance, NotificationGroup = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "NotificationGroup")
Unsigned32, TimeTicks, Bits, ObjectIdentity, Counter64, ModuleIdentity, iso, Counter32, IpAddress, MibIdentifier, NotificationType, Gauge32, Integer32, enterprises, MibScalar, MibTable, MibTableRow, MibTableColumn = mibBuilder.importSymbols("SNMPv2-SMI", "Unsigned32", "TimeTicks", "Bits", "ObjectIdentity", "Counter64", "ModuleIdentity", "iso", "Counter32", "IpAddress", "MibIdentifier", "NotificationType", "Gauge32", "Integer32", "enterprises", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn")
DisplayString, TextualConvention = mibBuilder.importSymbols("SNMPv2-TC", "DisplayString", "TextualConvention")
rsRoot = ModuleIdentity((1, 3, 6, 1, 4, 1, 2566))
if mibBuilder.loadTexts: rsRoot.setRevisions(('2010-08-09 08:03',))
if mibBuilder.loadTexts: rsRoot.setLastUpdated('201008090803Z')
rsCommon = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 113))
if mibBuilder.loadTexts: rsCommon.setStatus('current')
rsProducts = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127))
if mibBuilder.loadTexts: rsProducts.setStatus('current')
rsProdBroadcast = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1))
if mibBuilder.loadTexts: rsProdBroadcast.setStatus('current')
rsProdBroadcastMeasurement = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 1))
if mibBuilder.loadTexts: rsProdBroadcastMeasurement.setStatus('current')
rsProdBroadcastTransmitter = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 2))
if mibBuilder.loadTexts: rsProdBroadcastTransmitter.setStatus('current')
rsProdBroadcastHeadend = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 1, 3))
if mibBuilder.loadTexts: rsProdBroadcastHeadend.setStatus('current')
rsProdRadioCommunications = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2))
if mibBuilder.loadTexts: rsProdRadioCommunications.setStatus('current')
rsProdRadioCommCommon = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 1))
if mibBuilder.loadTexts: rsProdRadioCommCommon.setStatus('current')
rsProdRadioCommSeries4200 = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 2))
if mibBuilder.loadTexts: rsProdRadioCommSeries4200.setStatus('current')
rsProdRadioCommSystems = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 3))
if mibBuilder.loadTexts: rsProdRadioCommSystems.setStatus('current')
rsProdRadioCommEquipment = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 127, 2, 4))
if mibBuilder.loadTexts: rsProdRadioCommEquipment.setStatus('current')
rsRequirements = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 131))
if mibBuilder.loadTexts: rsRequirements.setStatus('current')
rsExperimental = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 137))
if mibBuilder.loadTexts: rsExperimental.setStatus('current')
rsCapabilities = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 139))
if mibBuilder.loadTexts: rsCapabilities.setStatus('current')
rsRegistration = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149))
if mibBuilder.loadTexts: rsRegistration.setStatus('current')
rsRegModules = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 1))
if mibBuilder.loadTexts: rsRegModules.setStatus('current')
rsRegBroadcast = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2))
if mibBuilder.loadTexts: rsRegBroadcast.setStatus('current')
rsRegBroadcastMeasurement = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2, 1))
if mibBuilder.loadTexts: rsRegBroadcastMeasurement.setStatus('current')
rsRegBroadcastTransmitter = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 149, 2, 2))
if mibBuilder.loadTexts: rsRegBroadcastTransmitter.setStatus('current')
rsCrypto = ObjectIdentity((1, 3, 6, 1, 4, 1, 2566, 151))
if mibBuilder.loadTexts: rsCrypto.setStatus('current')
mibBuilder.exportSymbols("RS-COMMON-MIB", rsProdRadioCommSeries4200=rsProdRadioCommSeries4200, rsCommon=rsCommon, rsRegistration=rsRegistration, rsProdBroadcastMeasurement=rsProdBroadcastMeasurement, rsRegBroadcast=rsRegBroadcast, rsCrypto=rsCrypto, rsRegBroadcastMeasurement=rsRegBroadcastMeasurement, rsProdBroadcast=rsProdBroadcast, rsRoot=rsRoot, rsProdRadioCommSystems=rsProdRadioCommSystems, rsProdRadioCommCommon=rsProdRadioCommCommon, rsProdBroadcastHeadend=rsProdBroadcastHeadend, rsExperimental=rsExperimental, rsRegModules=rsRegModules, rsProdRadioCommunications=rsProdRadioCommunications, rsProdRadioCommEquipment=rsProdRadioCommEquipment, rsProdBroadcastTransmitter=rsProdBroadcastTransmitter, PYSNMP_MODULE_ID=rsRoot, rsRegBroadcastTransmitter=rsRegBroadcastTransmitter, rsCapabilities=rsCapabilities, rsProducts=rsProducts, rsRequirements=rsRequirements)

@thom-nic
Copy link

thom-nic commented May 7, 2021

I believe I'm seeing the same behavior as @BusbyActual - deleted ~/.pysnmp folder, called addMibCompiler(... genTexts=True)) but when I look at the converted .py file, no description text to be found...

Edit: this appears to work:

    mibBuilder = builder.MibBuilder()
    mibBuilder.loadTexts = True

@rodrigo-aznar
Copy link

rodrigo-aznar commented Oct 27, 2021

Hi all,

I've been studying these issues, the old discussions on sourceforge, and the faqs (.rsts) for some weeks, but now I ask your help.

I believe I am facing same issue here as @BusbyActual and @thom-nic. I have a new custom .MIB which I added in the directory seen by script (very similar to the posted here). And I have:

modName and modName + ".py[co]", ', '.join([str(x) for x in self.__mibSources]))

pysnmp.smi.error.MibNotFoundError: MIB file "1206v0122.py[co]" not found in search path

One thing that I dont understand is that I cannot found the ~./pysnmp folder on my machine. Dumb question: Is this folder expected to be created right after I did "pip install pysnmp"? Or should it be created after run the script itself?

python: 3.6.9
pysnmp: /usr/local/lib/python3.6/dist-packages/pysnmp-4.4.12.dist-info
pysmi (0.3.4)

Many thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants