[Cisco]Fix programmed status for resolved named next-hop groups - #1431
Open
selekkala wants to merge 2 commits into
Open
[Cisco]Fix programmed status for resolved named next-hop groups#1431selekkala wants to merge 2 commits into
selekkala wants to merge 2 commits into
Conversation
Track original client next-hop set IDs for resolved FIB routes when computing NHG programming status. Add state and Thrift regression coverage for resolved and unresolved groups.
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
getNextHopGroups()andgetNamedNextHopGroups()can reportisProgrammed=falsefor a named next-hop group that has been successfullyresolved and programmed.
The named-group lookup uses the original client
NextHopSetID, while the FIBforwarding entry contains the resolved and normalized IDs after recursive
resolution. As a result, the original ID is absent from the route reference
counts used to compute
isProgrammed.This change:
have a resolved next-hop set ID.
isProgrammedin both next-hop-groupThrift GET APIs.
behavior unchanged.
and unused named next-hop groups.
Test Plan
Validated the fix with focused unit tests in Docker:
FibInfoTest.GetResolvedClientNextHopSetIdsFromRoutesresolved next-hop set IDs.
NamedNextHopGroupThriftTest.getNextHopGroupsNamedIsProgrammedgetNextHopGroups()andgetNamedNextHopGroups().isProgrammed=true, unreferencedgroups return
false, and both APIs return the same status.Result: 2/2 tests passed. Formatting and whitespace checks also passed.
Unit-test log