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