[Nexthop] Fix baseline stats retrieval for ACL queue per host tests - #1508
Open
vvasavada-nexthop wants to merge 1 commit into
Open
[Nexthop] Fix baseline stats retrieval for ACL queue per host tests#1508vvasavada-nexthop wants to merge 1 commit into
vvasavada-nexthop wants to merge 1 commit into
Conversation
Signed-off-by: Vishrant Vasavada <vvasavada@nexthop.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-submission checklist
pip install -r requirements-dev.txt && pre-commit installpre-commit runSummary
The test expects to run as follows:
statBeforestatAfterstatAfter - statBeforeis expected valueProblem:
The HW agent process polls the ACL counters and pushes them to the SW agent every 1s. Until the first push lands, the SW agent's cached stats map is empty - and the old
getAclInOutPacketscouldn't distinguish "noHwSwitchhas reported this coutner yet" from "the counter reports 0". It returned 0 for both.Across a warm boot the hardware counter keeps it pre-warmboot value (20). But if the baseline is read before the first stats push arrives,
statBeforegets 0 instead of 20, so the delta comes out as the full accumulated count:Since
statBeforeis not inWITH_RETRIESloop, it stays 0 for full 30s until timeout.Fix:
getAclInOutPacketsIfreturnsnulloptwhen no HwSwitch has reported the counter, and 0 only when 0 is genuinely reported.getLatestAclInOutPacketswraps it to wait until the counter is present, mirroring howgetLatestPortStatswaits for port stats. Only the baseline snapshot switch to it -getAclInOutPacketskeeps its existing absent-is-0 behavior, so other tests are unchanged.As a side fix, also make sure
HwFb303Counter::cumulativeValueis explicitly inited to 0.Test Plan