Re: Net-SNMP Python bindings

Bill Fenner <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <CAF4SogbLWP2hU5yj10K=xtwWvsq8uHTr+0bncnb6iYN6xUndBw@mail.gmail.com>
On Mon, Oct 13, 2014 at 5:53 PM, Eduardo Bragatto <[email protected]>
wrote:

> 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.
>

Without the MIB being loaded, how can you expect the manager to know what
is the object and what is the iid?  If anything, it sounds like it's a bug
that the iid is filled in in any scenario without a MIB to support it.

  Bill

------------------------------------------------------------------------------
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.