Hi all,
I’m encountering an issue using SNMP4J (version 2.8.7) with SNMPv3 when polling a network device.
Problem Summary
After the engine ID is discovered and polling begins successfully, SNMP4J suddenly sends a get-next-request
with an incorrect and much higher msgAuthoritativeEngineTime
. This causes the remote device to drop the packet.
Observed Behavior (from Wireshark)
-
Initial discovery works:
- Sent “empty” SNMPv3 request → received
usmStatsUnknownEngineIDs
(1.3.6.1.6.3.15.1.1.4.0
) with engineID, boots, and time. Engine time is 422,336 (seconds)
- Sent “empty” SNMPv3 request → received
-
Sent again with contextName → got the same
unknownEngineIDs
response. -
Sent proper
get-next-request
for OID1.3.6.1.2.1.1.2
→ received correct response (1.3.6.1.2.1.1.2.0
with a value) -
Next
get-next-request
(1.3.6.1.2.1.1.2.0
) → received1.3.6.1.2.1.1.3.0
which is sysUpTimeInstance with value of 1.3.6.1.2.1.1.3.0: 44758458 (in hundredths of a second) → 447,584.58 seconds -
Suddenly, next request is sent with a large
msgAuthoritativeEngineTime
(27,222,514), which the agent rejects.
Questions
- What could cause SNMP4J to reset or recompute
msgAuthoritativeEngineTime
incorrectly after previous success? - Is it possible that internal USM cache is cleared or reset unexpectedly?
- How can I ensure that engine time tracking persists reliably between requests?
Any insights would be greatly appreciated.
If more info is needed, let me know. I will try my best to provide it. I can’t share IPs and other
Thanks