-
Notifications
You must be signed in to change notification settings - Fork 203
gribi_full_scale_t1
Validate gRIBI scaling requirements (Target T1).
Use the same topology as TE-14.2 but in increased scale:
- DUT [port1] <-> ATE [port1]
- DUT [port2] <-> ATE [port2]
- DUT [port1] -> 1 L3 sub-interface <-> ATE [port1] 1 L3 sub-interface , subnet
192.0.2.0/30 - DUT [port2] -> 640 L3 sub-interfaces <-> ATE [port2] 640 L3 sub-interfaces, Use Vlan tagging for differentiation -
198.18.0.0/20subdivided into/30chunks
# Magic source IP addresses used in this test
* ipv4_outer_src_111 = 198.51.100.111
* ipv4_outer_src_222 = 198.51.100.222
* magic_mac = 02:00:00:00:00:01
* magic_ip = 192.168.1.1
gRIBI client is established with DUT.
DUT [port1] has scaled vrf_selection_policy_c configured:
- 16 Encap VRFs: from
ENCAP_TE_VRF_AtoENCAP_TE_VRF_P - 3 Transit VRFs:
TE_VRF_111/TE_VRF_222/REPAIR_VRF - 1 Decap VRF:
DECAP_TE_VRF - 1 Default VRF
network-instances {
network-instance {
name: DEFAULT
policy-forwarding {
policies {
policy {
policy-id: "vrf_selection_policy_c"
rules {
rule {
sequence-id: 1
ipv4 {
protocol: 4
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
source-address: "ipv4_outer_src_222"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "ENCAP_TE_VRF_A"
decap-fallback-network-instance: "TE_VRF_222"
}
}
rule {
sequence-id: 2
ipv4 {
protocol: 41
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
source-address: "ipv4_outer_src_222"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "ENCAP_TE_VRF_A"
decap-fallback-network-instance: "TE_VRF_222"
}
}
rule {
sequence-id: 3
ipv4 {
protocol: 4
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
source-address: "ipv4_outer_src_111"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "ENCAP_TE_VRF_A"
decap-fallback-network-instance: "TE_VRF_111"
}
}
rule {
sequence-id: 4
ipv4 {
protocol: 41
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
source-address: "ipv4_outer_src_111"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "ENCAP_TE_VRF_A"
decap-fallback-network-instance: "TE_VRF_111"
}
}
# Rules 1-4 are repeated for the range ENCAP_TE_VRF_B through ENCAP_TE_VRF_P,
# using the corresponding DSCP sets (dscp_encap_b_1/2 through dscp_encap_p_1/2).
# This generates 60 additional rule stanzas (ommitted here).
rule {
sequence-id: 65
ipv4 {
protocol: 4
source-address: "ipv4_outer_src_222"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "DEFAULT"
decap-fallback-network-instance: "TE_VRF_222"
}
}
rule {
sequence-id: 66
ipv4 {
protocol: 41
source-address: "ipv4_outer_src_222"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "DEFAULT"
decap-fallback-network-instance: "TE_VRF_222"
}
}
rule {
sequence-id: 67
ipv4 {
protocol: 4
source-address: "ipv4_outer_src_111"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "DEFAULT"
decap-fallback-network-instance: "TE_VRF_111"
}
}
rule {
sequence-id: 68
ipv4 {
protocol: 41
source-address: "ipv4_outer_src_111"
}
action {
decap-network-instance: "DECAP_TE_VRF"
post-network-instance: "DEFAULT"
decap-fallback-network-instance: "TE_VRF_111"
}
}
rule {
sequence-id: 69
ipv4 {
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
}
action {
network-instance: "ENCAP_TE_VRF_A"
}
}
rule {
sequence-id: 70
ipv6 {
dscp-set: [dscp_encap_a_1, dscp_encap_a_2]
}
action {
network-instance: "ENCAP_TE_VRF_A"
}
}
# Rules 69-70 are repeated for the range ENCAP_TE_VRF_B through ENCAP_TE_VRF_P,
# using the corresponding DSCP sets (dscp_encap_b_1/2 through dscp_encap_p_1/2).
# This generates 30 additional rule stanzas (ommitted here).
rule {
sequence-id: 101
action {
network-instance: "DEFAULT"
}
}
}
}
}
}
}
}
Default (fictitious level) VRF setup:
-
A) Install 1000 NextHops, egressing out different interfaces.
-
B) Install 1000 NextHopGroups. Each points to 64 NextHops from A): the weights specified in the NextHopGroup should be co-prime and the sum of the weights should be at granularity:
- T1)
- 80% (800) NHGs should have granularity 1/512
- 20% (200) NHGs should have granularity 1/1K
- T1)
-
C) Install 1000 IPv4 Entries, each pointing at a unique NHG from B).
Static groups:
- S1) Install 1 NHG pointing to a NH. The NH should be a reference to
REPAIR_VRF - S2) Install 1 NHG pointing to a NH. The NH should do decapsulation and point to Default VRF
Transit VRFs setup:
-
Add 3 VRFs:
TE_VRF_111,TE_VRF_222andREPAIR_VRF -
Default VRF setup for
TE_VRF_111/TE_VRF_222:- D.1) Install 1536 NextHops. Each will redirect to an IP from C).
- D.2) Install 1536 NextHops. Each will redirect to an IP from C).
- E.1) Install 768 NextHopGroups. Each will contain 1 NextHops from D.1 with weights 1 and 1 NextHop from D.1 with weight 63. The backup NextHopGroup should be S1).
- E.2) Install 768 NextHopGroups. Each will contain 1 NextHops from D.1 with weights 1 and 1 NextHop from D.1 with weight 63. The backup NextHopGroup should be S2).
-
TE_VRF_111:- Install 200K
/32IPv4Entries (no IPv6Entries). Each points to a NextHopGroup from E.1).
- Install 200K
-
TE_VRF_222:- Install 200K
/32IPv4Entries (no IPv6Entries). Each points to a NextHopGroup from E.2).
- Install 200K
-
Default VRF setup for
REPAIR_VRF:- F) Install X NextHopGroup. 50% of the NHG should point to 1 NH, and 50%
should point to 2 NHs.Each NH should update src address to
ipv4_outer_src_222re-encap to an IPv4 Entry from Repaired VRF. Backup NHG should be S2).- T2) X = 1K
- F) Install X NextHopGroup. 50% of the NHG should point to 1 NH, and 50%
should point to 2 NHs.Each NH should update src address to
-
REPAIR_VRF:- Install 200K IPv4Entries. Each points to a NextHopGroup from F)
Encap / Decap VRFs gRIBI setup:
- Add 16 VRFs for encapsulations: from
ENCAP_TE_VRF_A- toENCAP_TE_VRF_P. - Add 1 VRF for decapsulation,
DECAP_TE_VRF. - Inject 10K IPv4Entry-ies and 10K IPv6Entry-ies to each of the 16 Encap VRFs.
- The entries in the Encap VRFs should point to NextHopGroups in the default VRF. Inject NextHopGroups in the default VRF: - T3) 4K
- Each NextHopGroup should have a number of NextHops where each NextHop should
do encapsulation, update src ip to
ipv4_outer_src_111and point to a tunnel in theTE_VRF_111. In addition, the weights specified in the NextHopGroup should be co-prime and the sum of the weights should be 1/granularity:- 75% NHGs should each point to 8 NHs with granularity 1/64
- 20% NHGs should each point to 32 NHs with granularity 1/128
- 5% NHGs should each point to 32 NHs with granularity 1/256
- Overall the number of unique NHs should be:
- T4) 16K
- Inject 48 ipv4 entries in the
DECAP_TE_VRFwhere the entries have a mix of prefix lengths/22,/24,/26, and/28. - Each NHG points to 1 NH to decapsulate and output to a port
-
Validate that each entry is installed as
FIB_PROGRAMMED -
Validate The Hierarchical route structure was installed correctly:
- Check 10 random addressess from
TE_VRF_111and using gRIBI client ensure they recursively resolve to expected interfaces.
- Check 10 random addressess from
-
Validate the traffic follows the programmed paths. For all the use-cases send the traffic in 2 tests, each for 5 minutes of total 30 Mpps across interfaces with 0% traffic drop tolerance:
- packet size of 64 bytes
- IMIX traffic as a mix of 7:4:1 to 3K:1.5K:0.5K
-
Encap
- Send un-encapsulated traffic to all IPv4 and IPv6 entries in all the Encap VRFs
- For all the
ENCAP_TE_VRF_A-ENCAP_TE_VRF_P(hereVRF_X), the flows are:- src_id=DUT-1, dst_ip=[all IPv4s from
VRF_X], dscp=encap_vrf_dscp_x_1 - src_id=DUT-1, dst_ip=[all IPv4s from
VRF_X], dscp=encap_vrf_dscp_x_2 - src_id=DUT-1, dst_ip=[all IPv6s from
VRF_X], dscp=encap_vrf_dscp_x_1 - src_id=DUT-1, dst_ip=[all IPv6s from
VRF_X], dscp=encap_vrf_dscp_x_2
- src_id=DUT-1, dst_ip=[all IPv4s from
- Verify traffic received by ATE is encapsulated
-
Decap
- Send encapsulated traffic to all the IPv4 expanded from all the prefix
lengths (
/22,/24,/26, and/28) in Decap VRF: - For all the
ENCAP_TE_VRF_A-ENCAP_TE_VRF_P(hereVRF_X), the flows are:- outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s],outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=DUT-2, inner_dscp=encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s],outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1, inner_dst_ip=DUT-2, inner_dscp=encap_vrf_dscp_x_2
- outer_src_ip=
- Verify traffic received by ATE was de-encapsulated
- Send encapsulated traffic to all the IPv4 expanded from all the prefix
lengths (
-
Re-encap
- Send encapsulated traffic to all the IPv4 expanded from all the prefix lengths (
/22,/24,/26, and/28) in Decap VRF to all the Encap VRFs:- For all the
ENCAP_TE_VRF_A-ENCAP_TE_VRF_P(hereVRF_X), the flows are:- outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=[all IPv4s fromVRF_X], inner_dscp=encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1, inner_dst_ip=[all IPv4s fromVRF_X], inner_dscp=encap_vrf_dscp_x_2 - outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=[all IPv6s fromVRF_X], inner_dscp=`encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1, inner_dst_ip=[all IPv6s fromVRF_X], inner_dscp=`encap_vrf_dscp_x_2 - outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=[all IPv4s fromVRF_X], inner_dscp=`encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1, inner_dst_ip=[all IPv4s fromVRF_X], inner_dscp=encap_vrf_dscp_x_2 - outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=[all IPv6s fromVRF_X], inner_dscp=encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[expanded Decap IPv4s], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1, inner_dst_ip=[all IPv6s fromVRF_X], inner_dscp=encap_vrf_dscp_x_2
- outer_src_ip=
- For all the
- Verify that traffic received by ATE is encapsulated and outer_dst_ip is not from the expanded Decap IPv4 set.
- Send encapsulated traffic to all the IPv4 expanded from all the prefix lengths (
-
Transit
- Send encapsulated traffic to all the IPv4 Entries from
TE_VRF_111)`:- For all the
ENCAP_TE_VRF_A-ENCAP_TE_VRF_P(hereVRF_X), the flows are:- outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[all IPv4s from Repaired], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=DUT-2,inner_dscp=encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_111, outer_dst_ip=[all IPv4s from Repaired], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1,inner_dst_ip=DUT-2,inner_dscp=encap_vrf_dscp_x_2
- outer_src_ip=
- For all the
- Verify that traffic received by ATE stays encapsulated with the outer header having the same source IP and destination IP is from the Transit VRF IPv4 entry set.
- Send encapsulated traffic to all the IPv4 Entries from
-
Repaired (incoming after FRR):
- Send encapsulated traffic to all the IPv4 Entries from
TE_VRF_222: - For all the
ENCAP_TE_VRF_A-ENCAP_TE_VRF_P(hereVRF_X), the flows are:- outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[all IPv4s from Repaired], outer_dscp=encap_vrf_dscp_x_1, inner_src_ip=DUT-1, inner_dst_ip=DUT-2, inner_dscp=encap_vrf_dscp_x_1 - outer_src_ip=
ipv4_outer_src_222, outer_dst_ip=[all IPv4s from Repaired], outer_dscp=encap_vrf_dscp_x_2, inner_src_ip=DUT-1,inner_dst_ip=DUT-2, inner_dscp=encap_vrf_dscp_x_2
- outer_src_ip=
- Verify that traffic received by ATE stays encapsulated with the outer header having the same source IP and destination IP is from the Repaired VRF IPv4 entry set.
- Send encapsulated traffic to all the IPv4 Entries from
Note: the Canonical OC path section only has description for one sub-interface of DUT[port2] and only considers a single VRF ENCAP_TE_VRF_A to keep it brief.
{
"interfaces": {
"interface": [
{
"config": {
"description": "DUT port1",
"name": "port1",
"type": "ethernetCsmacd"
},
"name": "port1",
"subinterfaces": {
"subinterface": [
{
"config": {
"index": 1
},
"index": 1,
"ipv4": {
"addresses": {
"address": [
{
"config": {
"ip": "192.0.2.1",
"prefix-length": 30
},
"ip": "192.0.2.1"
}
]
}
}
}
]
}
},
{
"config": {
"description": "DUT port2 with 640 sub-interfaces",
"name": "port2",
"type": "ethernetCsmacd"
},
"name": "port2",
"subinterfaces": {
"subinterface": [
{
"config": {
"index": 1
},
"index": 1,
"ipv4": {
"addresses": {
"address": [
{
"config": {
"ip": "198.18.0.1",
"prefix-length": 30
},
"ip": "198.18.0.1"
}
]
}
},
"vlan": {
"config": {
"vlan-id": 1
},
"match": {
"single-tagged": {
"config": {
"vlan-id": 1
}
}
}
}
}
]
}
}
]
},
"network-instances": {
"network-instance": [
{
"config": {
"name": "DECAP_TE_VRF",
"type": "L3VRF"
},
"name": "DECAP_TE_VRF"
},
{
"config": {
"name": "DEFAULT",
"type": "DEFAULT_INSTANCE"
},
"name": "DEFAULT",
"policy-forwarding": {
"interfaces": {
"interface": [
{
"config": {
"apply-vrf-selection-policy": "vrf_selection_policy_c",
"interface-id": "port1"
},
"interface-id": "port1",
"interface-ref": {
"config": {
"interface": "port1",
"subinterface": 1
}
}
}
]
},
"policies": {
"policy": [
{
"config": {
"policy-id": "vrf_selection_policy_c",
"type": "PBR_POLICY"
},
"policy-id": "vrf_selection_policy_c",
"rules": {
"rule": [
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_222",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 1
},
"ipv4": {
"config": {
"dscp-set": [
10,
11
],
"protocol": 4,
"source-address": "198.51.100.222/32"
}
},
"sequence-id": 1
},
{
"action": {
"config": {
"network-instance": "DEFAULT"
}
},
"config": {
"sequence-id": 101
},
"sequence-id": 101
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_222",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 2
},
"ipv4": {
"config": {
"dscp-set": [
10,
11
],
"protocol": 41,
"source-address": "198.51.100.222/32"
}
},
"sequence-id": 2
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_111",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 3
},
"ipv4": {
"config": {
"dscp-set": [
10,
11
],
"protocol": 4,
"source-address": "198.51.100.111/32"
}
},
"sequence-id": 3
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_111",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 4
},
"ipv4": {
"config": {
"dscp-set": [
10,
11
],
"protocol": 41,
"source-address": "198.51.100.111/32"
}
},
"sequence-id": 4
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_222",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "DEFAULT"
}
},
"config": {
"sequence-id": 65
},
"ipv4": {
"config": {
"protocol": 4,
"source-address": "198.51.100.222/32"
}
},
"sequence-id": 65
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_222",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "DEFAULT"
}
},
"config": {
"sequence-id": 66
},
"ipv4": {
"config": {
"protocol": 41,
"source-address": "198.51.100.222/32"
}
},
"sequence-id": 66
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_111",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "DEFAULT"
}
},
"config": {
"sequence-id": 67
},
"ipv4": {
"config": {
"protocol": 4,
"source-address": "198.51.100.111/32"
}
},
"sequence-id": 67
},
{
"action": {
"config": {
"decap-fallback-network-instance": "TE_VRF_111",
"decap-network-instance": "DECAP_TE_VRF",
"post-decap-network-instance": "DEFAULT"
}
},
"config": {
"sequence-id": 68
},
"ipv4": {
"config": {
"protocol": 41,
"source-address": "198.51.100.111/32"
}
},
"sequence-id": 68
},
{
"action": {
"config": {
"network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 69
},
"ipv4": {
"config": {
"dscp-set": [
10,
11
]
}
},
"sequence-id": 69
},
{
"action": {
"config": {
"network-instance": "ENCAP_TE_VRF_A"
}
},
"config": {
"sequence-id": 70
},
"ipv6": {
"config": {
"dscp-set": [
10,
11
]
}
},
"sequence-id": 70
}
]
}
}
]
}
}
},
{
"config": {
"name": "ENCAP_TE_VRF_A",
"type": "L3VRF"
},
"name": "ENCAP_TE_VRF_A"
},
{
"config": {
"name": "REPAIR_VRF",
"type": "L3VRF"
},
"name": "REPAIR_VRF"
},
{
"config": {
"name": "TE_VRF_111",
"type": "L3VRF"
},
"name": "TE_VRF_111"
},
{
"config": {
"name": "TE_VRF_222",
"type": "L3VRF"
},
"name": "TE_VRF_222"
}
]
}
}paths:
/interfaces/interface/config/description:
/interfaces/interface/config/enabled:
/interfaces/interface/config/type:
/interfaces/interface/ethernet/config/port-speed:
/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/prefix-length:
/interfaces/interface/subinterfaces/subinterface/ipv4/config/enabled:
/interfaces/interface/subinterfaces/subinterface/vlan/config/vlan-id:
/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged/config/vlan-id:
/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/id:
/network-instances/network-instance/afts/next-hop-groups/next-hop-group/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/interface-ref/state/interface:
/network-instances/network-instance/config/type:
/network-instances/network-instance/policy-forwarding/interfaces/interface/config/apply-vrf-selection-policy:
/network-instances/network-instance/policy-forwarding/interfaces/interface/interface-ref/config/interface:
/network-instances/network-instance/policy-forwarding/interfaces/interface/interface-ref/config/subinterface:
/network-instances/network-instance/policy-forwarding/policies/policy/config/type:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/network-instance:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/source-address:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state/decap-fallback-network-instance:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/state/dscp-set:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/state/source-address:
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/state/dscp-set:
rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
gribi:
gRIBI.Get:
gRIBI.Modify:
gRIBI.Flush:-
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
- 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.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-1.25: Egress Static MPLS LSP Verification
- 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.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-1.67: IPv4 and IPv6 Static Route using Vlan Interface
- RT-1.71: BGP Disable Peer AS Filter (
disable-peer-as-filter) - 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-5.14: Aggregate Subinterface in Default and Non-default Network Instance
- RT-5.15: LACP Fallback Support
- 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.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-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