-
Notifications
You must be signed in to change notification settings - Fork 247
backup_nhg_trigger_test
Validate that the software-driven/external gRIBI BACKUP_ACTIVATE AFT operation triggers immediate dataplane failover to the configured backup_next_hop_group (configured as a fallback to REPAIR_VRF with decapsulation and re-encapsulation into TRANSIT_VRF), and verify that the FIB_PROGRAMMED status in ModifyResponse correlates with hardware ASIC path switching within the expected convergence threshold (backup-active), query feedback via the gRIBI Get RPC, graceful restoration upon deletion (op: DELETE), dual-stack (IPv4 and IPv6) forwarding behaviors, hierarchical tunnel group activation across multiple egress trunks, and robust exception handling. This includes rejecting operations on non-existent groups, groups lacking a backup path, deletion of active groups, reverse deletion of inactive triggers, AFT state and identifier reclamation, local gRIBI process restart resilience, Non-Stop Routing (NSR) supervisor switchover synchronization, and asynchronous late-binding of backup next-hop groups.
BACKUP_ACTIVATE is a trigger, not the mechanism that creates the backup path. All primary and backup NextHop and NextHopGroup entries, including the primary group's backup_next_hop_group reference, must first be installed in the DEFAULT network instance through ordinary gRIBI ADD operations and acknowledged with RIB_AND_FIB_ACK. In accordance with WBB gRIBI forwarding designs, the backup NHG points to a next-hop that falls back to REPAIR_VRF (network_instance: "REPAIR_VRF"), where a matching route performs decapsulation and re-encapsulation (decap + re-encap) into TRANSIT_VRF. The backup NHG and repair pipeline are therefore programmed and available in the FIB before activation; BACKUP_ACTIVATE selects that already-installed backup group for forwarding. Removing the trigger restores the primary group, while deleting referenced groups is expected to fail until the trigger is removed.
Implementations supporting NSR must preserve and synchronize the gRIBI ownership, NHG relationship, active backup-trigger state, and resulting RIB/FIB programming status to the standby process or control-plane component. A switchover or process restart must reconcile the persisted trigger and both NHGs; it must not transiently select the primary path, lose the backup relationship, or report FIB_PROGRAMMED before hardware programming is complete. The restart scenario in TE-11.4.5 verifies this behavior and requires forwarding continuity and no duplicate or orphaned AFT entries.
The forwarding driver should pre-resolve backup next hops, including ARP/ND and egress rewrite entries, and install them in a dormant hardware FRR indirection entry. Activation should atomically switch the hardware pointer rather than perform route recomputation or neighbor resolution during failover.
The mechanism complements physical link-down or BFD-driven FRR by handling gray failures, remote blackholes, and VIP drains detected by external probers while the local carrier remains up. Hardware forwarding must remain decoupled from the gRIBI process lifecycle, and deleting an NHG must remove the entry from operational AFT state (/network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/id) and allow immediate reuse of the deleted identifier without stale state.
+-------------------+ +-------------------+
| | | |
| | DUT Port 1 | ATE Port 1 |
| |=================| (Ingress Source) |
| | | |
| | DUT Port 2 | ATE Port 2 |
| DUT |=================| (Primary Trunk1) |
| | | |
| | DUT Port 3 | ATE Port 3 |
| |=================| (Backup Trunk2) |
| | | |
| | DUT Port 4 | ATE Port 4 |
| |=================| (Backup TG Path) |
| | | |
+-------------------+ +-------------------+
DUT ATE
- Connect ATE port-1 to DUT port-1 (ingress traffic source).
- Connect ATE port-2 to DUT port-2 (primary egress path / trunk 1).
- Connect ATE port-3 to DUT port-3 (backup egress path / trunk 2).
- Connect ATE port-4 to DUT port-4 (alternate / backup TG path / trunk 3).
Configure the following IP addresses on interfaces:
| Link | DUT | ATE |
|---|---|---|
| Port 1 |
198.51.100.1/30, 2001:db8:1::1/126
|
198.51.100.2/30, 2001:db8:1::2/126
|
| Port 2 |
198.51.100.5/30, 2001:db8:2::1/126
|
198.51.100.6/30, 2001:db8:2::2/126
|
| Port 3 |
198.51.100.9/30, 2001:db8:3::1/126
|
198.51.100.10/30, 2001:db8:3::2/126
|
| Port 4 |
198.51.100.13/30, 2001:db8:4::1/126
|
198.51.100.14/30, 2001:db8:4::2/126
|
- Destination prefixes:
- IPv4 data destination:
192.0.2.0/24(target host:192.0.2.1) - IPv6 data destination:
2001:db8:feed::/64(target host:2001:db8:feed::1) - Transit tunnel destination IPs:
198.18.193.1/32,198.18.193.2/32
- IPv4 data destination:
- Network instances / VRFs:
-
DEFAULT(all gRIBINextHopandNextHopGroupentries are programmed inDEFAULT) -
TRANSIT_VRF(non-default L3 VRF for primary and backup transit tunnel route resolution) -
REPAIR_VRF(non-default L3 VRF for backup NHG fallback anddecap + re-encapresolution)
-
TESTBED_DUT_ATE_4LINKS
- Configure the DUT and ATE interfaces according to the topology with IPv4 and IPv6 addressing, and create the
DEFAULT,TRANSIT_VRF, andREPAIR_VRFnetwork instances. - Ensure that DUT ports 1 through 4 are operationally
UPat/interfaces/interface/state/oper-status. - Establish a gRIBI client connection with the DUT using
persistence = PRESERVEandredundancy = SINGLE_PRIMARY. - Negotiate the election ID and establish leadership.
- Send a gRIBI
FlushRPC targeting network instancesDEFAULT,TRANSIT_VRF, andREPAIR_VRFto clear stale forwarding entries.
Validate that issuing a gRIBI BACKUP_ACTIVATE operation on a primary next-hop group triggers fallback to REPAIR_VRF (which performs decap + re-encap into the backup transit tunnel in TRANSIT_VRF), switches IPv4 traffic within the expected convergence window, returns FIB_PROGRAMMED, updates backup-active telemetry, and restores primary-path forwarding upon deletion.
- Program the following
NextHopandNextHopGroupentries in network instanceDEFAULTvia gRIBI (reusing the standard WBB FNTDEFAULT/TRANSIT_VRF/REPAIR_VRFforwarding hierarchy):-
NextHop#1: egress interface DUT port-2, next-hop IP198.51.100.6, MAC00:1A:11:00:00:01. -
NextHop#2: egress interface DUT port-3, next-hop IP198.51.100.10, MAC00:1A:11:00:00:02. -
NextHop#20: fallback tonetwork_instance: "REPAIR_VRF". -
NextHop#30:decap + re-encapwithdecapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4,encapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4,ip_in_ip { src_ip: 198.51.100.1, dst_ip: 198.18.193.2 }, andnetwork_instance: "TRANSIT_VRF". -
NextHop#40: IP-in-IP decap withdecapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4and fallback tonetwork_instance: "DEFAULT". -
NextHop#100: IP-in-IP encap withencapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4,ip_in_ip { src_ip: 198.51.100.1, dst_ip: 198.18.193.1 }, andnetwork_instance: "TRANSIT_VRF". -
NextHopGroup#20(backup NHG):NextHop#20with weight 1 (fallback toREPAIR_VRF). -
NextHopGroup#10(primary transit NHG):NextHop#1with weight 1 andbackup_next_hop_group: 20. -
NextHopGroup#40(decap fallback NHG):NextHop#40with weight 1. -
NextHopGroup#30(repairdecap + re-encapNHG):NextHop#30with weight 1 andbackup_next_hop_group: 40. -
NextHopGroup#50(backup transit NHG):NextHop#2with weight 1 andbackup_next_hop_group: 40. -
NextHopGroup#100(ingress encap NHG):NextHop#100with weight 1. Program the following IPv4 prefix entries withnext_hop_group_network_instance: "DEFAULT": - In
DEFAULT: IPv4 entry192.0.2.0/24pointing toNextHopGroup#100. - In
TRANSIT_VRF: IPv4 entry198.18.193.1/32pointing toNextHopGroup#10, and IPv4 entry198.18.193.2/32pointing toNextHopGroup#50. - In
REPAIR_VRF: IPv4 entry198.18.193.1/32pointing toNextHopGroup#30.
-
- Send every AFT operation with
ack_type: RIB_AND_FIB_ACKand verify that it returnsFIB_PROGRAMMED. - Subscribe via gNMI to
.../afts/next-hop-groups/next-hop-group[id=10]/state/backup-activeand verify the initial value isfalse. - Send continuous IPv4 UDP/TCP traffic at a fixed rate of
1,000 packets per second (pps)from ATE port-1 to192.0.2.1. Verify 100% egresses via ATE port-2 (encapsulated with outer destination198.18.193.1) with zero packet loss and no traffic egresses via ATE port-3. - Send a gRIBI
ModifyRequestwithop: ADD,network_instance: "DEFAULT",entry: backup_activate { next_hop_group: 10 }, andack_type: RIB_AND_FIB_ACK. VerifyModifyResponsereturnsRIB_PROGRAMMEDandFIB_PROGRAMMED. - Verify the hardware forwarding ASIC switches
NextHopGroup#10to its backupNextHopGroup#20(falling back toREPAIR_VRF, where198.18.193.1/32performsdecap + re-encapto198.18.193.2inTRANSIT_VRFviaNextHopGroup#30): 100% of traffic shifts to ATE port-3 (NextHopGroup#50) and traffic on ATE port-2 ceases. Estimate dataplane convergence time from packet loss:Convergence Time (ms) = ((Tx Packets - Rx Packets) / Packet Rate (pps)) * 1000. At1,000 pps,300dropped packets correspond to approximately300 msof convergence time. Verify that convergence time is within the target300 msthreshold (allowing up to350–400dropped packets at1,000 ppsfor measurement tolerance). - Verify via gNMI (
Get/Subscribe) that.../afts/next-hop-groups/next-hop-group[id=10]/state/backup-activereportstrue. Send a gRIBIGetRequestwithaft: BACKUP_ACTIVATEorall: {}and verify the returned AFT entry containsbackup_activate: { next_hop_group: 10 }withrib_status: PROGRAMMEDandfib_status: PROGRAMMED. - Send a gRIBI
ModifyRequestwithop: DELETE,network_instance: "DEFAULT",entry: backup_activate { next_hop_group: 10 }, andack_type: RIB_AND_FIB_ACK. VerifyFIB_PROGRAMMED, restoration to ATE port-2 within the300 msconvergence threshold (<= 350–400dropped packets at1,000 pps), and gNMIbackup-active: false.
Validate dual-stack support by executing the BACKUP_ACTIVATE lifecycle for IPv6 routing and traffic forwarding with REPAIR_VRF fallback.
- Using the
DEFAULT,TRANSIT_VRF, andREPAIR_VRFtunnel hierarchy from TE-11.4.1 (or equivalent IPv6 next-hopsNextHop#11on DUT port-2 andNextHop#12on DUT port-3 inDEFAULT, where primaryNextHopGroup#110referencesbackup_next_hop_group: 120configured to fall back toREPAIR_VRF, andREPAIR_VRFperformsdecap + re-encapintoTRANSIT_VRFtowards ATE port-3), program IPv6 entry2001:db8:feed::/64inDEFAULTpointing to the ingress/primary group (NextHopGroup#100/NextHopGroup#110). - Verify each AFT operation returns
FIB_PROGRAMMED. - Send continuous IPv6 traffic at
1,000 ppsfrom ATE port-1 to2001:db8:feed::1and verify 100% egresses via ATE port-2. - Send a gRIBI
ModifyRequestwithop: ADD,network_instance: "DEFAULT",entry: backup_activate { next_hop_group: 10 }(or110), andack_type: RIB_AND_FIB_ACK. VerifyFIB_PROGRAMMED, traffic shift to ATE port-3 via theREPAIR_VRFfallback path within the300 msconvergence threshold (<= 350–400dropped packets at1,000 pps), and gNMIbackup-active: true. - Send a gRIBI
ModifyRequestwithop: DELETEforbackup_activate. VerifyFIB_PROGRAMMED, restoration to ATE port-2 within the300 msconvergence threshold, and telemetrybackup-active: false.
Validate BACKUP_ACTIVATE behavior in hierarchical encapsulation and transit tunnel fast-reroute environments across all four testbed ports.
- Configure the hierarchical forwarding pipeline via gRIBI. All
NextHop(301, 302, 303, 310, 401, 402, 403) andNextHopGroup(300, 310, 320, 400, 402, 410) objects are defined inDEFAULT, while prefix routes are installed inDEFAULT,TRANSIT_VRF, andREPAIR_VRFwithnext_hop_group_network_instance: "DEFAULT":- In
DEFAULT, configure:-
NextHop#301: IP-in-IP encap withsrc_ip: 198.51.100.1,dst_ip: 198.18.193.1, andnetwork_instance: "TRANSIT_VRF". -
NextHop#302: IP-in-IP encap withsrc_ip: 198.51.100.1,dst_ip: 198.18.193.2, andnetwork_instance: "TRANSIT_VRF". -
NextHop#303: IP-in-IPdecap + re-encap(decapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4,encapsulate_header: OPENCONFIGAFTTYPESENCAPSULATIONHEADERTYPE_IPV4) withsrc_ip: 198.51.100.1,dst_ip: 198.18.193.1, forwarding via DUT port-3 (198.51.100.10). -
NextHop#310: VRF fallback withnetwork_instance: "REPAIR_VRF". -
NextHop#401: egress via DUT port-2 to198.51.100.6. -
NextHop#402: egress via DUT port-3 to198.51.100.10. -
NextHop#403: egress via DUT port-4 to198.51.100.14. -
NextHopGroup#310(backup VRF-fallback group inDEFAULT): containsNextHop#310(network_instance: "REPAIR_VRF"). -
NextHopGroup#300(primary tunnel group inDEFAULT): containsNextHop#301withbackup_next_hop_group: 310. -
NextHopGroup#320(repair tunnel group inDEFAULT): containsNextHop#302. -
NextHopGroup#402(repair transit group inDEFAULT): containsNextHop#303/NextHop#402. -
NextHopGroup#400(primary transit group inDEFAULT): containsNextHop#401withbackup_next_hop_group: 310(fallback toREPAIR_VRF). -
NextHopGroup#410(backup transit group inDEFAULT): containsNextHop#403.
-
- Configure prefix routes pointing back to the NextHopGroups in
DEFAULT:- In
DEFAULT: point192.0.2.0/24toNextHopGroup#300. - In
TRANSIT_VRF: point198.18.193.1/32toNextHopGroup#400and198.18.193.2/32toNextHopGroup#410. - In
REPAIR_VRF: point198.18.193.1/32toNextHopGroup#402(decap + re-encaptowards ATE port-3) and192.0.2.0/24toNextHopGroup#320(re-encapsulating to198.18.193.2/32inTRANSIT_VRFtowards ATE port-4).
- In
- In
- Verify all entries are confirmed with
FIB_PROGRAMMED. - Send traffic at
1,000 ppsfrom ATE port-1 to192.0.2.1and verify egress on ATE port-2 with an IP-in-IP outer destination of198.18.193.1. - Activate
backup_activateforNextHopGroup#400withop: ADDandack_type: RIB_AND_FIB_ACK. VerifyFIB_PROGRAMMED, fallback toREPAIR_VRFand failover toNextHopGroup#402via ATE port-3 while retaining outer destination198.18.193.1, convergence within300 ms(<= 350–400dropped packets at1,000 pps), andbackup-active: true. - Activate
backup_activateforNextHopGroup#300. VerifyFIB_PROGRAMMED, fallback toREPAIR_VRFand failover viaNextHopGroup#320andNextHopGroup#410to ATE port-4 with outer destination198.18.193.2within the300 msconvergence threshold. - Delete
backup_activateforNextHopGroup#300andNextHopGroup#400. VerifyFIB_PROGRAMMEDand restoration to the primary path on ATE port-2 within the300 msconvergence threshold.
- Target non-existent
NextHopGroup#999999withop: ADD,network_instance: "DEFAULT",entry: backup_activate { next_hop_group: 999999 }, andack_type: RIB_AND_FIB_ACK. Verify rejection withFAILED, with no forwarding-table or telemetry changes. - Target non-existent
NextHopGroup#999999withop: DELETE,network_instance: "DEFAULT",entry: backup_activate { next_hop_group: 999999 }, andack_type: RIB_AND_FIB_ACK. Verify rejection withFAILED, with no forwarding-table or telemetry changes. - Program
NextHop#501inNextHopGroup#500(inDEFAULT) without abackup_next_hop_group. Activatebackup_activatefor group 500 and verifyFAILED; traffic must continue viaNextHop#501without disruption. - In
DEFAULT, programNextHop#601inNextHopGroup#600withbackup_next_hop_group: 610, where group 610 containsNextHop#602configured withnetwork_instance: "REPAIR_VRF". Activate backup for group 600 and verifyFIB_PROGRAMMED. Attempt to delete group 600 while backup activation remains active; verify dependency validation rejects the deletion (FAILED) without inconsistent forwarding state. Deletebackup_activatefirst, then verify group 600 andNextHop#601can be deleted successfully. After deletion, verify via gNMI (Get/Subscribe) that/network-instances/network-instance[name=DEFAULT]/afts/next-hop-groups/next-hop-group[id=600]/state/idand/network-instances/network-instance[name=DEFAULT]/afts/next-hops/next-hop[index=601]/state/indexare removed from operational AFT state, and verify via gRIBIGetthatNextHopGroup#600andNextHop#601are absent. Re-programNextHop#601andNextHopGroup#600reusing the same IDs withack_type: RIB_AND_FIB_ACKand verifyFIB_PROGRAMMEDto confirm the AFT identifiers and associated forwarding resources were cleanly reclaimed.
Validate that a local device process restart while BACKUP_ACTIVATE is active reconciles the control-plane state without data-plane traffic loss or core dumps.
- Program the IPv4 forwarding entries and primary/backup next-hop groups from TE-11.4.1, activate
backup_activateforNextHopGroup#10, and verifyFIB_PROGRAMMED,backup-active: true, and traffic forwarding via ATE port-3. - Start continuous IPv4 traffic at
1,000 ppsfrom ATE port-1 to192.0.2.1, record packet loss and forwarding counters, and trigger a restart of the device's local gRIBI process while preserving the DUT and ASIC state. - Verify the process returns to service and reconciles the persisted gRIBI and
BACKUP_ACTIVATEstate. The active backup remains installed,backup-activereportstrueafter reconciliation, and traffic continues via ATE port-3 with zero packet loss. - Verify there are no core dumps, unexpected process crashes, stale or duplicate AFT entries, or inconsistent RIB/FIB status. Issue a gRIBI
Getand confirm the activebackup_activateentry isPROGRAMMEDin both RIB and FIB. - Delete
backup_activateand verifyFIB_PROGRAMMED,backup-active: false, and recovery of traffic to the primary path on ATE port-2 within the300 msconvergence threshold.
Validate that active BACKUP_ACTIVATE state is synchronized across redundant supervisors and that traffic remains on the backup path during a switchover.
- Verify redundant controller cards report
PRIMARYandSECONDARYthrough/components/component/state/redundant-role, and that the standby supervisor is ready. - Under continuous traffic at
1,000 pps, activatebackup_activateforNextHopGroup#10. VerifyFIB_PROGRAMMED,backup-active: true, and forwarding via ATE port-3. - Issue the gNOI
system.System.SwitchControlProcessorRPC and verify that the standby supervisor assumes thePRIMARYrole. - Verify that traffic remains on the backup path with zero loss or only the vendor-documented sub-second NSR convergence loss, without reverting to the primary path.
- Connect a gRIBI client to the new supervisor and issue
gRIBI.Get. Verify the active trigger remainsPROGRAMMEDin both RIB and FIB and telemetry continues to reportbackup-active: true. - Delete the trigger from the new supervisor and verify
FIB_PROGRAMMED, restoration to ATE port-2 within the300 msconvergence threshold, andbackup-active: false.
Validate that a backup NHG can be attached after primary forwarding is already active without disrupting traffic, and then immediately activated via BACKUP_ACTIVATE.
- In
DEFAULT, programNextHop#701(DUT port-2) andNextHopGroup#700without a backup reference, bind198.18.193.1/32inTRANSIT_VRFto group 700 (with192.0.2.0/24inDEFAULTencapsulating to198.18.193.1inTRANSIT_VRF), and verifyFIB_PROGRAMMED, primary forwarding via ATE port-2, an unpopulated backup reference, andbackup-active: false. - While traffic continues at
1,000 pps, programNextHop#702(network_instance: "REPAIR_VRF") andNextHopGroup#720inDEFAULT(with198.18.193.1/32inREPAIR_VRFperformingdecap + re-encapto198.18.193.2/32inTRANSIT_VRFtowards ATE port-3), then update group 700 to addbackup_next_hop_group: 720. VerifyFIB_PROGRAMMED, zero traffic loss on the active primary path, telemetry showing backup group 720, andbackup-active: false. - Activate
backup_activatefor group 700 and verifyFIB_PROGRAMMED, traffic shift to ATE port-3 within the300 msconvergence threshold (<= 350–400dropped packets at1,000 pps), andbackup-active: true. - Delete the trigger and verify
FIB_PROGRAMMED, restoration to ATE port-2 within the300 msconvergence threshold, andbackup-active: false.
{
"interfaces": {
"interface": [
{
"name": "Ethernet1/1",
"config": {"name": "Ethernet1/1", "enabled": true, "type": "iana-if-type:ethernetCsmacd"},
"subinterfaces": {"subinterface": [{"index": 0, "config": {"index": 0, "enabled": true}, "ipv4": {"addresses": {"address": [{"ip": "198.51.100.1", "config": {"ip": "198.51.100.1", "prefix-length": 30}}]}}, "ipv6": {"addresses": {"address": [{"ip": "2001:db8:1::1", "config": {"ip": "2001:db8:1::1", "prefix-length": 126}}]}}}]}
},
{
"name": "Ethernet1/2",
"config": {"name": "Ethernet1/2", "enabled": true, "type": "iana-if-type:ethernetCsmacd"},
"subinterfaces": {"subinterface": [{"index": 0, "config": {"index": 0, "enabled": true}, "ipv4": {"addresses": {"address": [{"ip": "198.51.100.5", "config": {"ip": "198.51.100.5", "prefix-length": 30}}]}}, "ipv6": {"addresses": {"address": [{"ip": "2001:db8:2::1", "config": {"ip": "2001:db8:2::1", "prefix-length": 126}}]}}}]}
},
{
"name": "Ethernet1/3",
"config": {"name": "Ethernet1/3", "enabled": true, "type": "iana-if-type:ethernetCsmacd"},
"subinterfaces": {"subinterface": [{"index": 0, "config": {"index": 0, "enabled": true}, "ipv4": {"addresses": {"address": [{"ip": "198.51.100.9", "config": {"ip": "198.51.100.9", "prefix-length": 30}}]}}, "ipv6": {"addresses": {"address": [{"ip": "2001:db8:3::1", "config": {"ip": "2001:db8:3::1", "prefix-length": 126}}]}}}]}
},
{
"name": "Ethernet1/4",
"config": {"name": "Ethernet1/4", "enabled": true, "type": "iana-if-type:ethernetCsmacd"},
"subinterfaces": {"subinterface": [{"index": 0, "config": {"index": 0, "enabled": true}, "ipv4": {"addresses": {"address": [{"ip": "198.51.100.13", "config": {"ip": "198.51.100.13", "prefix-length": 30}}]}}, "ipv6": {"addresses": {"address": [{"ip": "2001:db8:4::1", "config": {"ip": "2001:db8:4::1", "prefix-length": 126}}]}}}]}
}
]
},
"network-instances": {
"network-instance": [
{
"name": "DEFAULT",
"config": {"name": "DEFAULT", "type": "openconfig-network-instance-types:DEFAULT_INSTANCE"},
"interfaces": {"interface": [
{"id": "Ethernet1/1.0", "config": {"id": "Ethernet1/1.0", "interface": "Ethernet1/1", "subinterface": 0}},
{"id": "Ethernet1/2.0", "config": {"id": "Ethernet1/2.0", "interface": "Ethernet1/2", "subinterface": 0}},
{"id": "Ethernet1/3.0", "config": {"id": "Ethernet1/3.0", "interface": "Ethernet1/3", "subinterface": 0}},
{"id": "Ethernet1/4.0", "config": {"id": "Ethernet1/4.0", "interface": "Ethernet1/4", "subinterface": 0}}
]}
},
{"name": "TRANSIT_VRF", "config": {"name": "TRANSIT_VRF", "type": "openconfig-network-instance-types:L3VRF"}},
{"name": "REPAIR_VRF", "config": {"name": "REPAIR_VRF", "type": "openconfig-network-instance-types:L3VRF"}}
]
}
}paths:
/interfaces/interface/config/name:
/interfaces/interface/config/type:
/interfaces/interface/config/enabled:
/interfaces/interface/subinterfaces/subinterface/config/index:
/interfaces/interface/subinterfaces/subinterface/config/enabled:
/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/ip:
/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/prefix-length:
/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/ip:
/interfaces/interface/subinterfaces/subinterface/ipv6/addresses/address/config/prefix-length:
/network-instances/network-instance/config/name:
/network-instances/network-instance/config/type:
/network-instances/network-instance/interfaces/interface/config/id:
/network-instances/network-instance/interfaces/interface/config/interface:
/network-instances/network-instance/interfaces/interface/config/subinterface:
/interfaces/interface/state/oper-status:
/interfaces/interface/subinterfaces/subinterface/state/oper-status:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group-network-instance:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group:
/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group-network-instance:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/id:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/backup-next-hop-group:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state/index:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state/weight:
/network-instances/network-instance/afts/next-hops/next-hop/state/index:
/network-instances/network-instance/afts/next-hops/next-hop/state/ip-address:
/network-instances/network-instance/afts/next-hops/next-hop/state/mac-address:
/network-instances/network-instance/afts/next-hops/next-hop/interface-ref/state/interface:
/network-instances/network-instance/afts/next-hops/next-hop/interface-ref/state/subinterface:
/network-instances/network-instance/afts/next-hops/next-hop/state/network-instance:
/network-instances/network-instance/afts/next-hops/next-hop/state/decapsulate-header:
/network-instances/network-instance/afts/next-hops/next-hop/state/encapsulate-header:
/network-instances/network-instance/afts/next-hops/next-hop/ip-in-ip/state/src-ip:
/network-instances/network-instance/afts/next-hops/next-hop/ip-in-ip/state/dst-ip:
/components/component/state/redundant-role:
platform_type: ["CONTROLLER_CARD"]
# TODO: Proposed OpenConfig paths for backup activation state and structural list.
# See https://github.com/openconfig/public/pull/1541
# /network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/backup-active
# /network-instances/network-instance/afts/backup-activate/backup-activate/state/next-hop-group
rpcs:
gnmi:
gNMI.Set:
gNMI.Subscribe:
on_change: true
gNMI.Get:
gribi:
gRIBI.Modify:
gRIBI.Flush:
gRIBI.Get:
gnoi:
system.System.KillProcess:
system.System.SwitchControlProcessor:MFF for subtests requiring redundant controller-card switchover (TE-11.4.6); vRX or FFF for all other subtests.
-
Home
- Test Plans
- ACCTZ-1.1: Record Subscribe Full
- ACCTZ-2.1: Record Subscribe Partial
- ACCTZ-3.1: Record Subscribe Non-gRPC
- ACCTZ-4.1: Record History Truncation
- ACCTZ-4.2: Record Payload Truncation
- ACCTZ-5.1: gNSI.acctz.v1 (Accounting) Test RecordSubscribe Idle Timeout - client becomes silent
- ACCTZ-6.1: gNSI.acctz.v1 (Accounting) Test RecordSubscribe Idle Timeout - DoA client
- ACCTZ-7.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Failure - Multi-transaction
- ACCTZ-8.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Failure - Uni-transaction
- ACCTZ-9.1: gNSI.acctz.v1 (Accounting) Test Accounting Privilege Escalation
- ACCTZ-10.1: gNSI.acctz.v1 (Accounting) Test Accounting Authentication Error - Multi-transaction
- ACL-1.1: ACL match based on L3/L4 fields and DSCP value
- ACL-1.2: ACL Update (Make-before-break)
- ACL-1.3: Large Scale ACL with TCAM profile
- AFT-1.1: AFTs Base
- AFT-1.2: AFTs slow collector
- AFT-1.3: AFTs collector Flap
- AFT-2.1: AFTs Prefix Counters
- AFT-3.1: AFTs Atomic Flag Check
- AFT-5.1: AFTs DUT Reboot
- AFT-6.1: AFT Prefix Filtering
- AFT-6.2: AFT Prefix Filtering Dual-Stack
- AFT-6.3: AFT Prefix Filtering Resilience
- AFT-6.4: AFT Prefix Filtering Dynamic Updates
- attestz-1: General enrollz and attestz tests
- Authz: General Authz (1-4) tests
- BMP-1.1: BMP Session Establishment and Telemetry Test
- BMP-2.7: BMP Pre Policy Test
- BMP-2.8: BMP Post Policy Test
- bootz: General bootz bootstrap tests
- Certz-1: gNSI Client Certificate Tests
- Certz-2: Server Certificate
- Certz-3: Server Certificate Rotation
- Certz-4: Trust Bundle
- Certz-5: Trust Bundle Rotation
- CFM-1.1: CFM over ETHoCWoMPLSoGRE
- CNTR-1: Basic container lifecycle via
gnoi.Containerz. - CNTR-2: Container network connectivity tests
- CNTR-3: Container Supervisor Failover
- CPT-1.1: Interface based ARP policer
- Credentialz-1: Password console login
- Credentialz-2: SSH Password Login Disallowed
- Credentialz-3: Host Certificates
- Credentialz-4: SSH Public Key Authentication
- Credentialz-5: Hiba Authentication
- DP-1.2: QoS policy feature config
- DP-1.3: QoS ECN feature config
- DP-1.4: QoS Interface Output Queue Counters
- DP-1.5: Egress Strict Priority scheduler with bursty traffic
- DP-1.7: One strict priority queue traffic test
- DP-1.8: Two strict priority queue traffic test
- DP-1.9: WRR traffic test
- DP-1.10: Mixed strict priority and WRR traffic test
- DP-1.11: Bursty traffic test
- DP-1.12: ECN enabled traffic test
- DP-1.13: DSCP and ECN bits are copied over during IPinIP encap and decap
- DP-1.14: QoS basic test
- DP-1.15: Egress Strict Priority scheduler
- DP-1.16: Ingress traffic classification and rewrite
- DP-1.17: DSCP Transparency with ECN
- DP-1.19: Egress traffic DSCP rewrite
- DP-2.2: QoS scheduler with 1 rate 2 color policer, classifying on next-hop group
- DP-2.4: Police traffic on input matching all packets using 1 rate, 2 color marker
- DP-2.5: Police traffic on input matching all packets using 2 rate, 3 color marker
- DP-2.6: Police traffic on input matching all packets using 2 rate, 3 color marker with classifier
- enrollz-1: enrollz test for TPM 2.0 HMAC-based Enrollment flow
- enrollz-2: enrollz test for TPM 1.2 Enrollment flow
- example-0.1: Topology Test
- FP-1.1: Power admin DOWN/UP Test
- FPGA-1.1: FPGA Status Test
- gNMI-1.1: cli Origin
- gNMI-1.2: Benchmarking: Full Configuration Replace
- gNMI-1.3: Benchmarking: Drained Configuration Convergence Time
- gNMI-1.4: Telemetry: Inventory
- gNMI-1.5: Telemetry: Port Speed Test
- gNMI-1.6: System gRPC Servers running in more than one network-instance
- gNMI-1.7: gNMI Resiliency Test
- gNMI-1.8: Configuration Metadata-only Retrieve and Replace
- gNMI-1.9: Get requests
- gNMI-1.10: Telemetry: Basic Check
- gNMI-1.11: Telemetry: Interface Packet Counters
- gNMI-1.12: Mixed OpenConfig/CLI Origin
- gNMI-1.13: Optics Telemetry, Instant, threshold, and miscellaneous static info
- gNMI-1.14: OpenConfig metadata consistency during large config push
- gNMI-1.15: Set Requests
- gNMI-1.16: Fabric redundnacy test
- gNMI-1.17: Controller card redundancy test
- gNMI-1.18: gNMI subscribe with sample mode for backplane capacity counters
- gNMI-1.19: ConfigPush and ConfigPull after Control Card switchover
- gNMI-1.20: Telemetry: Optics Thresholds
- gNMI-1.21: Integrated Circuit Hardware Resource Utilization Test
- gNMI-1.22: Controller card port attributes
- gNMI-1.23: Telemetry: Aggregate Interface Counters
- gNMI-1.24: gNMI Leaf-List Update Test
- gNMI-1.25: Telemetry: Interface Last Change Timestamp
- gNMI-1.26: Carrier Transitions Test
- gNMI-1.27: gNMI Sample Mode Test
- gNMI-1.28: Telemetry: Interface openconfig validation.
- gNMI-1.29: Pipeline Counters Drops Test
- gNMI-1.30: gNMI Telemetry Performance under Dynamic Control Plane Churn
- gNMI-2: gnmi_subscriptionlist_test
- gNMI-3: union_replace
- gNOI-2.1: Packet-based Link Qualification on 100G and 400G links
- gNOI-3.1: Complete Chassis Reboot
- gNOI-3.2: Per-Component Reboot
- gNOI-3.3: Supervisor Switchover
- gNOI-3.4: Chassis Reboot Status and Reboot Cancellation
- gNOI-4.1: Software Upgrade
- gNOI-5.1: Ping Test
- gNOI-5.2: Traceroute Test
- gNOI-5.3: Copying Debug Files
- gNOI-6.1: Factory Reset
- gNOI-7.1: BootConfig
- gNPSI-1: Sampling and Subscription Check
- HA-1.0: Telemetry: Firewall High Availability.
- Hashing: Dataplane Hashing with Physical Loopbacks
- Health-1.1: Generic Health Check
- Health-1.2: Healthz component status paths
- INT-1.1: Interface Performance
- IPSEC-1.1: IPSec with MACSec over aggregated links.
- IPSEC-1.2: IPSec Scaling with MACSec over aggregated links.
- IPSEC-1.3: IPSec Packet-Order with MACSec over aggregated links.
- MGT-1: Management HA solution test
- MPLS-1.1: MPLS label blocks using ISIS
- MPLS-1.2: MPLS Traffic Class Marking
- MPLS-2.2: MPLS forwarding via static LSP to BGP next-hop.
- MSEC-1.1: MACsec Configuration and Verification (DUT-to-DUT)
- MTU-1.3: Large IP Packet Transmission
- MTU-1.4: Large IP Packet through GRE/GUE tunnel Transmission
- MTU-1.5: Path MTU handing
- OC-1.2: Default Address Families
- OC-26.1: Network Time Protocol (NTP)
- P4RT-1.1: Base P4RT Functionality
- P4RT-1.2: P4RT Daemon Failure
- P4RT-1.3: P4RT behavior when a device/node is down
- P4RT-2.1: P4RT Election
- P4RT-2.2: P4RT Metadata Validation
- P4RT-3.1: Google Discovery Protocol: PacketIn
- P4RT-3.2: Google Discovery Protocol: PacketOut
- P4RT-3.3: P4RT Packet-Out Interaction with gRIBI
- P4RT-3.4: P4RT Packet-In Interaction with gRIBI
- P4RT-3.21: Google Discovery Protocol: PacketOut with LAG
- P4RT-5.1: Traceroute: PacketIn
- P4RT-5.2: Traceroute Packetout
- P4RT-5.3: Traceroute: PacketIn With VRF Selection
- P4RT-6.1: Required Packet I/O rate: Performance
- P4RT-7.1: LLDP: PacketIn
- P4RT-7.2: LLDP: PacketOut
- Pathz: Path-level Authorization (1-4) tests
- PF-1.1: IPv4/IPv6 policy-forwarding to indirect NH matching DSCP/TC.
- PF-1.2: Policy-based traffic GRE Encapsulation to IPv4 GRE tunnel
- PF-1.3: Policy-based IPv4 GRE Decapsulation
- PF-1.4: GUEv1 Decapsulation rule using destination-address-prefix-set and TTL and DSCP behavior test
- PF-1.6: Policy based VRF selection for IPV4/IPV6
- PF-1.7: Decapsulate MPLS in GRE and UDP
- PF-1.8: Ingress handling of TTL
- PF-1.9: Egress handling of TTL
- PF-1.11: Rewrite the ingress innner packet TTL
- PF-1.12: MPLSoGRE IPV4 decapsulation of IPV4/IPV6 payload
- PF-1.13: MPLSoGRE IPV4 decapsulation of IPV4/IPV6 payload scale test
- PF-1.14: MPLSoGRE IPV4 encapsulation of IPV4/IPV6 payload
- PF-1.15: MPLSoGRE IPV4 encapsulation of IPV4/IPV6 payload scale test
- PF-1.16: MPLSoGRE IPV4 encapsulation IPV4/IPV6 local proxy test
- PF-1.17: MPLSoGRE and MPLSoGUE MACsec
- PF-1.18: MPLSoGRE and MPLSoGUE QoS
- PF-1.19: MPLSoGUE IPV4 decapsulation of IPV4/IPV6 payload
- PF-1.20: MPLSoGUE IPV4 decapsulation of IPV4/IPV6 payload scale test
- PF-1.21: Configurable IPv6 flow labels corresponding to IPV6 tunnels
- PF-1.22: GUEv1 Decapsulation and ECMP test for IPv4 and IPv6 payload
- PF-1.23: EthoCWoMPLSoGRE IPV4 forwarding of IPV4/IPV6 payload
- PF-1.24: Add and remove interface bound to PBF
- PF-1.25: Egress Static MPLS LSP Verification
- PF-1.26: Double GUEv1 Decapsulation for Overlay Probing
- PF-1.27: MPLSoGRE/MPLSoGUE MACsec and Line Rate Performance
- PF-2.3: Multiple VRFs and GUE DECAP in Default VRF
- PLT-1.1: Interface breakout Test
- PLT-1.2: Parent component validation test
- PLT-1.3: OnChange Subscription Test for Breakout Interfaces
- RELAY-1.1: DHCP Relay functionality
- Replay-1.0: Record/replay presession test
- Replay-1.1: Record/replay diff command trees test
- Replay-1.2: P4RT Replay Test
- RT-1.1: Base BGP Session Parameters
- RT-1.2: BGP Policy & Route Installation
- RT-1.3: BGP Route Propagation
- RT-1.4: BGP Graceful Restart
- RT-1.5: BGP Prefix Limit
- RT-1.7: Local BGP Test
- RT-1.8: BGP Route Reflector Test at scale
- RT-1.10: BGP Keepalive and HoldTimer Configuration Test
- RT-1.11: BGP remove private AS
- RT-1.12: BGP always compare MED
- RT-1.14: BGP Long-Lived Graceful Restart
- RT-1.15: BGP Addpath on scale with and without routing policy
- RT-1.19: BGP 2-Byte and 4-Byte ASN support
- RT-1.21: BGP TCP MSS and PMTUD
- RT-1.23: BGP AFI SAFI OC DEFAULTS
- RT-1.24: BGP 2-Byte and 4-Byte ASN support with policy
- RT-1.25: Management network-instance default static route
- RT-1.26: Basic Static Route Support
- RT-1.27: Static route to BGP redistribution
- RT-1.28: BGP to IS-IS redistribution
- RT-1.29: BGP chained import/export policy attachment
- RT-1.30: BGP nested import/export policy attachment
- RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
- RT-1.32: BGP policy actions - MED, LocPref, prepend, flow-control
- RT-1.33: BGP Policy with prefix-set matching
- RT-1.34: BGP route-distance configuration
- RT-1.35: BGP Graceful Restart Extended route retention (ExRR)
- RT-1.36: AIGP feature support test
- RT-1.51: BGP multipath ECMP
- RT-1.52: BGP multipath UCMP support with Link Bandwidth Community
- RT-1.53: prefix-list test
- RT-1.54: BGP Override AS-path split-horizon
- RT-1.55: BGP session mode (active/passive)
- RT-1.63: BGP Multihop
- RT-1.64: BGP Import/Export Policy (Control plane only) Functional Test Case
- RT-1.65: BGP scale test
- RT-1.67: IPv4 and IPv6 Static Route using Vlan Interface
- RT-1.71: BGP Disable Peer AS Filter (
disable-peer-as-filter) - RT-1.73: Static Route Resilience Test
- RT-1.102: DUT eBGP FNTs coverage for new L3VPN params
- RT-1.103: DUT iBGP passive listener FNT with common router id
- RT-1.106: BGP RT Membership Constraints (RFC 4684)
- RT-1.107: BGP FIB Isolation and Peer Soft Drain
- RT-1.108: Two-Tier BGP Route Propagation and Attribute Transparency
- RT-1.109: BGP Streaming Telemetry and Operational State Verification
- RT-1.110: Single-Hop BFD over eBGP Subinterfaces
- RT-2.1: Base IS-IS Process and Adjacencies
- RT-2.2: IS-IS LSP Updates
- RT-2.6: IS-IS Hello-Padding enabled at interface level
- RT-2.7: IS-IS Passive is enabled at interface level
- RT-2.8: IS-IS metric style wide not enabled
- RT-2.9: IS-IS metric style wide enabled
- RT-2.10: IS-IS change LSP lifetime
- RT-2.11: IS-IS Passive is enabled at the area level
- RT-2.12: Static route to IS-IS redistribution
- RT-2.13: Weighted-ECMP for IS-IS
- RT-2.14: IS-IS Drain Test
- RT-2.15: IS-IS Extensions for Segment Routing
- RT-2.16: IS-IS Graceful Restart Helper
- RT-2.17: IS-IS scale test
- RT-2.18: IS-IS Multi-adjacencies scale test
- RT-2.19: IS-IS Suppress Interface Reachability
- RT-3.1: Policy based VRF selection
- RT-3.2: Multiple <Protocol, DSCP> Rules for VRF Selection
- RT-3.4: VRF Selection Policy Hardware Programming with Linecard and Supervisor Resiliency
- RT-3.52: Multidimensional test for Static GUE Encap/Decap based on BGP path selection and selective DSCP marking
- RT-3.53: Static route based GUE Encapsulation to IPv6 tunnel
- RT-4.10: AFTs Route Summary
- RT-4.11: AFTs Route Summary
- RT-5.1: Singleton Interface
- RT-5.2: Aggregate Interfaces
- RT-5.3: Aggregate Balancing
- RT-5.4: Aggregate Forwarding Viable
- RT-5.5: Interface hold-time
- RT-5.6: Interface Loopback mode
- RT-5.7: Aggregate Not Viable All
- RT-5.8: IPv6 Link Local
- RT-5.9: Disable IPv6 ND Router Arvetisment
- RT-5.10: IPv6 Link Local generated by SLAAC
- RT-5.11: LACP Intervals
- RT-5.12: Suppress IPv6 ND Router Advertisement [Depreciated]
- RT-5.13: Flow control test
- RT-5.14: Aggregate Subinterface in Default and Non-default Network Instance
- RT-5.15: LACP Fallback Support
- RT-5.16: LACP Member Linecard Reboot
- RT-5.17: Physical Interface Drain via Admin Down
- RT-5.18: Aggregate Interface (LAG) Drain via Admin Down
- RT-5.19: LAG Member-Link Drain
- RT-6.1: Core LLDP TLV Population
- RT-7.1: BGP default policies
- RT-7.2: BGP Policy Community Set
- RT-7.3: BGP Policy AS Path Set
- RT-7.4: BGP Policy AS Path Set and Community Set
- RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
- RT-7.6: BGP Link Bandwidth Community - Cumulative
- RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
- RT-7.9: BGP ECMP for iBGP with IS-IS protocol nexthop
- RT-7.10: Routing policy statement insertion and removal
- RT-7.11: BGP Policy - Import/Export Policy Action Using Multiple Criteria
- RT-7.12: BGP Drain using Route Policy
- RT-7.51: BGP Auto-Generated Link-Bandwidth Community
- RT-8: Singleton with breakouts
- RT-10.1: Default Route Generation based on 192.0.0.0/8 Presence
- RT-10.2: Non-default Route Generation based on 192.168.2.2/32 Presence in ISIS
- RT-14.2: GRIBI Route Test
- RT-14.3: Soft Drain vs. Hard Drain Convergence Verification
- SEC-3.1: Authentication
- SFLOW-1: sFlow Configuration and Sampling
- SFLOW-2: sFlow Egress Sampling Configuration and Verification
- SR-1.1: Transit forwarding to Node-SID via ISIS
- SR-1.2: Egress Node Forwarding for MPLS traffic with Explicit Null label
- Storage-1.1: Storage File System Check
- SYS-1.1: Test default COPP policy thresholds for Arista
- SYS-2.1: Ingress control-plane ACL.
- SYS-3.1: AAA and TACACS+ Configuration Verification Test Suite
- SYS-4.1: System Mount Points State Verification
- SYS-5.1: Configuration Commit Validation after Large gNMI-Set and reboot in parallel
- SYS-6.1: SSO Extended Forwarding and Stability Validation
- System-1.1: System banner test
- System-1.2: System g protocol test
- System-1.3: System hostname test
- System-1.4: System time test
- System-1.5: System software-version test
- TE-1.1: Static ARP
- TE-1.2: My Station MAC
- TE-1.3: P4RT ACL Interaction with gRIBI Forwarding
- TE-1.4: gRIBI Recursive Route Resolution under Routing Protocol Churn
- TE-1.7: gNMI Interface Config Change Impacting gRIBI NextHop
- TE-1.21: gRIBI Tunnel Fallback to Native Routing
- TE-1.22: Traffic Blackhole on gRIBI Invalid Next-Hop (Strict FIB Precedence)
- TE-2.1: gRIBI IPv4 Entry
- TE-2.2: gRIBI IPv4 Entry With Aggregate Ports
- TE-2.3: gRIBI IPv6 Entry with Prefix Length > 64
- TE-3.1: Base Hierarchical Route Installation
- TE-3.2: Traffic Balancing According to Weights
- TE-3.3: Hierarchical weight resolution
- TE-3.5: Ordering: ACK Received
- TE-3.6: ACK in the Presence of Other Routes
- TE-3.7: Base Hierarchical NHG Update
- TE-3.8: gRIBI Tunnel Recursion over Multi-Level LPM Underlays
- TE-3.9: gRIBI AFT Operations Ordering
- TE-3.10: gRIBI WCMP Group Resizing and Weight Changes
- TE-3.31: Hierarchical weight resolution with PBF
- TE-4.1: Base Leader Election
- TE-4.2: Persistence Mode
- TE-5.1: gRIBI Get RPC
- TE-6.1: Route Removal via Flush
- TE-6.2: Route Removal In Non Default VRF
- TE-6.3: Route Leakage between Non Default VRF
- TE-6.4: gRIBI to BGP Route Redistribution for IPv4
- TE-8.1: DUT Daemon Failure
- TE-8.2: Supervisor Failure
- TE-9.1: gRIBI MPLS Compliance
- TE-9.3: FIB FAILURE DUE TO HARDWARE RESOURCE EXHAUST
- TE-10: gRIBI MPLS Forwarding
- TE-11.1: Backup NHG: Single NH
- TE-11.2: Backup NHG: Multiple NH
- TE-11.3: Backup NHG: Actions
- TE-11.4: gRIBI BACKUP_ACTIVATE Hardware Convergence & FIB ACK Verification
- TE-11.21: Backup NHG: Multiple NH with PBF
- TE-11.31: Backup NHG: Actions with PBF
- TE-13.1: gRIBI route ADD during Failover
- TE-13.2: gRIBI route DELETE during Failover
- TE-14.1: gRIBI Scaling
- TE-14.2: encap and decap scale
- TE-14.3: gRIBI Scaling - full scale setup, target T1
- TE-14.4: gRIBI Scaling - full scale setup, target T2
- TE-14.5: gRIBI Scaling - full scale setup, target T0
- TE-14.6: gRIBI Scaling - all scenarios but with minimal scaling parameters
- TE-14.7: gRIBI Scaling - full scale setup, target T3
- TE-15.1: gRIBI Compliance
- TE-16.1: basic encapsulation tests
- TE-16.2: encapsulation FRR scenarios
- TE-16.3: encapsulation FRR scenarios
- TE-17.1: VRF selection policy driven TE
- TE-18.1: gRIBI MPLS-in-UDP Encapsulation
- TE-18.3: MPLS in UDP Encapsulation Scale Test
- TE-18.4: ECMP hashing on outer and inner packets with MPLSoUDP encapsulation
- TR-6.1: Remote Syslog feature config
- TR-6.2: Local logging destinations
- TRANSCEIVER-1.1: Telemetry: 400ZR Chromatic Dispersion(CD) telemetry values streaming
- TRANSCEIVER-1.2: Telemetry: 400ZR_PLUS Chromatic Dispersion(CD) telemetry values streaming
- TRANSCEIVER-3.1: Telemetry: 400ZR Optics firmware version streaming
- TRANSCEIVER-3.2: Telemetry: 400ZR_PLUS Optics firmware version streaming
- TRANSCEIVER-4.1: Telemetry: 400ZR RX input and TX output power telemetry values streaming.
- TRANSCEIVER-4.2: Telemetry: 400ZR_PLUS RX input and TX output power telemetry values streaming.
- TRANSCEIVER-5.1: Configuration: 400ZR channel frequency, output TX launch power and operational mode setting.
- TRANSCEIVER-5.2: Configuration: 400ZR_PLUS channel frequency, output TX launch power and operational mode setting.
- TRANSCEIVER-6.1: Telemetry: 400ZR Optics performance metrics (pm) streaming.
- TRANSCEIVER-6.2: Telemetry: 400ZR_PLUS Optics performance metrics (pm) streaming.
- TRANSCEIVER-7.1: Telemetry: 400ZR Optics inventory info streaming
- TRANSCEIVER-7.2: Telemetry: 400ZR_PLUS Optics inventory info streaming
- TRANSCEIVER-8.1: Telemetry: 400ZR Optics module temperature streaming.
- TRANSCEIVER-8.2: Telemetry: 400ZR_PLUS Optics module temperature streaming.
- TRANSCEIVER-9.1: Telemetry: 400ZR TX laser bias current telemetry values streaming.
- TRANSCEIVER-9.2: Telemetry: 400ZR_PLUS TX laser bias current telemetry values streaming.
- TRANSCEIVER-10.1: Telemetry: 400ZR Optics FEC(Forward Error Correction) Uncorrectable Frames Streaming.
- TRANSCEIVER-10.2: Telemetry: 400ZR_PLUS Optics FEC(Forward Error Correction) Uncorrectable Frames Streaming.
- TRANSCEIVER-11.1: Telemetry: 400ZR Optics logical channels provisioning and related telemetry.
- TRANSCEIVER-11.2: Telemetry: 400ZR_PLUS Optics logical channels provisioning and related telemetry.
- TRANSCEIVER-12.1: Telemetry: 400ZR Transceiver Supply Voltage streaming.
- TRANSCEIVER-12.2: Telemetry: 400ZR_PLUS Transceiver Supply Voltage streaming.
- TRANSCEIVER-13.1: Configuration: 400ZR Transceiver Low Power Mode Setting.
- TRANSCEIVER-13.2: Configuration: 400ZR_PLUS Transceiver Low Power Mode Setting.
- TRANSCEIVER-20.1: Client Optics DOM Telemetry, Instant, Threshold, and Miscellaneous Static Info
- TRANSCEIVER-101: Telemetry: ZR platform OC paths streaming.
- TRANSCEIVER-102: Telemetry: ZR terminal-device OC paths streaming.
- TRANSCEIVER-103: Telemetry: ZR Plus platform OC paths streaming.
- TRANSCEIVER-104: Telemetry: ZR Plus terminal-device OC paths streaming.
- TRANSCEIVER-105: Telemetry: ZR platform OC paths streaming.
- TRANSCEIVER-106: Telemetry: ZR terminal-device OC paths streaming.
- TRANSCEIVER-107: Telemetry: ZR Plus platform OC paths streaming.
- TRANSCEIVER-108: Telemetry: ZR Plus terminal-device OC paths streaming.
- TUN-1.3: Interface based IPv4 GRE Encapsulation
- TUN-1.4: Interface based IPv6 GRE Encapsulation
- TUN-1.6: Tunnel End Point Resize for Ecapsulation - Interface Based GRE Tunnel
- TUN-1.9: GRE inner packet DSCP
- URPF-1.1: uRPF validation from non-default network-instance
- Test Plans