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

Reply via email to