vrf: fix route filter to use output iface #927
Merged
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.
Summary
The route filter currently filters based on the
LinkIndex
andScope
. The corresponding filter flag forLinkIndex
should benetlink.RT_FILTER_OIF
, and notnetlink.RT_FILTER_IIF
. This renders the filter ineffective, causing the wrong routes to be copied into the new VRF.The netlink code here tells us which filter flags corresponds to which field.
Example
I have a k8s cluster that's using Multus to have multiple interfaces. Here's a concrete example demonstrating this issue:
PR notes
checkRoutesOnVRF
to filter only based on the table ID so we can check theLinkIndex
of the routes that were copied to the new VRF