-
Notifications
You must be signed in to change notification settings - Fork 244
ipv4_guev1_decap_and_hashing_test
Github Action edited this page Feb 13, 2026
·
3 revisions
This is to test the functionality of decapsulation of GUEv1 to IPv4 or IPv6 payload and ensures that only the outer header (IPv6 | UDP) of GUEv1 encapsulated packets are used for hashing on decapsulating nodes.
GUEv1 decapsulation matching destination-address-prefix-set and TTL and DSCP behavior test is documented in #4178.
graph LR;
subgraph DUT [DUT]
B1[Port1]
B2[Port2]
B3[Port3]
B4[Port4]
B5[Port5]
B6[Port6]
B7[Port7]
end
subgraph ATE2 [ATE2]
N1[Port1]
end
subgraph ATE3 [ATE3]
N21[Port2]
N22[Port3]
end
subgraph ATE4 [ATE4]
N31[Port4]
N32[Port5]
end
subgraph ATE5 [ATE5]
N4[Port6]
end
A1[ATE1:Port1] <--EBGP--> B1;
B2 <--IBGP--> N1;
B3 <-- [LAG1] IBGP --> N21;
B4 <-- [LAG1] IBGP --> N22;
B5 <-- [LAG2] EBGP --> N31;
B6 <-- [LAG2] EBGP --> N32;
B7 <-- EBGP --> N4;
- The DUT's loopback interface must be passive for IS-IS.
- Configure IPv4 and IPv6 EBGP[ASN200:ASN100] between ATE:Port1 <> DUT:Port1
- Configure IPv4 and IPv6 IBGP[ASN100] between DUT <> ATE2
- Configure IPv4 and IPv6 IBGP[ASN100] between DUT <> ATE3
- Configure IPv4 and IPv6 EBGP[ASN100:ASN200] between DUT <> ATE4
- Configure IPv4 and IPv6 EBGP[ASN100:ASN200] between DUT <> ATE5
- Configure DUT as decapsulation node for IPv6|UDP (GUE v1) using "DUT-DECAP-Address-V6" and decap UDP port as 6080
- Enable BGP multipath for both EBGP and IBGP sessions to enable load balancing traffic across multiple paths/links
- Enable BGP multihop for BGP(IBGP/EBGP) sessions on LAG interfaces
- DUT has multiple paths to Host2 via multiple nodes, ATE2 & ATE3
- DUT can reach Host3 via a lag interface towards ATE3
- DUT has multiple paths to Host4 via multiple nodes, ATE4 & ATE5
- Host1(v4/v6) route is installed and active via ATE1
- Host2(v4/v6) route is installed and active via ATE2 and ATE3, therefore the traffic for Host2 should be load-balanced across both the nodes
- Host3v4 route is installed and active via ATE3, therefore the traffic for Host3 should be load-balanced across the lag members
- Host4(v4/v6) route is installed and active via ATE4 and ATE5, therefore the traffic for Host4 should be load-balanced across both the nodes
- The ATE's loopback interface must be passive for IS-IS
- Establish BGP sessions as shown in the DUT configuration section
- ATE1 hosts Host1v4 and Host1v6
- ATE2 and ATE3 hosts Host2v4 and Host2v6
- ATE3 hosts Host3v4
- Reachability to Host3v4 from ATE3 is via a static MPLS label
- ATE4 and ATE5 hosts Host4v4 and Host4v6
| Source ATE Nodes | Advertisement Type | Prefixes | Via BGP Sessions | Host Mapping |
|---|---|---|---|---|
| ATE1 | EBGP | IPv4prefix1-10/24 | IPv4 DUT <--> ATE1 | Host1v4 |
| ATE1 | EBGP | IPv6prefix1-10/64 | IPv6 DUT <--> ATE1 | Host1v6 |
| ATE1 | EBGP | Loopback[1-10]v4/32 | IPv4 DUT <--> ATE1 | ATE1LO[1-10]v4 |
| ATE2 and ATE3 | IBGP | IPv4prefix11-20/24 | IPv4 DUT <--> ATE2 and DUT <--> ATE3 | Host2v4 |
| ATE2 and ATE3 | IBGP | IPv6prefix11-20/64 | IPv6 DUT <--> ATE2 and DUT <--> ATE3 | Host2v6 |
| ATE3 | IBGP | IPv4prefix21-30/24 | IPv4 DUT <--> ATE2 and DUT <--> ATE3 | Host3v4 |
| ATE4 and ATE5 | EBGP | IPv4prefix31-40/24 | IPv4 DUT <--> ATE4 and DUT <--> ATE5 | Host4v4 |
| ATE4 and ATE5 | EBGP | IPv6prefix31-40/64 | IPv6 DUT <--> ATE4 and DUT <--> ATE5 | Host4v6 |
To simplify this document, Host1, Host2, and Host3 will be referred to as H1, H2, H3 and H4 respectively.
| Packet# | Layer | Protocol | Source Address | Destination Address | Source Port | Destination Port | MPLS Label | Notes |
|---|---|---|---|---|---|---|---|---|
| 1 | Overall | Payload o IPv4|TCP o MPLS o IPv4|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv4|TCP | H1v4 address | H3v4 address | 14 | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| MPLS | MPLS | N/A | N/A | N/A | N/A | Static label for ATE3 to reach H3v4 | Note: Inner Dst is H3v4 | |
| Middle | IPv4|UDP | ATE1LO1v4 IPv4 addr | ATE3-port IPv4 addr | 5995 (randomizable) | 6080 | Src Port: Any unreserved UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 2 | Overall | Payload o IPv4|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv4|UDP | H1v4 address | H2v4 address | 14 (randomizable) | 15 | Src Port: Any unassigned UDP port; Dst Port: Any App/unassigned UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 3 | Overall | Payload o IPv4|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv4|TCP | H1v4 address | H2v4 address | 14 (randomizable) | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 4 | Overall | Payload o IPv4|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv4|UDP | H1v4 address | H4v4 address | 14 (randomizable) | 15 | Src Port: Any unassigned UDP port; Dst Port: Any App/unassigned UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 5 | Overall | Payload o IPv4|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv4|TCP | H1v4 address | H4v4 address | 14 (randomizable) | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 6 | Overall | Payload o IPv6|TCP o MPLS o IPv4|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H3v6 address | 14 | 15 | Src Port: Any unassigned TCP; Dst Port: Any App/unassigned TCP | ||
| MPLS | MPLS | N/A | N/A | N/A | N/A | Static label for ATE3 to reach H3v6 | Note: Inner Dst is H3v6 | |
| Middle | IPv4|UDP | ATE1LO1v4 IPv4 addr | ATE3-port IPv4 addr | 5995 (randomizable) | 6080 | Src Port: Any unassigned UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 7 | Overall | Payload o IPv6|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|UDP | H1v6 address | H2v6 address | 5995 (randomizable) | 5994 (randomizable) | Src/Dst Ports: Any unassigned UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 8 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H2v6 address | 14 (randomizable) | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unassigned UDP port; GUE v1 encapsulation | ||
| 9 | Overall | Payload o IPv6|UDP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|UDP | H1v6 address | H4v6 address | 5995 (randomizable) | 5994 (randomizable) | Src/Dst Ports: Any unreserved UDP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unreserved UDP port; GUE v1 encapsulation | ||
| 10 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H4v6 address | 14 (randomizable) | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 (randomizable) | 6080 | Src Port: Any unreserved UDP port; GUE v1 encapsulation | ||
| 11 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H4v6 address | 14 | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | ATE2-port-Address IPv6 addr | 5996 | 6080 | Src Port: Any unreserved UDP port; GUE v1 encapsulation | ||
| 12 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H4v6 address | 14 | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | ATE2-port-Address IPv6 addr | 5996 | 6080 | Src Port: Any unreserved UDP port; GUE v1 encapsulation | ||
| 13 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v4 address | H4v4 address | 14 | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 | 6085 | Src Port: Any unreserved UDP port; GUE v1 encapsulation | ||
| 14 | Overall | Payload o IPv6|TCP o IPv6|UDP(GUE v1) | ||||||
| Inner | IPv6|TCP | H1v6 address | H4v6 address | 14 | 15 | Src Port: Any unassigned TCP port; Dst Port: Any App/unassigned TCP port | ||
| Outer | IPv6|UDP(GUE v1) | ATE1-port IPv6 addr | DUT-DECAP-Address-V6 | 5996 | 6085 | Src Port: Any unreserved UDP port; GUE v1 encapsulation |
| Flow-type | Description | Packet# |
|---|---|---|
| 1 | H1 --> H3 with IPv4 | Packet#1 |
| 2 | H1 --> H2 with IPv4 | Packet#2 |
| 3 | H1 --> H2 with IPv4 | Packet#3 |
| 4 | H1 --> H4 with IPv4 | Packet#4 |
| 5 | H1 --> H4 with IPv4 | Packet#5 |
| 6 | H1 --> H3 with IPv6 | Packet#6 |
| 7 | H1 --> H2 with IPv6 | Packet#7 |
| 8 | H1 --> H2 with IPv6 | Packet#8 |
| 9 | H1 --> H4 with IPv6 | Packet#9 |
| 10 | H1 --> H4 with IPv6 | Packet#10 |
- Traffic towards a destination is spread evenly across nodes and LAGs (if applicable):
- Tolerance for delta: 5%
- Start the Ixia traffic as specified for test
- Sent 1000000 packets at the 10% of the line rate.
- Packets are generated based on different header field entropy which can be defined by the test case
- Repeat each test with the each ATE Flow-type or explicitly mentioned flow-type
- Conduct each of the following test, using a single flow-type with 1024 flows
- Configure the DUT and ATE as stated above
- Initiate a single flow-type and follow the below stated and applicable verification steps
- L4 source port of outer header(GUEv1 encap header) should be randomized for each flow-type that's running
- Repeat the test for all flow-types
- Validations:
- The outer header destination IP of the traffic is the DUT-DECAP-Address-V6 and the destination port of the traffic (UDP 6080) matches the configured UDP decap port criteria
- Therefore, DUT will decapsulate the outer header and perform a lookup based on the inner IP address
- The following traffic distribution validations are applicable as per the flow-type that is being tested
- Flow#1 for H3 should be load-balanced across the lag members via ATE3
- Flow#2 for H2 should be load-balanced via ATE2 and ATE3
- Traffic via ATE3 should be load-balanced across the lag members
- Flow#3 for H2 should be load-balanced via ATE2 and ATE3
- Traffic via ATE3 should be load-balanced across the lag members
- Flow#4 for H4 should be load-balanced via ATE4 and ATE5
- Traffic forwarded towards ATE4 (via LAG2) should be load-balanced across the LAG members
- Flow#5 for H4 should be load-balanced via ATE4 and ATE5
- Traffic forwarded towards ATE4 (via LAG2) should be load-balanced across the LAG members
- Flow#6 for H3 should be load-balanced across the lag members via ATE3
- Flow#7 for H2 should be load-balanced via ATE2 and ATE3
- Traffic via ATE3 should be load-balanced across the lag members
- Flow#8 for H2 should be load-balanced via ATE2 and ATE3
- Traffic via ATE3 should be load-balanced across the lag members
- Flow#9 for H4 should be load-balanced via ATE4 and ATE5
- Traffic forwarded towards ATE4 (via LAG2) should be load-balanced across the LAG members
- Flow#10 for H4 should be load-balanced via ATE4 and ATE5
- Traffic forwarded towards ATE4 (via LAG2) should be load-balanced across the LAG members
- No packet loss should be observed
- Port traffic counters will be leveraged to verify the loab-balance behavior
- Configure the DUT and ATE as stated above
- Repeat the test for flow-type#11 and flow-type#12 (one at a time)
- Validations:
- The outer header destination UDP port (6080) matches a configured decap port
- The outer header destination IP of the traffic does not matches the locally configured decapsulation address (DUT-DECAP-Address-V6), therefore it does not match the decapsulation criteria for the destination IP
- The DUT will not decapsulate the outer header. Instead, it will perform a lookup based on the outer destination IP address and forward the packets as standard IP traffic
- ATE Port 2 receives 1000000 packets
- No packet loss should be observed
- Configure the DUT and ATE as stated above
- Repeat the test for flow-type#13 and flow-type#14 (one at a time)
- Validations:
- The outer header destination IP of the traffic matches a configured decap IPv6 address.
- The outer header destination UDP port (6085) of the traffic does not matches the locally configured decapsulation port(6080), therefore it does not match the decapsulation criteria for the destination port
- The DUT should not decapsulate these packets. Packets should be dropped since no specific policy-forwarding rule exists for unmatched GUE
- The DUT decapsulation counters should not increment for this flow
- The drop counters on DUT will reflect the packets to 1000000
- These drop packets count will be reflected in DUT control-plane drop counters
- 100% packet loss should be observed on ATE Port 2
PF-1.22.4: Verify the Immediate next header's L4 fields are not considered in Load-Balancing Algorithm
- Set up the DUT and ATE as previously specified.
- For each flow type, configure a single source and destination IP address for both the inner and middle IPv4 and IPv6 headers. Specifically:
- For IPv4 flows that would typically use an H1v4 range, use IPv4prefix1/24.
- For IPv6 flows that would typically use an H1v6 range, use IPv6prefix1/64.
- For IPv4 flows that would typically use an H2v4 range, use IPv4prefix11/24.
- For IPv6 flows that would typically use an H2v6 range, use IPv6prefix11/64.
- For IPv4 flows that would typically use an H4v4 range, use IPv4prefix31/24.
- For IPv6 flows that would typically use an H4v6 range, use IPv6prefix31/64.
- Randomize the L4 source port of the inner/middle header (the header immediately following the outer header) for each flow type being tested.
- Test Execution:
- Initiate each flow type sequentially.
- Perform the applicable verification steps for each flow.
- Repeat this process for all flow types, applying the modified field as described above.
- Validation:
- Expected Outcome: The traffic should not be load-balanced; instead, it would simply forwarded along a single path.
- Port traffic counters will be leveraged to verify this behavior.
- Failure Condition: If traffic distribution is observed across multiple paths, the test fails.
PF-1.22.5: Verify the Immediate next header's L3 fields are not considered in Load-Balancing Algorithm
- Set up the DUT and ATE as previously specified.
- For each flow type, configure a single destination IP address for both the inner and middle IPv4 and IPv6 headers. Specifically:
- For IPv4 flows that would typically use an H1v4 range, use IPv4prefix1/24.
- For IPv6 flows that would typically use an H1v6 range, use IPv6prefix1/64.
- For IPv4 flows that would typically use an H2v4 range, use IPv4prefix11/24.
- For IPv6 flows that would typically use an H2v6 range, use IPv6prefix11/64.
- For IPv4 flows that would typically use an H4v4 range, use IPv4prefix31/24.
- For IPv6 flows that would typically use an H4v6 range, use IPv6prefix31/64.
- For each flow type, configure a source IP addresses for both the inner and middle IPv4 and IPv6 headers. Specifically:
- For IPv4 flows that would typically use an H1v4 addresses, continue to use the range IPv4prefix1-10/24.
- For IPv6 flows that would typically use an H1v6 addresses, continue to use the range IPv6prefix1-10/64.
- For IPv4 flows that would typically use an ATE1LO1v4 IPv4 address, use the range ATE1LO[1-10] addresses for each applicable flow-type.
- Randomize the L4 source port of the inner/middle header (the header immediately following the outer header) for each flow type being tested.
- Test Execution:
- Initiate each flow type sequentially.
- Perform the applicable verification steps for each flow.
- Repeat this process for all flow types, applying the modified field as described above.
- Validation:
- Expected Outcome: The traffic should not be load-balanced; instead, it would simply forwarded along a single path.
- Port traffic counters will be leveraged to verify this behavior.
- Failure Condition: If traffic distribution is observed across multiple paths, the test fails.
{
"defined-sets": {
"ipv6-prefix-sets": {
"ipv6-prefix-set": [
{
"config": {
"name": "dst_prefix_v6_gue",
"prefix": [
"2001:db8::1/128"
]
},
"name": "dst_prefix_v6_gue"
}
]
}
},
"network-instances": {
"network-instance": [
{
"config": {
"name": "DEFAULT"
},
"name": "DEFAULT",
"policy-forwarding": {
"policies": {
"policy": [
{
"config": {
"policy-id": "decap-policy"
},
"policy-id": "decap-policy",
"rules": {
"rule": [
{
"action": {
"config": {
"decapsulate-gue": true
}
},
"config": {
"sequence-id": 1
},
"ipv6": {
"config": {
"destination-address-prefix-set": "dst_prefix_v6_gue",
"protocol": "IP_UDP"
}
},
"sequence-id": 1,
"transport": {
"config": {
"destination-port": 6080
}
}
}
]
}
}
]
}
}
}
]
}
}paths:
/components/component/integrated-circuit/pipeline-counters/control-plane-traffic/state/dropped-aggregate:
platform_type: [INTEGRATED_CIRCUIT]
/components/component/integrated-circuit/pipeline-counters/control-plane-traffic/state/dropped-bytes-aggregate:
platform_type: [INTEGRATED_CIRCUIT]
/interfaces/interface/aggregation/config/lag-type:
/interfaces/interface/config/name:
/interfaces/interface/config/type:
/interfaces/interface/ethernet/config/aggregate-id:
/interfaces/interface/ethernet/state/mac-address:
/interfaces/interface/state/counters/out-pkts:
/interfaces/interface/state/counters/out-unicast-pkts:
/interfaces/interface/state/oper-status:
/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/policy-forwarding/policies/policy/config/policy-id:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/protocol:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/destination-port:
/network-instances/network-instance/protocols/protocol/bgp/global/config/as:
/network-instances/network-instance/protocols/protocol/bgp/global/config/router-id:
/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/config/allow-multiple-as:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/config/afi-safi-name:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/config/enabled:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/local-as:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/neighbor-address:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/peer-as:
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/session-state:
rpcs:
gnmi:
gNMI.Set:
replace: true
union_replace: true
gNMI.Subscribe:
on_change: true- Specify the minimum DUT-type:
- FFF - fixed form factor
-
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-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/Software 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.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-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-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.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
- 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
- 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-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.8: gRIBI Tunnel Recursion over Multi-Level LPM Underlays
- 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.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-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