-
Notifications
You must be signed in to change notification settings - Fork 200
ipsec_base
This test verifies the IPSec tunneling between a pair of devices. A pair of DUTs establish an IPsec tunnel. Traffic on ingress to the DUT is then encrypted and forwarded over the tunnel to the egress DUT, which then decrypts the packets and forwards to the final destination.
The ate-dut testbed configuration would be used, as described below.
TODO: when OTG API supports IPSec, refactor the topology to be: atedut8 where the ATE serves as the endpoints of the ipsec tunnel
DUT has an ingress and 2 egress aggregate interfaces.
[ ATE Port 1 ]----| Port5 :DUT1: Port1|2|3|4 | ---- |Port1|2|3|4 :DUT2: Port5 | ---- |ATE Port 2 |
Four ports are required between the DUT devices to verify hashing.
All physical interfaces are expected to be the same physical speed unless specified otherwise.
- DUT <> DUT will contain the IPsec tunnel
- ATE Port1 <> DUT1 Port5 are configured with MACsec; ATE Port2 <> DUT2 Port 5 do not have MACsec.
- DUT1 and DUT2 are the endpoints of the IPSec tunnel;
- Traffic on the DUT-DUT links is encrypted using native-ipsec tunnel-mode. There are no additional GUE / MPLSoGUE/ MPLSoGRE / GRE / MPLS encapsulation layers in/above/below the ipsec traffic.
ATE generated traffic flow definition:
- IPv4 and IPv6 addressing with 200 flows each.
- The sum of the IPv4 and IPv6 traffic should equal line rate for the ATE to DUT interface.
- Mix of 64, 128, 256, 512, 1024, 1500, 4500, and MAX MTU bytes frame size.
- Send traffic both directions; from ATE port1 to ATE port 2 and vice versa.
For the DUT <> ATE configuration (on both sides), see the gre_ipv4_encap setup for the “customer interface” setup in policy_forwarding/otg_tests/mpls_gre_ipv4_encap_test
- A single customer attachment is required, with both IPv4 and IPv6 addresses
- The “customer interface” must be a vlan, and in a (non-default / non-management) VRF
- DUT1 <> ATE configured with MACsec, as described in the MACSec OC section below.
- MTU of 9080 (including L2 header)
- The macsec MTU may be adjusted as necessary to account for any macsec overhead not included in the MTU value
- Interfaces
- 1 link, as port-channel with 1 member
- IPv4 and IPv6 address on the subnet
For the DUT interface configuration:
- Interfaces
- 4 links, as 2 Port-Channels, each with 2 members to verify both LAG and ECMP compatibility.
- Loopback interface, per tunnel-pair
- IPv6 (IPv4 routing not necessary between DUTs)
- MTU 9216
- LACP Member Link configuration
- LAG ID
- LACP (default: period short)
- Carrier-delay (default up: 3000 down: 150)
- Statistics load interval (default: 30 seconds)
- Static routes to reach loopback of each DUT, in the default VRF
- VRF routing to send all traffic received from ATE-1 to ATE-2 and vice-versa for both ipv4 and ipv6 within the VRF
- A VRF for the ATE interface, with a v4/v6 route for all traffic arriving on the ATE interface to route into the VRF for the tunnels, ECMP’ng across all tunnels
- A VRF for the tunnels, with a v4/v6 route for all traffic arriving on the tunnels to route into the VRF directed at the ATE interface
- Configure the security association / IKE between DUT1 <> DUT2 with the following parameters:
- For IKE negotiation:
- IKE version: 2
- Diffie-hellman group: 24
- IKE lifetime: 10 hours
- For the Security Association (SA) negotiation:
- Encryption Algorithm (ESP): aes-256 gcm-128
- ESP Integrity: (not needed, aes256gcm128 provides integrity)
- SA Lifetime: 8 hours
- PFS DH-Group: 14
- Anti-replay detection: disabled
- For IKE negotiation:
- For the Tunnel Profile:
- Tunnel mode (not transport mode)
- IKE & SA profiles as described above
- Ability to initiate the connection (not passive)
- Dead-Peer Detection for 10 second / 30 second
- Static shared-key
- Configure the IPSec tunnel between the DUT1 <> DUT2 with the following parameters:
- The tunnel itself is in a separate VRF as the ATE interface, as described in the DUT-DUT VRF-routing section above
- Tunnel is ipsec (exclusively), with the ipsec profile as described above
- Tunnel internal addressing (inner-ip) supporting both IPv4 + IPv6
- MTU at max (9066? TODO: double check)
- Tunnel outer addressing (outer-ip) between the assigned v6 loopback of DUT1 and v6 loopback of DUT2
- Tunnel outer addressing reachable in the default VRF.
- Outer IPv6 flow label & packet-next-hop selection is generated based on the hash of the inner (unencrypted) packet
- Generate bidirectional traffic as highlighted in the test environment.
- Traffic with IPV4 and IPv6 Payloads from ATE ports 1,2
- Send packets from ATE1 to ATE2, verifying packets traverse the ipsec tunnel.
Verify:
- Verify the IPSEC sessions are established. TODO: provide telemetry paths+values that are to be used on the DUT
- Packets are received at the remote end ATE, with no loss.
- Verify all flows have no packet loss.
- Packet as received by the remote-end ATE is preserved and not altered outside of changes expected with routing (TTL), validating:
- A test sending all packets with DSCP=10 results in all packets received with DSCP=10; repeat with DSCP 20, 30.
- A test sending all packets with flow-label=10 results in all packets received with flow-label=10; repeat with flow label 1000.
- Generate traffic on ATE->DUT1 Ports having a random combination of 1000 source addresses to ATE-2 destination address(es) at line rate IPv4 traffic. Use MTU-RANGE frame-size.
Verify:
- All traffic received from ATE (other than any local traffic) gets forwarded as ipsec
- No packet loss
- Traffic equally load balanced / hashed across DUT <> DUT ports.
- Generate traffic on ATE->DUT1 Ports having a random combination of 1000 source addresses to ATE-2 destination address(es) at line rate IPv6 traffic. Use MTU-RANGE frame-size.
Verify:
- All traffic received from ATE (other than any local traffic) gets forwarded as ipsec
- No packet loss
- Traffic equally load balanced / hashed across DUT <> DUT ports.
Requires single-tunnel setup, with the following modifications:
- SA renegotiation: Minimum time (O(seconds or few minutes) if available), or use external method to manually trigger an SA renegotiation
Establish tunnel, send traffic.
Verify no tunnel traffic loss during SA renegotiation event.
Option to do this test with the maximum number of device tunnels.
Requires single-tunnel setup, with the following modifications:
- IKE lifetime: Minimum time (O(seconds or few minutes) if available), or use external method to manually trigger an IKE lifetime renegotiation
Establish a tunnel, send traffic (single protocol, packet-size acceptable).
Verify no tunnel traffic loss during IKE renegotiation event.
Option to do this test with the maximum number of device tunnels.
Change in the base setup:
- Two parallel ipsec tunnels (loopback1 <> loopback1 + loopback2 <> loopback2)
- DPD timers lower (2 second keepalive, 10 sec hold-time)
Establish tunnel, send traffic.
- Verify traffic is ECMP’ng across both tunnels, no traffic loss
Filter IKE traffic directed at loopback on DUT2, which is expected to cause DPD keepalives over tunnel #2 to fail.
- Verify encrypted traffic (non-IKE) traffic continues to flow, traffic continues to ECMP across both tunnels until DPD timers fire.
- Verify traffic moves exclusively to Tunnel-1 after the DPD timers fire with no loss of traffic
Change in base setup:
- Two tunnels
- Tunnel 1: Standard setup
- Tunnel 2: Standard setup, except:
- Non-matching shared-key between DUT1/DUT2
Verify:
- Packets sent between ATE1 & ATE2 do not see loss
- All packets go over Tunnel1
- Tunnel2 is “down” per monitoring
Change in base setup:
- Two tunnels
- Tunnel 1: Standard setup
- Tunnel 2: Standard setup, except:
- Different encryption algorithm for the SA on DUT2 (where DUT2 tunnel2 does not match the encryption algorithm configured on DUT1 tunnel1)
Verify:
- Packets sent between ATE1 & ATE2 do not see loss
- All packets go over Tunnel1
- Tunnel2 is “down” per monitoring
Use the standard ATE - DUT - DUT - ATE topology with 2 DUTs that have an ipsec tunnel established between them
- Generate bidirectional traffic as highlighted in the test environment.
- IPSEC traffic with IPV4 Payloads from ATE ports 1,2
- Send packets from ATE1 to ATE2, for packets that traverse the ipsec tunnel.
- Verify that the packets succeed
- Change the shared key on both ends
- Option to shut down / unshut the tunnel
- Wait sufficient time for the rekey event (X seconds), or validate through polling that the changes have taken place & tunnel is operational (again)
- Send packets from ATE1 to ATE2, for packets that traverse the ipsec tunnel.
- Verify that the packets succeed
Verify
- Validate tunnel comes back up operational
Change in base setup:
- Disable the outer packet’s ipv6-flow-label generation from the inner-packet / keep the ipv6 flow label constant for the outer packets
Test:
- Generate traffic on ATE->DUT1 Ports having a random combination of 1000 source addresses to ATE-2 destination address(es) at 50%-of-line rate IPv6 traffic.
Verify:
- No packet loss
- Tunneled traffic is mapped/hashed to one DUT1-DUT2 link, instead of being load-balanced across all DUT1-DUT2 links
Test:
- Generate traffic on ATE->DUT1 Ports with a large number of source addresses
- Validate traffic is hashed across all 4 DUT1-DUT2 links
- Fail one of the DUT1-DUT2 links
- Validate traffic is now hashed across remaining links
Verify:
- All links that are available (not failed) are in-use
- No more than Low/Minor packet loss during the link failure, with dataplane automatically recovering after failure
- No loss of the tunnel
- Using the setup described in feature/qos/otg_tests/egress_strict_priority_scheduler_test
- Classify/schedule traffic on the DUT <> DUT connection as:
- IPSec dataplane (tunneled) traffic as AF3
- IPSec control plane (IKE) as AF4
- All other dataplane traffic as BE1
These are the default settings; each individual test MAY change these values
Additional changes from the default base setup:
- DUT1 <> DUT2 is connected with 1 active link, giving it the same speed/bandwidth as the DUT <> ATE links
- Short SA times (SA to renew during test)
- Short IKE renegotiation times (IKE to renew during test)
- Short DPD times (2 second keepalive, 5 second hold-time)
Test:
- Generate traffic on ATE->DUT1 Ports at line-rate, which will saturate the DUT1 <> DUT2 link with traffic
- Run for a few minutes, with SA and IKE renewing at least once
Verify:
- Tunnel packet loss consistent with loss expected due to congestion (from adding ipsec headers)
- No loss of the tunnel; SA & IKE renewals not impacted; DPD not detecting any problem
- MTU-RANGE: Use 64, 128, 256, 512, 1024, 1500, 4500, and MAX MTU bytes frame size.
{
"macsec": {
"interfaces": {
"interface": [
{
"config": {
"enable": true,
"name": "Ethernet12/1",
"replay-protection": 64
},
"mka": {
"config": {
"key-chain": "my_macsec_keychain",
"mka-policy": "must_secure_policy"
}
},
"name": "Ethernet12/1"
},
{
"config": {
"enable": true,
"name": "Ethernet11/1",
"replay-protection": 64
},
"mka": {
"config": {
"key-chain": "my_macsec_keychain",
"mka-policy": "must_secure_policy"
}
},
"name": "Ethernet11/1"
}
]
},
"mka": {
"policies": {
"policy": [
{
"config": {
"confidentiality-offset": "0_BYTES",
"include-icv-indicator": true,
"include-sci": true,
"key-server-priority": 15,
"macsec-cipher-suite": [
"GCM_AES_XPN_256"
],
"name": "must_secure_policy",
"sak-rekey-interval": 28800,
"security-policy": "MUST_SECURE"
},
"name": "must_secure_policy"
},
{
"config": {
"confidentiality-offset": "0_BYTES",
"include-icv-indicator": true,
"include-sci": true,
"key-server-priority": 15,
"macsec-cipher-suite": [
"GCM_AES_XPN_256"
],
"name": "should_secure_policy",
"sak-rekey-interval": 28800,
"security-policy": "SHOULD_SECURE"
},
"name": "should_secure_policy"
}
]
}
}
},
"keychains": {
"keychain": {
"config": {
"name": "my_macsec_keychain"
},
"keys": {
"key": [
{
"config": {
"secret-key": "secret password/CAK",
"key-id": "key-id/CKN",
"crypto-algorithm": "AES_256_CMAC",
"send-lifetime": {
"config": {
"start-time": "my_start_time",
"end-time": "my_end_time"
}
},
"receive-lifetime": {
"config": {
"start-time": "my_start_time",
"end-time": "my_end_time"
}
}
}
}
]
}
}
}
}{
}Monitoring for these tunnels must be available via OC and/or standard native YANG modeling.
paths:
# TODO
# /security/ipsec/profiles/profile/config/mode:
# /security/ipsec/profiles/profile/config/ike-policy:
# /security/ipsec/profiles/profile/config/security-association:
# /security/ipsec/profiles/profile/config/connection-type:
# /security/ipsec/profiles/profile/config/shared-key:
# /security/ipsec/profiles/profile/dpd:
# /security/ipsec/profiles/profile/dpd/config/enabled:
# /security/ipsec/profiles/profile/dpd/config/keepalive:
# /security/ipsec/profiles/profile/dpd/config/hold-time:
# /security/ipsec/profiles/profile/dpd/config/action:
# /security/ike/policies/policy/config/ike-lifetime:
# /security/ike/policies/policy/config/integrity:
# /security/ike/policies/policy/config/dh-group:
# /security/ike/policies/policy/config/encryption:
# /security/ike/policies/policy/config/version:
# /interfaces/interface/tunnel/config/mode:
# /interfaces/interface/tunnel/config/ipsec-profile:
# /security/ike/security-associations/security-association/config/sa-lifetime:
# /security/ike/security-associations/security-association/config/esp-encryption:
# /security/ike/security-associations/security-association/config/esp-integrity:
# /security/ike/security-associations/security-association/config/pfs-dh-group:
rpcs:
gnmi:
gNMI.Set:
gNMI.Subscribe:FFF
-
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
- 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
- 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
- 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.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-2: gnmi_subscriptionlist_test
- 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.
- 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.
- 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 dowm
- 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.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
- 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-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
- 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.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.66: IPv4 Static Route with IPv6 Next-Hop
- 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-3.1: Policy based VRF selection
- RT-3.2: Multiple <Protocol, DSCP> Rules for VRF Selection
- 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-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.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
- SEC-3.1: Authentication
- SFLOW-1: sFlow Configuration and Sampling
- 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
- 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-2.1: gRIBI IPv4 Entry
- TE-2.2: gRIBI IPv4 Entry With Aggregate Ports
- 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.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-8.1: DUT Daemon Failure
- TE-8.2: Supervisor Failure
- TE-9.2: MPLS based forwarding Static LSP
- TE-9.3: FIB FAILURE DUE TO HARDWARE RESOURCE EXHAUST
- TE-9: gRIBI MPLS Compliance
- 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.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-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
- TestID-16.4: gRIBI to BGP Route Redistribution for IPv4
- 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-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