vxlan: T6401: Avoid calling get_vxlan_vni_filter() unless we need it #3573
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.
Change Summary
bridge vni show dev vxlanX
will exit with an error if no VNI filters are installed, but the getter is used even when we haven't installed any.This fix avoids fetching a list of VNI filters unless we know we've created some.
Types of changes
Related Task(s)
Related PR(s)
Component(s) name
Proposed changes
I've got 2 fix attempts for this, the first one had get_vxlan_vni_filter() check the return code from bridge and return an empty list on error. This is the second, which simply avoids calling get_vxlan_vni_filter() if vni-filter is not enabled.
There only appears to be one caller into get_vxlan_vni_filter(), most accessors in vyos.utils don't bother wrapping errors, so I've switched to this solution.
How to test
bridge
does seem to react differently depending on what is configured.Smoketest result
Checklist: