Skip to content

[NX-OS] Refactor BGP ownership marker to per-VRF peer templates#394

Open
felix-kaestner wants to merge 1 commit into
mainfrom
fix-bgp
Open

[NX-OS] Refactor BGP ownership marker to per-VRF peer templates#394
felix-kaestner wants to merge 1 commit into
mainfrom
fix-bgp

Conversation

@felix-kaestner
Copy link
Copy Markdown
Contributor

Previously, a single operator-managed peer template was written into every BGP domain. Since NX-OS only supports peer templates under the default VRF domain, this was incorrect for non-default VRFs.

Write a unique marker per managed BGP domain into the default VRF domain using the pattern operator-managed--. This allows the operator to track all managed instances and on deletion determine whether it is safe to remove the global BGP instance.

On deletion of a non-default VRF domain, the marker is removed and the domain deleted. For the default VRF, the domain is atomically replaced with only the remaining markers as the default VRF unconditionally always exists in a bgp instance, even when only non-default VRFs are configured. The global BGP instance is only deleted when no ownership markers remain.

Previously, a single __operator-managed__ peer template was written
into every BGP domain. Since NX-OS only supports peer templates under
the default VRF domain, this was incorrect for non-default VRFs.

Write a unique marker per managed BGP domain into the default VRF
domain using the pattern __operator-managed--<vrfName>__. This allows
the operator to track all managed instances and on deletion determine
whether it is safe to remove the global BGP instance.

On deletion of a non-default VRF domain, the marker is removed and
the domain deleted. For the default VRF, the domain is atomically
replaced with only the remaining markers as the default VRF
unconditionally always exists in a bgp instance, even when only
non-default VRFs are configured. The global BGP instance is only deleted
when no ownership markers remain.

Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
@felix-kaestner felix-kaestner requested a review from a team as a code owner June 2, 2026 13:28
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

Merging this branch will decrease overall coverage

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos 9.88% (-0.07%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/bgp.go 24.19% (-0.81%) 62 (+2) 15 47 (+2) 👎
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/provider.go 0.06% (-0.00%) 1794 (+15) 1 1793 (+15) 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant