Hi,

I am using net-snmp 5.4 and need to share the udpTable among Master and a
subagent. For this I tried to register a single row in subagent by
qualifying the oid value with index as the combination of IP and port i.e
127.0.0.66:4006 (netstat –shows that UDP port id is indeed opened for
127.0.0.66:4006 on my box)

I specifically made the following changes in udpTable.c current
implementation:

udpTable_oid_sub[] = { SNMP_OID_MIB2, 7, 5, 1, 1, 127, 0, 0, 66, 4006 }.

reginfo = netsnmp_create_handler_registration("udpTable",

            udpTable_handler,

            udpTable_oid_sub, OID_LENGTH(udpTable_oid_sub),

            HANDLER_CAN_RONLY);

reginfo->range_subid = OID_LENGTH(udpTable_oid_sub) - 5; //The position of
the first accessible column in the OID instance i.e udpLocalAddr)

reginfo->range_ubound = 2; //Since there are 2 columns in the table


netsnmp_register_table_iterator(reginfo, iinfo);

netsnmp_inject_handler( reginfo,

            netsnmp_get_cache_handler(UDP_STATS_CACHE_TIMEOUT,

                    udpTable_load, udpTable_free,

                    udpTable_oid_sub, OID_LENGTH(udpTable_oid_sub)));



I managed to get the packet dump on Master Agent and analysed that the
agentx registration was indeed succesful. Now when the SNMP get request is
received on Master for OID 1.3.6.1.2.1.7.5.1.1.127.0.0.66.4006 (which was
registered from subagent) its correctly relayed to subagent. *However
udpTable_handler() is not being called and the snmp query returns
NOSUCHINSTANCE.*



Doing snmpwalk on the udpTable returns following:



UDP-MIB::udpLocalAddress.127.0.0.66.4006.1.1.127.0.0.66.4006 = IpAddress:
127.0.0.66

UDP-MIB::udpLocalAddress.127.0.0.66.4006.1.2.127.0.0.66.4006 = Wrong Type
(should be IpAddress): INTEGER: 4006



Is the above way to register a row of a table correct?


Thanks,

Manu



===================================================

Agentx Packet Dump for registration followed by snmpget on Master:

===================================================



dumph_recv: AgentX Header

dumph_recv:   Version

dumpx_recv:    01

dumpv_recv:      Version:       1

dumph_recv:   Command

dumpx_recv:    03

dumpv_recv:      Command:       3 (Register)

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:    90 C4 4B 2B

dumpv_recv:      Integer:       726385808 (0x2B4BC490)

dumph_recv:   Payload Length

dumpx_recv:    34 00 00 00

dumpv_recv:      Integer:       52 (0x34)

dumph_recv:   PDU

dumph_recv:       Registration Header

dumpx_recv:        00

dumpv_recv:          Timeout:           0

dumpx_recv:        7F

dumpv_recv:          Priority:          127

dumpx_recv:        0A

dumpv_recv:          Range Sub-Id:      10

dumph_recv:       Registration OID

dumph_recv:         OID Header

0A 02 00 00

dumpv_recv:            # subids:        10 (0x0A)

dumpv_recv:             prefix:         2 (0x02)

dumpv_recv:             inclusive:      0 (0x00)

dumph_recv:         OID Segments

dumpx_recv:          01 00 00 00

dumpv_recv:            Integer: 1 (0x01)

dumpx_recv:          07 00 00 00

dumpv_recv:            Integer: 7 (0x07)

dumpx_recv:          05 00 00 00

dumpv_recv:            Integer: 5 (0x05)

dumpx_recv:          01 00 00 00

dumpv_recv:            Integer: 1 (0x01)

dumpx_recv:          01 00 00 00

dumpv_recv:            Integer: 1 (0x01)

dumpx_recv:          7F 00 00 00

dumpv_recv:            Integer: 127 (0x7F)

dumpx_recv:          00 00 00 00

dumpv_recv:            Integer: 0 (0x00)

dumpx_recv:          00 00 00 00

dumpv_recv:            Integer: 0 (0x00)

dumpx_recv:          42 00 00 00

dumpv_recv:            Integer: 66 (0x42)

dumpx_recv:          A6 0F 00 00

dumpv_recv:            Integer: 4006 (0xFA6)

dumpv_recv:         OID: RFC1213-MIB::udpLocalAddress.127.0.0.66.4006

dumpx_recv:      02 00 00 00

dumpv_recv:        Integer:     2 (0x02)

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:    00 00 00 00

dumpv_send:      Integer:       0 (0x00)

dumph_send:   Request ID

dumpx_send:    90 C4 4B 2B

dumpv_send:      Integer:       726385808 (0x2B4BC490)

dumph_send:   Dummy Length :-(

dumpx_send:    00 00 00 00

dumpv_send:      Integer:       0 (0x00)

dumph_send: AgentX Payload

dumpx_send:  26 03 00 00

dumpv_send:    Integer: 806 (0x326)

dumph_send:   Response

dumpx_send:    26 03 00 00

dumpv_send:      sysUpTime:     806

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:        06 00

dumpv_send:          Short:     6 (0x06)

dumph_send:       name

dumpv_send:         OID: RFC1213-MIB::udpLocalAddress.127.0.0.66.4006

dumph_send:         OID Header

dumpx_send:          0A 02 00 00

dumpv_send:            # subids:        10 (0x0A)

dumpv_send:             prefix: 2 (0x02)

dumpv_send:             inclusive:      0 (0x00)

dumph_send:         OID Segments

dumpx_send:          01 00 00 00

dumpv_send:            Integer: 1 (0x01)

dumpx_send:          07 00 00 00

dumpv_send:            Integer: 7 (0x07)

dumpx_send:          05 00 00 00

dumpv_send:            Integer: 5 (0x05)

dumpx_send:          01 00 00 00

dumpv_send:            Integer: 1 (0x01)

dumpx_send:          01 00 00 00

dumpv_send:            Integer: 1 (0x01)

dumpx_send:          7F 00 00 00

dumpv_send:            Integer: 127 (0x7F)

dumpx_send:          00 00 00 00

dumpv_send:            Integer: 0 (0x00)

dumpx_send:          00 00 00 00

dumpv_send:            Integer: 0 (0x00)

dumpx_send:          42 00 00 00

dumpv_send:            Integer: 66 (0x42)

dumpx_send:          A6 0F 00 00

dumpv_send:            Integer: 4006 (0xFA6)

dumph_send:       value

dumpv_send:         OID: RFC1213-MIB::udpLocalPort.127.0.0.66.4006

dumph_send:         OID Header

dumpx_send:          0A 02 01 00

dumpv_send:            # subids:        10 (0x0A)

dumpv_send:             prefix: 2 (0x02)

dumpv_send:             inclusive:      1 (0x01)

dumph_send:         OID Segments

dumpx_send:          01 00 00 00

dumpv_send:            Integer: 1 (0x01)

dumpx_send:          07 00 00 00

dumpv_send:            Integer: 7 (0x07)

dumpv_send:            Integer: 5 (0x05)

dumpx_send:          01 00 00 00

dumpv_send:            Integer: 1 (0x01)

dumpx_send:          02 00 00 00

dumpv_send:            Integer: 2 (0x02)

dumpx_send:          7F 00 00 00

dumpv_send:            Integer: 127 (0x7F)

dumpx_send:          00 00 00 00

dumpv_send:            Integer: 0 (0x00)

dumpx_send:          00 00 00 00

dumpv_send:            Integer: 0 (0x00)

dumpx_send:          42 00 00 00

dumpv_send:            Integer: 66 (0x42)

dumpx_send:          A6 0F 00 00

dumpv_send:            Integer: 4006 (0xFA6)

dumpx_send:64 00 00 00

dumpv_send:  Integer:   100 (0x64)







Connection from UDP: [1.x.x.x]:yyyyy

Received SNMP packet(s) from UDP: [1.x.x.x]:yyyyy

dumpx_recv:02 01 00

dumpv_recv:  Integer:   0 (0x00)

dumph_recv: SNMPv1 message



dumph_recv:   SNMP version

dumpx_recv:    02 01 00

dumpv_recv:      Integer:       0 (0x00)

dumph_recv:   community string

dumpx_recv:    04 06 70 75 62 6C 69 63

dumpv_recv:      String:        public

dumph_recv:   PDU

dumpv_recv:     Command GET

dumph_recv:     request_id

dumpx_recv:      02 04 73 14 09 2D

dumpv_recv:        Integer:     1930692909 (0x7314092D)

dumph_recv:     error status

dumpx_recv:      02 01 00

dumpv_recv:        Integer:     0 (0x00)

dumph_recv:     error index

dumpx_recv:      02 01 00

dumpv_recv:        Integer:     0 (0x00)

dumph_recv:     VarBindList

dumph_recv:       VarBind

dumph_recv:         Name

dumpx_recv:          06 0F 2B 06 01 02 01 07 05 01 01 7F 00 00 42 9F

26

dumpv_recv:            ObjID: RFC1213-MIB::udpLocalAddress.127.0.0.66.4006

dumph_recv:         Value

  GET message

    -- RFC1213-MIB::udpLocalAddress.127.0.0.66.4006

dumph_send: AgentX Header

dumpx_send:  01 05 00 00

dumpv_send:    Version: 1

dumpv_send:     Command:        5 (Get)

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

dumph_send:   Get* Variable List

dumpv_send:     OID: RFC1213-MIB::udpLocalAddress.127.0.0.66.4006

dumph_send:     OID Header

dumpx_send:      0A 02 00 00

dumpv_send:        # subids:    10 (0x0A)

dumpv_send:         prefix:     2 (0x02)

dumpv_send:         inclusive:  0 (0x00)

dumph_send:     OID Segments

dumpx_send:      01 00 00 00

dumpv_send:        Integer:     1 (0x01)

dumpx_send:      07 00 00 00

dumpv_send:        Integer:     7 (0x07)

dumpx_send:      05 00 00 00

dumpv_send:        Integer:     5 (0x05)

dumpx_send:      01 00 00 00

dumpv_send:        Integer:     1 (0x01)

dumpx_send:      01 00 00 00

dumpv_send:        Integer:     1 (0x01)

dumpx_send:      7F 00 00 00

dumpv_send:        Integer:     127 (0x7F)

dumpx_send:      00 00 00 00

dumpv_send:        Integer:     0 (0x00)

dumpx_send:      00 00 00 00

dumpv_send:        Integer:     0 (0x00)

dumpx_send:      42 00 00 00

dumpv_send:        Integer:     66 (0x42)

dumpx_send:      A6 0F 00 00

dumpv_send:        Integer:     4006 (0xFA6)

dumpv_send:     OID: ccitt

dumph_send:     OID Header

dumpx_send:      00 00 00 00

dumpv_send:        # subids:    0 (0x00)

dumpv_send:         prefix:     0 (0x00)

dumpv_send:         inclusive:  0 (0x00)

dumph_send:     OID Segments

dumpx_send:30 00 00 00

dumpv_send:  Integer:   48 (0x30)
------------------------------------------------------------------------------
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to