In SNMP v3, any message that requires that the receiver sends back a reply, the sender must use the receiver engine id. Engine Id is a unique value that identifies a specific SNMP device.
For example, get, set, walk .... from the SNMP manager require that the manager use the agent engine id. An inform requires that the sender must use the receiver engine id because the receiver must acknowledge the inform. The way to determine the receiver engine id is to send a discovery packet which is a get with specific PDU values (see the link below). So, my guess is: #1 is a discovery message. # 2 a report message from the receiver with its engine id. #3 The actual inform message (However, I am a bit hazy about whether #3 needs the boot number and system uptime or not for it to be a valid inform. My understanding is that the actual boot and system uptime are required for the receiver to determine if this is a new message or an old, stalled message. Please somebody correct me if I am wrong). #4 Acknowledgement from the receiver. I don't have access to your messages to determine if the above is correct. Read this https://www.dialogic.com/generatedpdfs/bn-sbc/bordernet_sbc_3-8-1/SNMP-Guide.pdf specifically section 2.3 which explains the discovery mechanism. Also, check the function: int snmpv3_probe_contextEngineID_rfc5343(struct session_list *slp, netsnmp_session *session) and the one above it static struct session_list * snmp_sess_copy(netsnmp_session * pss) in the snmp_api.c file. I also read somewhere that you can send inform with null or wrong engine id and the receiver will send you an error message, but it will contain its engine Id which you can use for subsequent inform message sending. I hope this is clear, I would appreciate any correction to what I wrote above. All the best, Mostafa Kassem ________________________________ From: Pushpa Thimmaiah <pushpa.thimma...@gmail.com> Sent: Friday, February 23, 2024 3:24 AM To: Net-SNMP Coders <net-snmp-coders@lists.sourceforge.net> Subject: [*Newsletter*] snmpv3 inform packets CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi All, I have noticed that there are four packets exchange between snmp-agent and trap-receiver for snmpv3-inform. I would like to know what are information exchanged. 1. get request : Agent---> Receiver 2. Response : Agent <---- Receiver ( PDU contain receiver's engineID but boot and enginetime are zero) 3. send trap : Agent -----> Receiver (trap pdu has snmpv3 user credentials and receiver's engineID, but boot and enginetime are zero) 4. ACK?? : Agent <----- Receiver (PDU contain receiver's engineID, also boot and engineTime ) Kindly provide more details. It will help me to understand snmpv3 informs. Thank You, Pushpa.T
_______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders