Net-SNMP Python bindings

Eduardo Bragatto <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Hi,

I just started experimenting with the Python bindings and I noticed a behaviour that looks like a bug when I’m using snmpwalk().

This is under Net-SNMP 5.5.2 on CentOS 6, 64 bits and python 2.7.

First I’ll show an example of everything working as expected:


If I “walk” through an index, for example: IF-MIB::ifIndex

— begins —
import netsnmp

oid = netsnmp.VarList(netsnmp.Varbind('IF-MIB::ifIndex'))
s = netsnmp.Session(DestHost=‘myhost', Community=‘mycommunity', Version=2)
s.walk(oid)
— ends —

I get the following output (debug enabled):

$ python2.7 test.py
netsnmp_walk: filling request: IF-MIB::ifIndex::10:0
netsnmp_walk: filling response: ifIndex:1
netsnmp_walk: filling response: ifIndex:2
netsnmp_walk: filling response: ifIndex:3
netsnmp_walk: filling response: ifIndex:4
netsnmp_walk: filling response: ifIndex:5

In that case, I get “tag” is the same for all returned OIDs, and “iid” is incrementing. The same behaviour happens if I use “UseNumeric” and “UseLongNames”:

— begins —
import netsnmp

oid = netsnmp.VarList(netsnmp.Varbind('IF-MIB::ifIndex'))
s = netsnmp.Session(DestHost=‘myhost', Community=‘mycommunity', Version=2)
s.UseLongNames = 1
s.UseNumeric = 1
s.walk(oid)
— ends —

The output is:

$ python2.7 test.py
netsnmp_walk: filling request: IF-MIB::ifIndex::10:0
netsnmp_walk: filling response: .1.3.6.1.2.1.2.2.1.1:1
netsnmp_walk: filling response: .1.3.6.1.2.1.2.2.1.1:2
netsnmp_walk: filling response: .1.3.6.1.2.1.2.2.1.1:3
netsnmp_walk: filling response: .1.3.6.1.2.1.2.2.1.1:4
netsnmp_walk: filling response: .1.3.6.1.2.1.2.2.1.1:5



However, if instead of IF-MIB, I use Dell’s "MIB-Dell-10892” (without the MIB actually being installed, using numeric OID), here’s what I get:

First, without “UseLongNames” and “UseNumeric”:

— begins —
import netsnmp

oid = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.4.1.674.10892.1.1100.30.1.1.1'))
s = netsnmp.Session(DestHost=‘myhost', Community=‘mycommunity', Version=2)
s.walk(oid)
— ends —

Output:

$ python2.7 test.py
netsnmp_walk: filling request: .1.3.6.1.4.1.674.10892.1.1100.30.1.1.1::14:0
__get_type_str:FAILURE(0)
__get_type_str:FAILURE(0)
netsnmp_walk: filling response: enterprises.674.10892.1.1100.30.1.1.1.1:
__get_type_str:FAILURE(0)
__get_type_str:FAILURE(0)
netsnmp_walk: filling response: enterprises.674.10892.1.1100.30.1.1.1.2:

Note that in this case, “tag” was merged with “iid” and “iid” was left blank, however, if I use “UseNumeric” and “UseLongNames”, it works as expected:

— begins —
import netsnmp

oid = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.4.1.674.10892.1.1100.30.1.1.1'))
s = netsnmp.Session(DestHost=‘myhost', Community=‘mycommunity', Version=2)
s.UseLongNames = 1
s.UseNumeric = 1
s.walk(oid)
— ends —

$ python2.7 test.py
netsnmp_walk: filling request: .1.3.6.1.4.1.674.10892.1.1100.30.1.1.1::14:0
__get_type_str:FAILURE(0)
__get_type_str:FAILURE(0)
netsnmp_walk: filling response: .1.3.6.1.4.1.674.10892.1.1100.30.1.1.1:1
__get_type_str:FAILURE(0)
__get_type_str:FAILURE(0)
netsnmp_walk: filling response: .1.3.6.1.4.1.674.10892.1.1100.30.1.1.1:2


Has anyone else encountered this kind of behaviour? I’m willing to go through the “client_intf.c” and try to fix this, but I’d like to hear from people with a similar setup and/or more experience with the python bindings.

Thank you
Eduardo Bragatto
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.