[AGENT++] Problem using net-snmp as subagent (Error in packet)

Johnny Ljunggren johnny at navtek.no
Tue Feb 13 16:33:26 CET 2007



Hello

Thanks for the effort so far.

I've been having a discussion with Dave Shield of net-snmp and it seems
that the problem might be in agentpp after all. At least it looks like the
zeroDotZero packet are built correctly on the net-snmp side (RFC 2741,
section 5.1) but is not acknowledge on the agentpp AgentX side.

This would be the correct response to IF-MIB::ifSpecific.1 according to Dave:

Sending 64 bytes to Local IPC: /var/agentx/master
0000: 01 12 00 00  01 00 00 00  00 00 00 00  00 00 00 00    ................
0016: 2C 00 00 00  00 00 00 00  00 00 00 00  06 00 00 00    ,...............
0032: 06 02 00 00  01 00 00 00  02 00 00 00  02 00 00 00    ................
0048: 01 00 00 00  16 00 00 00  01 00 00 00  00 00 00 00    ................

looks correct for returning a response of

   .1.3.6.1.2.1.2.2.1.22.1 (ifSpecific.1) = OID .0.0

Could you have a look and give me your thoughts on this?

> Are you sure that ifSpecific.1 causes the error?
> If you are using GETNEXT/GETBULK also the
> ifSpecific.x following objects could cause the
> error (this is my experience). Therefore I suggested
> to compile only those MIBs into the NET-SNMP
> agent that are absolutely needed.
>
> Hope this helps.
>
> Best regards,
> Frank
>
> Johnny Ljunggren wrote:
>> Hello
>>
>>> Sorry, my comments were mistakable. In addition to
>>> NET_SNMP_WORKAROUNDS you will need also
>>> to change MAX_AGENTX_REPETITIONS to 1
>>
>> I tried that but it didn't seem to have any effect. Maybe I did it wrong
>> but I changed the setting to 1 then compiled the agentx library, and
>> then
>> recompiled my agent.
>>
>> I did some more research and found that only the OIDs defined as OID:
>> SNMPv2-SMI::zeroDotZero will give this error.
>> ie. IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
>>
>> I did a snmpget on every single oid and only got the problem with the
>> above mentioned definition.
>>
>> I tried to look through the source code but I guess it will take me a
>> while to get my head around what is happening.
>>
>> Any idea what's so special about SNMPv2-SMI::zeroDotZero and what I
>> should
>> be looking for?
>>
>>>> It seems that NET_SNMP_WORKAROUNDS is enabled by default, so I have it
>>>> activated. Luckily I'm not running on a 64bit system, but I'm a bit
>>>> worried anyway.
>>>> Do you think it would be possible to pay someone with a deeper
>>>> knowledge
>>>> about this to fix it?
>>>> Is net-snmp the only way to get mib-II on linux?
>>>> Where should I start to try to solve this? (apart from contacting the
>>>> net-snmp ml, which I already did)
>>>>> Have you activated the NET-SNMP work-arounds in
>>>>> agent++_def.h? The NET-SNMP AgentX implementation
>>>>> has many bugs. For some of them, I had implemented
>>>>> work-arounds that can be activated in AGENT++.
>>>>>
>>>>> I have reported those bugs to NET-SNMP.org but they
>>>>> seem not to be able to fix them for about four years
>>>>> now. When you run the NET-SNMP subagent on a 64bit
>>>>> machine, things get even worse.
>>>>>
>>>>>> I've made a master AgentX that uses net-snmp as subagent to provide
>>>>>> mib-II
>>>>>> information. I get a general failure if I try to get some of the
>>>>>> OIDs.
>>>>>> This only occurs when running net-snmp as subagent, because it will
>>>>>> return
>>>>>> the whole tree if running standalone.
>>>>>>
>>>>>> # snmpwalk -v 2c -c public localhost
>>>>>> <snip some output>
>>>>>> IF-MIB::ifOutQLen.2 = Gauge32: 0
>>>>>> IF-MIB::ifOutQLen.3 = Gauge32: 0
>>>>>> Error in packet.
>>>>>> Reason: (genError) A general failure occured
>>>>>> Failed object: IF-MIB::ifOutQLen.3
>>>>>>
>>>>>> # snmpwalk -v 2c -c public localhost IF-MIB::ifOutQLen.3
>>>>>> Error in packet.
>>>>>> Reason: (genError) A general failure occured
>>>>>> Failed object: IF-MIB::ifOutQLen.3
>>>>>>
>>>>>> My agent outputs this:
>>>>>> 20070202.22:25:53: 567: (1)ERROR  : MasterAgentXMib: invalid AgentX
>>>>>> response
>>>>>> (sd)(sid)(tid)(req-vbs)(resp-vbs): (15), (1), (96), (1), (0)
>>>>>>
>>>>>> I've tried using the plain master agent from the examples directory,
>>>>>> and
>>>>>> net-snmp 5.3.1 and 5.4 but the results are the same.
>>
>
> --
> AGENT++
> http://www.agentpp.com
> http://www.mibexplorer.com
> http://www.mibdesigner.com
>
>


-- 
Johnny Ljunggren, Navtek AS




More information about the AGENTPP mailing list