Skip to content

Fix SNMPv3 advance cached authoritative engineTime with the local clock#309

Open
n3-ruben-sanchez wants to merge 1 commit into
markabrahams:masterfrom
n3-ruben-sanchez:advance-engine-time
Open

Fix SNMPv3 advance cached authoritative engineTime with the local clock#309
n3-ruben-sanchez wants to merge 1 commit into
markabrahams:masterfrom
n3-ruben-sanchez:advance-engine-time

Conversation

@n3-ruben-sanchez

Copy link
Copy Markdown

The USM engineTime was frozen at the value learned during discovery and never advanced, so after ~150s of wall-clock drift the agent rejected requests with usmStatsNotInTimeWindows. The single per-request resync retry could not recover on agents with an erratic clock, leaving the session permanently broken until restart.

Track the authoritative (engineBoots, engineTime) plus a monotonic timestamp when learned, and advance engineTime by the elapsed seconds on each outgoing v3 request (RFC 3414 section 2.3). Re-anchor from every authenticated message (Report and GetResponse), not just Reports, with a forward-only guard so reordered/delayed responses cannot rewind time. Handle the 31-bit engineTime rollover, and only anchor from authenticated sessions.

The USM engineTime was frozen at the value learned during discovery and
never advanced, so after ~150s of wall-clock drift the agent rejected
requests with usmStatsNotInTimeWindows. The single per-request resync
retry could not recover on agents with an erratic clock, leaving the
session permanently broken until restart.

Track the authoritative (engineBoots, engineTime) plus a monotonic
timestamp when learned, and advance engineTime by the elapsed seconds on
each outgoing v3 request (RFC 3414 section 2.3). Re-anchor from every
authenticated message (Report and GetResponse), not just Reports, with a
forward-only guard so reordered/delayed responses cannot rewind time.
Handle the 31-bit engineTime rollover, and only anchor from
authenticated sessions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant