Fix issue #115: NexthopGroup member change is not supported #120
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.
Why
When running test_vxlan_ecmp sonic-mgmt test, I found nexthop group member change is not supported. This can happen in many situations. For this particular test case, a nexthop group member can be added or removed dynamically triggered by bfd state change. When nexthop group member changed, we need to delete the routes and reprogram them if they point to the nexthop group.
What does this PR do
In short, when a nexthop group member is created or deleted, we need to find all the routes pointing to the nexthop group and reprogram them because vpp doesn't have an object in data plane corresponding to nexthop group. In comparison, in Broadcom J/J2 chip, FEC is a hardware representation of nexthop group, with which we don't need to reprogram routes if member changes.
Here are the changes to support above action.