Skip to content

Add EthernetSegment resource and NX-OS provider implementation#378

Open
felix-kaestner wants to merge 1 commit into
mainfrom
evpn-multihoming
Open

Add EthernetSegment resource and NX-OS provider implementation#378
felix-kaestner wants to merge 1 commit into
mainfrom
evpn-multihoming

Conversation

@felix-kaestner

Copy link
Copy Markdown
Contributor

Introduce the EthernetSegment API type for EVPN multi-homing (RFC 7432 Section 5) with controller, CRD, and NX-OS provider.

The controller validates that the referenced interface is an aggregate with switchport configuration and watches for switchport state transitions. The NX-OS provider enables EVPN multihoming globally, configures the ESI per port-channel via a subtree patch, and rejects SingleActive mode and vPC coexistence with typed terminal errors.

@felix-kaestner felix-kaestner force-pushed the evpn-multihoming branch 3 times, most recently from e562595 to 6dc0ffb Compare May 28, 2026 19:50
@felix-kaestner felix-kaestner marked this pull request as ready for review May 28, 2026 20:01
@felix-kaestner felix-kaestner requested a review from a team as a code owner May 28, 2026 20:01
@felix-kaestner felix-kaestner marked this pull request as draft June 4, 2026 09:23

@nikatza nikatza left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, many thanks for this PR! There are some issues that can we could resolve quickly, so I hope we can merge it soon.

We may want to include the ethernet-segment routes in this API, however it would only mean an extension (and preferably in a follow-up).

Looking forward! 🔥

Comment thread api/core/v1alpha1/ethernetsegment_types.go Outdated
Comment thread internal/controller/core/ethernetsegment_controller.go
Comment thread internal/controller/core/ethernetsegment_controller.go Outdated
Comment thread internal/controller/core/ethernetsegment_controller_test.go
Comment thread internal/provider/cisco/nxos/testdata/esi_interface.json
Comment thread internal/provider/cisco/nxos/provider.go Outdated
@felix-kaestner felix-kaestner requested a review from nikatza June 26, 2026 17:17
@felix-kaestner felix-kaestner marked this pull request as ready for review June 26, 2026 17:17
@felix-kaestner felix-kaestner force-pushed the evpn-multihoming branch 2 times, most recently from bca76eb to ee5879c Compare June 29, 2026 09:49
Introduce the EthernetSegment API type for EVPN multi-homing
(RFC 7432 Section 5) with controller, CRD, and NX-OS provider.

The controller validates that the referenced interface is an
aggregate with switchport configuration and watches for switchport
state transitions. The NX-OS provider enables EVPN multihoming
globally, configures the ESI per port-channel via a subtree patch,
and rejects SingleActive mode and vPC coexistence with typed
terminal errors.

Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
@github-actions

Copy link
Copy Markdown

Merging this branch changes the coverage (1 decrease, 1 increase)

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1 0.00% (ø)
github.com/ironcore-dev/network-operator/cmd 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/controller/core 63.82% (+0.32%) 👍
github.com/ironcore-dev/network-operator/internal/provider 52.00% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos 9.78% (-0.21%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1/ethernetsegment_types.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/api/core/v1alpha1/groupversion_info.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/api/core/v1alpha1/zz_generated.deepcopy.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/cmd/main.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller.go 66.83% (+66.83%) 208 (+208) 139 (+139) 69 (+69) 🌟
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/esi.go 30.00% (+30.00%) 10 (+10) 3 (+3) 7 (+7) 🌟
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/provider.go 0.05% (-0.00%) 1880 (+75) 1 1879 (+75) 👎
github.com/ironcore-dev/network-operator/internal/provider/provider.go 52.00% (ø) 25 13 12

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.

Changed unit test files

  • github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/suite_test.go
  • github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/esi_test.go

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants