Re: ASN_COUNTER64 weirdness in agentx agent
Lothar Werzinger <[email protected]>
| Newsgroups | gmane.network.net-snmp.user |
|---|---|
| Organization | Tradescape Inc. |
| Message-ID | <[email protected]> |
On Wednesday 18 April 2007 01:36, Dave Shield wrote:
> OK - I'm beginning to see what might be going wrong.
>
> Note that Flags is 0x0, so according to RFC 2741, section 6.1:
>
> The NETWORK_BYTE_ORDER bit applies to all multi-byte integer
> values in the entire AgentX packet, including the remaining
> header fields. If set, then network byte order (most
> significant byte first; "big endian") is used. If not set,
> then least significant byte first ("little endian") is used.
>
> this packet should be using "little endian" encoding.
>
>
> Then later in the dump, after
>
> Apr 17 15:44:07 zaphod snmpd[10347]: dumpv_recv:
> OID SNMPv2-SMI::enterprises.424242.1.2.1.0
>
> comes
>
> Apr 17 15:44:07 zaphod snmpd[10347]: dumpx_recv: 00 00 00 00
> Apr 17 15:44:07 zaphod snmpd[10347]: dumpv_recv: Integer:^I0
> (0x00) Apr 17 15:44:07 zaphod snmpd[10347]: dumpx_recv: 92 10 00
> 00 Apr 17 15:44:07 zaphod snmpd[10347]: dumpv_recv:
> Integer:^I4242 (0x1092)
>
> which is the value of this counter.
> The second four octets contain the desired value (4242),
> but remember that we're working in 'little endian' order, so
> these actually represent the upper 32-bits of a 64-bit value.
> The full value is therefore 0x 00001092 00000000
> i.e. 18219251269632
>
> which is exactly the value being returned by the master agent:
>
> Apr 17 15:44:07 zaphod snmpd[10347]: dumph_send: PDU-RESPONSE
> Apr 17 15:44:07 zaphod snmpd[10347]: dumph_send: VarBind
> Apr 17 15:44:07 zaphod snmpd[10347]: dumph_send: Value
> Apr 17 15:44:07 zaphod snmpd[10347]: dumpx_send: 46 06 10 92 00 00
> Apr 17 15:44:07 zaphod snmpd[10347]: dumpv_send: U64: 0
> 18219251269632
>
>
> So the problem lies with the subagent, in the encoding of the response.
> It's got the two halves of the counter64 value the wrong way round.
>
> I've looked at the code for encoding Counter64 values (in
> agentx/protocol.c) and at first glance it looks OK.
>
> Can you try setting the same '-Ddump' debugging flag for your AgentX
> subagent, and report what this displays when sending this response?
> (Don't bother zipping up the log - raw text should be fine.)
Here it is.
> Dave
Lothar
--
Lothar Werzinger Dipl.-Ing. Univ.
framework & platform architect
Tradescape Inc.
111 West St. John Street, Suite 200
San Jose, Ca 95113
web: http://www.tradescape.biz
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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
log.txt
(text/plain, 6.7 KB)
dumpx_recv:20 00 00 00 dumpv_recv: Integer: 32 (0x20) dumph_recv: AgentX Header dumph_recv: Version dumpx_recv: 01 dumpv_recv: Version: 1 dumph_recv: Command dumpx_recv: 05 dumpv_recv: Command: 5 (Get) dumph_recv: Flags dumpx_recv: 00 dumpv_recv: Flags: 0x0 dumph_recv: Reserved Byte dumpx_recv: 00 dumpv_recv: Reserved: 0x0 dumph_recv: Session ID dumpx_recv: 06 00 00 00 dumpv_recv: Integer: 6 (0x06) dumph_recv: Transaction ID dumpx_recv: 01 00 00 00 dumpv_recv: Integer: 1 (0x01) dumph_recv: Packet ID dumpx_recv: 02 00 00 00 dumpv_recv: Integer: 2 (0x02) dumph_recv: Payload Length dumpx_recv: 20 00 00 00 dumpv_recv: Integer: 32 (0x20) dumph_recv: PDU dumph_recv: Search Range dumph_recv: OID Header dumpx_recv: 06 04 00 00 dumpv_recv: # subids: 6 (0x06) dumpv_recv: prefix: 4 (0x04) dumpv_recv: inclusive: 0 (0x00) dumph_recv: OID Segments dumpx_recv: 01 00 00 00 dumpv_recv: Integer: 1 (0x01) dumpx_recv: 32 79 06 00 dumpv_recv: Integer: 424242 (0x67932) dumpx_recv: 01 00 00 00 dumpv_recv: Integer: 1 (0x01) dumpx_recv: 02 00 00 00 dumpv_recv: Integer: 2 (0x02) dumpx_recv: 01 00 00 00 dumpv_recv: Integer: 1 (0x01) dumpx_recv: 00 00 00 00 dumpv_recv: Integer: 0 (0x00) dumpv_recv: OID: iso.3.6.1.4.1.424242.1.2.1.0 dumph_recv: OID Header dumpx_recv: 00 00 00 00 dumpv_recv: # subids: 0 (0x00) dumpv_recv: prefix: 0 (0x00) dumpv_recv: inclusive: 0 (0x00) dumph_recv: OID Segments dumpv_recv: OID: NULL (0.0) dump_send_callback_transport: PDU: command = 160, errstat = 0, errindex = 0 dump_send_callback_transport: var 2:iso.3.6.1.4.1.424242.1.2.1.0 = Variable has bad type dump_recv_callback_transport: PDU: command = 160, errstat = 0, errindex = 0 dump_recv_callback_transport: var 2:iso.3.6.1.4.1.424242.1.2.1.0 = Variable has bad type balancemanager: section=balancemanager, context=, name=totalBalances balancemanager: requested mode (160) in balancemanager_handle_totalBalances TRACE - ENTER: uint64Handler DEBUG - rc_section=balancemanager, rc_context=, rc_name=totalBalances DEBUG - uint64Handler done TRACE - EXIT: uint64Handler balancemanager: setting value=(0,4242) sizeof(counter)=16 as ASN_COUNTER64 balancemanager: leaving balancemanager_handle_totalBalances (SNMP_ERR_NOERROR) dump_send_callback_transport: PDU: command = 162, errstat = 0, errindex = 0 dump_send_callback_transport: var 2:iso.3.6.1.4.1.424242.1.2.1.0 = Counter64: 4242 dump_recv_callback_transport: PDU: command = 162, errstat = 0, errindex = 0 dump_recv_callback_transport: var 2:iso.3.6.1.4.1.424242.1.2.1.0 = Counter64: 4242 dumph_send: AgentX Header dumpx_send: 01 12 00 00 dumpv_send: Version: 1 dumpv_send: Command: 18 (Response) dumpv_send: Flags: 00 dumph_send: Session ID dumpx_send: 06 00 00 00 dumpv_send: Integer: 6 (0x06) dumph_send: Transaction ID dumpx_send: 01 00 00 00 dumpv_send: Integer: 1 (0x01) dumph_send: Request ID dumpx_send: 02 00 00 00 dumpv_send: Integer: 2 (0x02) dumph_send: Dummy Length :-( dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumph_send: AgentX Payload dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumph_send: Response dumpx_send: 00 00 00 00 dumpv_send: sysUpTime: 0 dumpx_send: 00 00 dumpv_send: Short: 0 (0x00) dumpx_send: 00 00 dumpv_send: Short: 0 (0x00) dumph_send: Response errors dumpx_send: 00 00 00 00 dumpv_send: errstat: 0 dumpv_send: errindex: 0 dumph_send: Get* Variable List dumph_send: VarBind dumph_send: type dumpx_send: 46 00 dumpv_send: Short: 70 (0x46) dumph_send: name dumpv_send: OID: iso.3.6.1.4.1.424242.1.2.1.0 dumph_send: OID Header dumpx_send: 06 04 00 00 dumpv_send: # subids: 6 (0x06) dumpv_send: prefix: 4 (0x04) dumpv_send: inclusive: 0 (0x00) dumph_send: OID Segments dumpx_send: 01 00 00 00 dumpv_send: Integer: 1 (0x01) dumpx_send: 32 79 06 00 dumpv_send: Integer: 424242 (0x67932) dumpx_send: 01 00 00 00 dumpv_send: Integer: 1 (0x01) dumpx_send: 02 00 00 00 dumpv_send: Integer: 2 (0x02) dumpx_send: 01 00 00 00 dumpv_send: Integer: 1 (0x01) dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumph_send: value dumph_send: Build Counter64 (low, high) dumpx_send: 92 10 00 00 dumpv_send: Integer: 4242 (0x1092) dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumpx_send: 30 00 00 00 dumpv_send: Integer: 48 (0x30) dumph_send: AgentX Header dumpx_send: 01 0D 00 00 dumpv_send: Version: 1 dumpv_send: Command: 13 (Ping) dumpv_send: Flags: 00 dumph_send: Session ID dumpx_send: 06 00 00 00 dumpv_send: Integer: 6 (0x06) dumph_send: Transaction ID dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumph_send: Request ID dumpx_send: 4E 11 B5 67 dumpv_send: Integer: 1739919694 (0x67B5114E) dumph_send: Dummy Length :-( dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumph_send: AgentX Payload dumpx_send: 00 00 00 00 dumpv_send: Integer: 0 (0x00) dumpx_recv: 08 00 00 00 dumpv_recv: Integer: 8 (0x08) dumph_recv: AgentX Header dumph_recv: Version dumpx_recv: 01 dumpv_recv: Version: 1 dumph_recv: Command dumpx_recv: 12 dumpv_recv: Command: 18 (Response) dumph_recv: Flags dumpx_recv: 00 dumpv_recv: Flags: 0x0 dumph_recv: Reserved Byte dumpx_recv: 00 dumpv_recv: Reserved: 0x0 dumph_recv: Session ID dumpx_recv: 06 00 00 00 dumpv_recv: Integer: 6 (0x06) dumph_recv: Transaction ID dumpx_recv: 00 00 00 00 dumpv_recv: Integer: 0 (0x00) dumph_recv: Packet ID dumpx_recv: 4E 11 B5 67 dumpv_recv: Integer: 1739919694 (0x67B5114E) dumph_recv: Payload Length dumpx_recv: 08 00 00 00 dumpv_recv: Integer: 8 (0x08) dumph_recv: PDU dumpx_recv: 82 A7 01 00 dumpv_recv: Integer: 108418 (0x1A782) dumpx_recv: 00 00 dumpv_recv: Short: 0 (0x00) dumpx_recv: 00 00 dumpv_recv: Short: 0 (0x00) dumph_recv: VarBindList