Skip to content

Support nxos nd suppress-ra and ra-interval - #581

Draft
ofrzeta wants to merge 3 commits into
ironcore-dev:mainfrom
ofrzeta:support-nxos-nd-suppress-ra-ip-forward
Draft

ofrzeta wants to merge 3 commits into
ironcore-dev:mainfrom
ofrzeta:support-nxos-nd-suppress-ra-ip-forward

Conversation

@ofrzeta

@ofrzeta ofrzeta commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Add spec.ipv6 to the NX-OS InterfaceConfig with suppressRouterAdvertisement and routerAdvertisementInterval (4s to 30m). Neighbor Discovery is only managed while spec.ipv6 is set, and only the suppress-ra flag is touched, so settings configured by other means stay as they are.

Verified on a Nexus 9300v (10.3(9)) against a VyOS peer: with a 4s interval the session recovered in 13s, against 852s with the default.

"ip forward" is not included, as IPv6-only peering doesn't need it.

Oliver Frommel and others added 3 commits September 17, 2026 14:34
Allow a BGPPeer to name an Interface instead of a peer address, so an
eBGP session can run over the peers' IPv6 link-local addresses and the
transit link needs no addressing of its own. The referenced Interface
must set spec.ipv6.useLinkLocalOnly.

spec.address becomes optional and is mutually exclusive with the new
spec.interfaceRef; spec.localAddress is meaningless for such a peer.
Both rules are enforced by CEL and by the webhook. A peer's identity,
its address, interfaceRef or bgpRef, is immutable, as the finalizer
only knows the current identity and would leave the previous peer
behind on the device.

spec.asNumber accepts the sentinel "external" for dynamic AS discovery,
which only applies to interface-based peers.

On NX-OS the peer maps to a PeerIf object under peerif-items, keyed by
the interface name. The device reports an empty asn with asnType
external, which the omitempty payload matches, so reconciliation stays
idempotent. The device-level interface name is recorded in
status.peerInterface, so the finalizer can still remove the peer after
its Interface was deleted.

The openconfig and iosxr providers reject interfaceRef as unsupported
and skip the deletion of such peers as they were never configured on
the device.

The BGPPeer controller now watches Interfaces through a field index
covering both interface references, so a peer converges as soon as its
Interface appears instead of waiting for the periodic requeue.

The NX-OS interface address items are replaced instead of merged,
so addresses removed from the spec, such as global addresses when
switching to link-local only, are removed from the device. As a gNMI
Set applies replace before update operations, they are sent in a
separate Set after the interface itself has been created.

Signed-off-by: Oliver Frommel <oliver.frommel@bwi.de>
* Add handling of firmware upgrades for nxos

    - adds new DeviceMaintenance key "firmware-upgrade"
    - pauses reconciliation while upgrade is running
    - adds DeviceMaintenanceFirmwareTargetAnnotation to
      specify the target firmware version

    nxos provider impletementation
    - ensure enough space, extends NX-API
    timeout during upgrade.
    - image is copied & verified.
    - show incompatibility-all nxos & show install all
    impact nxos are run to check software & hw
    - after install & reload the device is checked for
    version. When boot image matches the target image
    the upgrade is considered done.

Signed-off-by: Ivo Gosemann <ivo.gosemann@sap.com>

* incoporate PR review

Signed-off-by: Ivo Gosemann <ivo.gosemann@sap.com>

* use moq for nxos api client

Signed-off-by: Ivo Gosemann <ivo.gosemann@sap.com>

---------

Signed-off-by: Ivo Gosemann <ivo.gosemann@sap.com>
@ofrzeta
ofrzeta marked this pull request as draft September 18, 2026 09:50
@hardikdr hardikdr added the area/switch-automation Automation processes for network switch management and operations. label Sep 19, 2026
@hardikdr hardikdr added this to Roadmap Sep 19, 2026

This branch has not been deployed

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

Labels

area/switch-automation Automation processes for network switch management and operations.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants