supervisor_switchover_test - openconfig/featureprofiles GitHub Wiki
Validate that the active supervisor can be successfully switched to the standby supervisor in a dual-supervisor system. This test validates the management plane recovery, zero traffic loss over LACP port-channels, and negative corner cases such as back-to-back switchovers.
featureprofiles/topologies/ate_tests/topology_2_ports.testbed
- Configure an LACP port-channel across 2 DUT ports connected to the IXIA/ATE.
- Start continuous data-plane traffic from the IXIA/ATE over the LACP interfaces to the DUT. The traffic must run continuously from the beginning to the end of the entire test suite.
{
"interfaces": {
"interface": [
{
"name": "Port-Channel1",
"config": {
"name": "Port-Channel1",
"type": "iana-if-type:ieee8023adLag"
}
},
{
"name": "Ethernet1",
"config": {
"name": "Ethernet1"
},
"openconfig-if-ethernet:ethernet": {
"openconfig-if-aggregate:config": {
"aggregate-id": "Port-Channel1"
}
}
},
{
"name": "Ethernet2",
"config": {
"name": "Ethernet2"
},
"openconfig-if-ethernet:ethernet": {
"openconfig-if-aggregate:config": {
"aggregate-id": "Port-Channel1"
}
}
}
]
},
"lacp": {
"interfaces": {
"interface": [
{
"name": "Port-Channel1",
"config": {
"name": "Port-Channel1",
"interval": "FAST",
"lacp-mode": "ACTIVE"
}
}
]
}
}
}-
Step 1: Issue
gnoi.SwitchControlProcessorto the chassis. -
Step 2: Validate the switchover was successful:
- Verify the standby RE/SUP becomes active by checking
/components/component/state/redundant-roletransitions toPRIMARY. - Verify the old active RE/SUP transitions to
STANDBY.
- Verify the standby RE/SUP becomes active by checking
-
Step 3: Validate traffic and LACP state during and after the switchover:
- Verify the LACP session does not flap and connected ports remain up (
/interfaces/interface/state/oper-status - Validate the member ports are in-sync (
/lacp/interfaces/interface/members/member/state/synchronizationisIN_SYNC). - Validate there is zero traffic loss from IXIA over the LACP ports during the entire switchover event.
- Verify the LACP session does not flap and connected ports remain up (
-
Step 4: Validate management plane recovery:
- Execute a simple
gNMI.Set(e.g., updating an interface description) and agNMI.Getto ensure the new active supervisor fully processes management operations.
- Execute a simple
-
Step 1: Trigger an SSO via
gnoi.SwitchControlProcessor. -
Step 2: Immediately issue a second
gnoi.SwitchControlProcessorrequest while the new standby supervisor (the former primary) is still in an unready state. - Step 3: Validate the system gracefully rejects the second request or handles it safely without crashing. The active supervisor must maintain control and traffic must continue with zero loss.
-
Step 1: Disable the standby supervisor (e.g., by setting its component
admin-stateor via power down). -
Step 2: Attempt to trigger an SSO via
gnoi.SwitchControlProcessor. - Step 3: Verify the switchover request is rejected.
- Step 4: Verify the current active supervisor safely maintains control and there is zero traffic loss.
paths:
## Component State Paths ##
/system/state/current-datetime:
/components/component/state/last-switchover-time:
platform_type: [ "CONTROLLER_CARD" ]
/components/component/state/last-switchover-reason/trigger:
platform_type: [ "CONTROLLER_CARD" ]
/components/component/state/last-switchover-reason/details:
platform_type: [ "CONTROLLER_CARD" ]
/components/component/state/redundant-role:
platform_type: [ "CONTROLLER_CARD" ]
/components/component/state/oper-status:
platform_type: [ "CONTROLLER_CARD" ]
## Interface and LACP State Paths ##
/interfaces/interface/state/oper-status:
/lacp/interfaces/interface/members/member/state/synchronization:
rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
gnoi:
system.System.SwitchControlProcessor:- MFF