Support per-VNI multisite ingress replication in EVPNInstance - #577
Draft
adamtrizuljak-sap wants to merge 2 commits into
Draft
adamtrizuljak-sap wants to merge 2 commits into
adamtrizuljak-sap wants to merge 2 commits into
Conversation
Signed-off-by: Adam Trizuljak <adam.trizuljak@sap.com>
The field is not a boolean but a string field with allowed values disable, enable, enableOptimized Signed-off-by: Adam Trizuljak <adam.trizuljak@sap.com>
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.
Adds a
multisiteIngReplfield to theEVPNInstanceAPI and realizes it on the Cisco NX-OS provider, enabling per-VNI multisite ingress replication on Border Gateway (BGW) nodes. When enabled, BUM (Broadcast, Unknown-unicast, Multicast) traffic for a VNI is replicated via unicast to remote VTEP peers in the multisite domain instead of relying on multicast.This maps to the NX-OS CLI:
and the YANG leaf
multisiteIngReplat:multisiteIngRepl: Enabledrequireseven multisite border-gatewayto be enabled, which is not yet supported in network-operator. See the Testing section for details. This PR is a pre-requisite for supportingeven multisite border-gateway.Changes
API (
EVPNInstance)spec.multisiteIngReplonEVPNInstanceSpec, typed as aMultisiteIngReplModeenum with valuesDisabled(default),Enabled, andEnabledOptimized.nvo_MultisiteIngReplStateT:disable/enable/enableOptimized), not a boolean — the API surfacesthese using the repo's PascalCase enum convention.
Provider (Cisco NX-OS)
MultisiteIngReplprovider enum (disable/enable/enableOptimized)and a corresponding field on the
VNIstruct.EnsureEVPNInstancemaps the API enum to the provider value; thedefaultbranch resolves
Disabledto the platform defaultdisable, so anunconfigured VNI produces no false diff on reconcile.
Generated artifacts
config/crd/bases), Helm chart CRD copy, and API referencedocs to reflect the new enum field and its
Disableddefault.Notes
Disabled, so existingEVPNInstanceresources are unaffected.
Testing
disable,enable,enableOptimized).evpninstance.txtar) updated: a default EVPNInstancenow emits
"multisiteIngRepl": "disable".make manifests generate helm fmt lint testandmake test-gnmi PROVIDER=cisco-nxos-gnmiall pass.Simulated device
Tested against a simulated Cisco N9K-C9300v in Clabernets. Results of reading the path using
gnmic -a 127.0.0.1 --port 9339 -u *** -p *** --skip-verify get -e json --values-only --path 'System/eps-items/epId-items/Ep-list[epId=1]/nws-items/vni-items/Nw-list[vni=100010]/multisiteIngRepl'spec.multisiteIngRepl"Disabled"["disabled"]Enabled[]- causes controller errorEnabledOptimized["enableOptimized"]Setting
multisiteIngRepl: Enabledproduces the following error. This is expected, becauseevpn multisite border-gatewayis not yet supported in network-operator. This PR is a pre-requisite for supportingeven multisite border-gateway.YANG
Reference https://github.com/YangModels/yang/blob/main/vendor/cisco/nx/10.6-3/Cisco-NX-OS-device.yang
Allowed values of
multisiteIngRepl: