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