From cff97341b4c328ef40eadf94390db4c91f50b25c Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Mon, 7 Oct 2024 06:15:10 +0000 Subject: [PATCH 01/33] adding a new id by sudhin --- feature/aft/aft_base/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 feature/aft/aft_base/README.md diff --git a/feature/aft/aft_base/README.md b/feature/aft/aft_base/README.md new file mode 100644 index 00000000000..e69de29bb2d From e755346fed77f9fa59f5c5732ecbe4497b0f7e95 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Mon, 7 Oct 2024 06:19:17 +0000 Subject: [PATCH 02/33] adding aft --- testregistry.textproto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testregistry.textproto b/testregistry.textproto index 13f6945e21a..44324b952f6 100644 --- a/testregistry.textproto +++ b/testregistry.textproto @@ -1735,3 +1735,9 @@ test: { readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/container/networking/tests/container_connectivity/README.md" exec: " " } +test: { + id: "AFT-1.1" + description: "AFT Streaming" + readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/aft/aft_base/otg_tests/aft_base/README.md" + exec: " " +} \ No newline at end of file From e66be7410b2a255fdfd565baec112dca9218a70d Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Mon, 7 Oct 2024 06:21:42 +0000 Subject: [PATCH 03/33] removing files --- feature/aft/aft_base/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 feature/aft/aft_base/README.md diff --git a/feature/aft/aft_base/README.md b/feature/aft/aft_base/README.md deleted file mode 100644 index e69de29bb2d..00000000000 From f1c90b7588ec6d0afe0748746e6b540d4b9c9e94 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Mon, 7 Oct 2024 06:23:27 +0000 Subject: [PATCH 04/33] adding readme --- feature/aft/aft_base/otg_tests/aft_base/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 feature/aft/aft_base/otg_tests/aft_base/README.md diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md new file mode 100644 index 00000000000..e69de29bb2d From d6f52a7080e2532fb8ce02e5086697774798eca1 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Thu, 10 Oct 2024 04:08:31 +0000 Subject: [PATCH 05/33] adding test cases --- .../aft/aft_base/otg_tests/aft_base/README.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index e69de29bb2d..fd0c3367f64 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -0,0 +1,164 @@ +# AFT-1.1: AFTs Base + +## Summary + +IPv4/IPv6 unicast routes next hop group and next hop. + +## Procedure + ++--------------------+ +| | +----------------+ +| | | | +| | | | +| | | | +| | port1 | ATE | +| DUT +-----------+ | +| | | | +| | | | +| | port2 | | +| +-----------+ | +| | | | +| | | | +| | | | +| | | | ++-----------+--------+ +---------+------+ + | | + | | + | | + | | + | port3 | + +------------------------------+- + +Configure DUT:port1,port2,port3 for IS-IS session with ATE:port1,port2,port3 +* IS-IS must be level 2 only with wide metric. +* IS-IS must be point to point. +* Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port3 to DUT:port3. +* IS-IS must be up and running, prefixes must be in RIB and FIB. + +Establish eBGP sessions between ATE:port1,port2 and DUT:port1,port2 and another between ATE:port3 and DUT:port3. +* Configure eBGP over the interface ip. +* eBGP must be multipath. +* Advertise 1000 ipv4,ipv6 prefixes from ATE port1,port2 observe received prefixes at DUT. +* Validate total number of entries of AFT for IPv4 and IPv6. +* Each prefix must have 2 next hops pointing to ATE port1,port2. +* Advertise 100 ipv4,ipv6 from ATE port3 observe received prefixes at DUT. + +Establish RSVP Sessions between ATE:port3 and SUT:port3. +* Configure mpls and rsvp sessions. +* Configure 2 ingress TE tunnels from DUT:port3 to ATE:port3. +* Tunnel destination is interface ip of ATE:port3. +* Configure explicit null and ipv6 tunneling. +* BGP advertised routes from ATE:port3 must be pointing to the 2 tunnels in the DUT. + +Verifications + +* BGP routes advertised from ATE:port1,port2 must have 2 nexthops. +* IS-IS routes advertised from ATE:port3 must have one next hop. +* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. + + +## AFT-1.1.1: AFT Base Link Down scenario 1 + +Bring down the link between ATE:port2 and DUT:port2 + +Verifications + +* BGP routes advertised from ATE:port1,port2 must have 1 nexthop. +* IS-IS routes advertised from ATE:port3 must have one next hop. +* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. + +## AFT-1.1.2: AFT Base Link Down scenario 2 + +Bring down both links between ATE:port1,port2 and DUT:port1,port2 + +Verifications + +* BGP routes advertised from ATE:port1,port2 must be removed from RIB,FIB of the DUT, query results nil. +* IS-IS routes advertised from ATE:port3 must have one next hop. +* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. + + +## AFT-1.1.3: AFT Base Link Up scenario 1 + +Bring up link between ATE:port1 and DUT:port1 + +Verifications + +* BGP routes advertised from ATE:port1,port2 must have one next hop. +* IS-IS routes advertised from ATE:port3 must have one next hop. +* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. + + +## AFT-1.1.4: AFT Base Link Up scenario 2 + +Bring up both link between ATE:port1,port2 and DUT:port1,port2 + +Verifications + +* BGP routes advertised from ATE:port1,port2 must have 2 next hops. +* IS-IS routes advertised from ATE:port3 must have one next hop. +* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. + + +## OpenConfig Path and RPC Coverage + +The below yaml defines the OC paths intended to be covered by this test. OC paths used for test setup are not listed here. + +```yaml +paths: + ## Config Paths ## + + ## State Paths ## + + /network-instances/network-instance/afts: + /network-instances/network-instance/afts/ethernet/mac-entry/state/next-hop-group: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-protocol: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-protocol: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix: + /network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/origin-protocol: + /network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/counters/aft-entries: + /network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/origin-protocol: + /network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/counters/aft-entries: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/id: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/index: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state/index: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state/weight: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/backup-next-hop-group: + /network-instances/network-instance/afts/next-hop-groups/next-hop-group/state/id: + /network-instances/network-instance/afts/next-hops/next-hop/index: + /network-instances/network-instance/afts/next-hops/next-hop/interface-ref/state/interface: + /network-instances/network-instance/afts/next-hops/next-hop/interface-ref/state/subinterface: + /network-instances/network-instance/afts/next-hops/next-hop/state/encapsulate-header: + /network-instances/network-instance/afts/next-hops/next-hop/state/index: + /network-instances/network-instance/afts/next-hops/next-hop/state/ip-address: + /network-instances/network-instance/afts/next-hops/next-hop/state/mac-address: + /network-instances/network-instance/afts/next-hops/next-hop/state/origin-protocol: + /network-instances/network-instance/afts/state-synced/state/ipv4-unicast: + /network-instances/network-instance/afts/state-synced/state/ipv6-unicast: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/entry-metadata: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group-network-instance: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-network-instance: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/entry-metadata: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/next-hop-group-network-instance: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-network-instance: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/prefix: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/prefix: + +rpcs: + gnmi: + gNMI.Subscribe: +``` + +## Control Protocol Coverage + +BGP +IS-IS +RSVP +MPLS + +## Minimum DUT Platform Requirement + +vRX From be46d351bd7aa60f8ae5840ab5fb31080d3939cd Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Thu, 10 Oct 2024 04:12:59 +0000 Subject: [PATCH 06/33] modify --- .../aft/aft_base/otg_tests/aft_base/README.md | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index fd0c3367f64..dbe26607391 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -6,29 +6,6 @@ IPv4/IPv6 unicast routes next hop group and next hop. ## Procedure -+--------------------+ -| | +----------------+ -| | | | -| | | | -| | | | -| | port1 | ATE | -| DUT +-----------+ | -| | | | -| | | | -| | port2 | | -| +-----------+ | -| | | | -| | | | -| | | | -| | | | -+-----------+--------+ +---------+------+ - | | - | | - | | - | | - | port3 | - +------------------------------+- - Configure DUT:port1,port2,port3 for IS-IS session with ATE:port1,port2,port3 * IS-IS must be level 2 only with wide metric. * IS-IS must be point to point. From 6f1c043fe6d37adf5d525632864def462c1be49e Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Thu, 10 Oct 2024 04:43:43 +0000 Subject: [PATCH 07/33] removing faulty oc --- feature/aft/aft_base/otg_tests/aft_base/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index dbe26607391..bce1a9ba092 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -87,7 +87,6 @@ paths: ## State Paths ## - /network-instances/network-instance/afts: /network-instances/network-instance/afts/ethernet/mac-entry/state/next-hop-group: /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/next-hop-group: /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-protocol: From ce1275bf633c13d3d6c5c4158cdab7d852ed0127 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Thu, 10 Oct 2024 06:30:42 +0000 Subject: [PATCH 08/33] adding test cases for prefix counters --- .../otg_tests/aft_prefixcounters/README.md | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md new file mode 100644 index 00000000000..a7a32e1abc6 --- /dev/null +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -0,0 +1,192 @@ +# AFT-2.1: AFTs Prefix Counters + +## Summary + +IPv4/IPv6 prefix counters + +## Procedure + +Configure DUT:port1 for IS-IS session with ATE:port1 +* IS-IS must be level 2 only with wide metric. +* IS-IS must be point to point. +* Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port1 to DUT:port1. +* IS-IS must be up and running, prefixes must be in RIB and FIB. + +Establish eBGP sessions between ATE:port1 and DUT:port1. +* Configure eBGP over the interface ip. +* Advertise 1000 ipv4,ipv6 prefixes from ATE port1 observe received prefixes at DUT. +* Validate total number of entries of AFT for IPv4 and IPv6. +* Each prefix must have 1 next hop pointing to ATE port1. + +Verifications + +* BGP routes advertised from ATE:port1 must have 1 nexthop. +* IS-IS routes advertised from ATE:port1 must have one next hop. + + +## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, IS-IS route. + +From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by IS-IS, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + +## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, BGP route. + +From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by BGP, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + + + +## AFT-2.1.3: AFT Prefix Counters ipv4 octets forwarded, IS-IS route. + +From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by IS-IS, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + + +## AFT-2.1.4: AFT Prefix Counters ipv4 octets forwarded, BGP route. + +From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by BGP, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + +## AFT-2.1.5: AFT Prefix Counters ipv6 packets forwarded, IS-IS route. + +From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by IS-IS, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + +## AFT-2.1.6: AFT Prefix Counters ipv6 packets forwarded, BGP route. + +From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by BGP, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + + + +## AFT-2.1.7: AFT Prefix Counters ipv6 octets forwarded, IS-IS route. + +From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by IS-IS, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + + +## AFT-2.1.8: AFT Prefix Counters ipv6 octets forwarded, BGP route. + +From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by BGP, after 1 minute stop the traffic. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + + +## AFT-2.1.9: AFT Prefix Counters withdraw the ipv4 prefix. + +* From ATE:port1 withdraw some prefixes of BGP and IS-IS. +* Send 10000 pps from ATE:port2 to DUT:port2 for one of the withdrawn ipv4 prefix. +* The traffic must blackhole. + +Verifications + +* The counters must not send incremental value as the prefix is not present in RIB/FIB. + +## AFT-2.1.10: AFT Prefix Counters add the ipv4 prefix back. + +* From ATE:port1 add the prefixes of BGP and IS-IS back. +* Send 10000 pps from ATE:port2 to DUT:port2 for one of the added ipv4 prefix. +* The traffic must flow end to end. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + +## AFT-2.1.11: AFT Prefix Counters withdraw the ipv6 prefix. + +* From ATE:port1 withdraw some prefixes of BGP and IS-IS. +* Send 10000 pps from ATE:port2 to DUT:port2 for one of the withdrawn ipv6 prefix. +* The traffic must blackhole. + +Verifications + +* The counters must not send incremental value as the prefix is not present in RIB/FIB. + +## AFT-2.1.12: AFT Prefix Counters add the ipv6 prefix back. + +* From ATE:port1 add the prefixes of BGP and IS-IS back. +* Send 10000 pps from ATE:port2 to DUT:port2 for one of the added ipv6 prefix. +* The traffic must flow end to end. + +Verifications + +* Before the traffic measure the initial counter value. +* After the traffic measure the final counter value. +* The difference between final and initial value must match with the counter value in ATE. + +## OpenConfig Path and RPC Coverage + +The below yaml defines the OC paths intended to be covered by this test. OC paths used for test setup are not listed here. + +```yaml +paths: + ## Config Paths ## + + ## State Paths ## + + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/octets-forwarded: + /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters/packets-forwarded: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/octets-forwarded: + /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters/packets-forwarded: + + +rpcs: + gnmi: + gNMI.Subscribe: +``` + +## Control Protocol Coverage + +BGP +IS-IS + +## Minimum DUT Platform Requirement + +vRX \ No newline at end of file From 910c66bd4f24e3abfd18d51383638a12b19f55d4 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Thu, 10 Oct 2024 06:32:05 +0000 Subject: [PATCH 09/33] adding test case numbers --- testregistry.textproto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testregistry.textproto b/testregistry.textproto index aabdab47e00..ba4a57723cc 100644 --- a/testregistry.textproto +++ b/testregistry.textproto @@ -1752,4 +1752,10 @@ test: { description: "AFT Streaming" readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/aft/aft_base/otg_tests/aft_base/README.md" exec: " " +} +test: { + id: "AFT-2.1" + description: "AFT Streaming" + readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md" + exec: " " } \ No newline at end of file From 5f47edea0cd7dfbc02a19293333db79d60f33136 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Wed, 16 Oct 2024 05:27:50 +0000 Subject: [PATCH 10/33] updating the changes --- .../aft/aft_base/otg_tests/aft_base/README.md | 25 ++++++++---- .../otg_tests/aft_prefixcounters/README.md | 39 +++++++++++++------ 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index bce1a9ba092..01cca2528c9 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -4,7 +4,9 @@ IPv4/IPv6 unicast routes next hop group and next hop. -## Procedure +## Test Setup + +### Generate DUT and ATE Configuration Configure DUT:port1,port2,port3 for IS-IS session with ATE:port1,port2,port3 * IS-IS must be level 2 only with wide metric. @@ -27,12 +29,18 @@ Establish RSVP Sessions between ATE:port3 and SUT:port3. * Configure explicit null and ipv6 tunneling. * BGP advertised routes from ATE:port3 must be pointing to the 2 tunnels in the DUT. -Verifications +## Procedure -* BGP routes advertised from ATE:port1,port2 must have 2 nexthops. -* IS-IS routes advertised from ATE:port3 must have one next hop. -* BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* Gnmi set with REPLACE option to push the configuration DUT. +* ATE configuration must be pushed. +Verifications + +* BGP 2000 routes advertised from ATE:port1,port2 must have 2 nexthops. +* IS-IS 2000 routes advertised from ATE:port3 must have one next hop. +* BGP 100 routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. +* Verify afts prefix entries using the path mentioned in the path section. ## AFT-1.1.1: AFT Base Link Down scenario 1 @@ -43,6 +51,7 @@ Verifications * BGP routes advertised from ATE:port1,port2 must have 1 nexthop. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* Verify afts prefix entries using the path mentioned in the paths section of this test plan. ## AFT-1.1.2: AFT Base Link Down scenario 2 @@ -53,7 +62,7 @@ Verifications * BGP routes advertised from ATE:port1,port2 must be removed from RIB,FIB of the DUT, query results nil. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. - +* Verify afts prefix entries using the path mentioned in the paths section of this test plan. ## AFT-1.1.3: AFT Base Link Up scenario 1 @@ -64,7 +73,7 @@ Verifications * BGP routes advertised from ATE:port1,port2 must have one next hop. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. - +* Verify afts prefix entries using the path mentioned in the paths section of this test plan. ## AFT-1.1.4: AFT Base Link Up scenario 2 @@ -75,7 +84,7 @@ Verifications * BGP routes advertised from ATE:port1,port2 must have 2 next hops. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. - +* Verify afts prefix entries using the path mentioned in the paths section of this test plan. ## OpenConfig Path and RPC Coverage diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index a7a32e1abc6..01ff549e4e1 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -4,7 +4,9 @@ IPv4/IPv6 prefix counters -## Procedure +## Test Setup + +### Generate DUT and ATE Configuration Configure DUT:port1 for IS-IS session with ATE:port1 * IS-IS must be level 2 only with wide metric. @@ -18,10 +20,22 @@ Establish eBGP sessions between ATE:port1 and DUT:port1. * Validate total number of entries of AFT for IPv4 and IPv6. * Each prefix must have 1 next hop pointing to ATE port1. -Verifications + +## Procedure + +* Gnmi set with REPLACE option to push the configuration DUT. +* ATE configuration must be pushed. + +verifications * BGP routes advertised from ATE:port1 must have 1 nexthop. * IS-IS routes advertised from ATE:port1 must have one next hop. +* Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. +* Verify afts prefix entries using the following paths with in a period of 30s. + +/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix +/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix + ## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, IS-IS route. @@ -33,7 +47,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, BGP route. @@ -44,9 +58,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - - - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.3: AFT Prefix Counters ipv4 octets forwarded, IS-IS route. @@ -57,7 +69,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.4: AFT Prefix Counters ipv4 octets forwarded, BGP route. @@ -69,6 +81,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.5: AFT Prefix Counters ipv6 packets forwarded, IS-IS route. @@ -79,7 +92,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.6: AFT Prefix Counters ipv6 packets forwarded, BGP route. @@ -90,7 +103,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. @@ -103,7 +116,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.8: AFT Prefix Counters ipv6 octets forwarded, BGP route. @@ -115,7 +128,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. - +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.9: AFT Prefix Counters withdraw the ipv4 prefix. @@ -126,6 +139,7 @@ Verifications Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.10: AFT Prefix Counters add the ipv4 prefix back. @@ -138,6 +152,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.11: AFT Prefix Counters withdraw the ipv6 prefix. @@ -148,6 +163,7 @@ Verifications Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.12: AFT Prefix Counters add the ipv6 prefix back. @@ -160,6 +176,7 @@ Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. +* Verify afts counter entries using the path mentioned in the paths section of this test plan. ## OpenConfig Path and RPC Coverage From 4408124bb7c996179b1b2227cea1ffc21efb7b54 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Wed, 16 Oct 2024 06:12:19 +0000 Subject: [PATCH 11/33] adding comments for pull request --- .../aft/aft_base/otg_tests/aft_base/README.md | 20 +++-- .../otg_tests/aft_prefixcounters/README.md | 80 ++++++++++++------- 2 files changed, 64 insertions(+), 36 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 01cca2528c9..b0db963b172 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -12,7 +12,7 @@ Configure DUT:port1,port2,port3 for IS-IS session with ATE:port1,port2,port3 * IS-IS must be level 2 only with wide metric. * IS-IS must be point to point. * Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port3 to DUT:port3. -* IS-IS must be up and running, prefixes must be in RIB and FIB. + Establish eBGP sessions between ATE:port1,port2 and DUT:port1,port2 and another between ATE:port3 and DUT:port3. * Configure eBGP over the interface ip. @@ -34,7 +34,7 @@ Establish RSVP Sessions between ATE:port3 and SUT:port3. * Gnmi set with REPLACE option to push the configuration DUT. * ATE configuration must be pushed. -Verifications +## Verifications * BGP 2000 routes advertised from ATE:port1,port2 must have 2 nexthops. * IS-IS 2000 routes advertised from ATE:port3 must have one next hop. @@ -44,9 +44,11 @@ Verifications ## AFT-1.1.1: AFT Base Link Down scenario 1 +## Procedure + Bring down the link between ATE:port2 and DUT:port2 -Verifications +## Verifications * BGP routes advertised from ATE:port1,port2 must have 1 nexthop. * IS-IS routes advertised from ATE:port3 must have one next hop. @@ -55,9 +57,11 @@ Verifications ## AFT-1.1.2: AFT Base Link Down scenario 2 +## Procedure + Bring down both links between ATE:port1,port2 and DUT:port1,port2 -Verifications +## Verifications * BGP routes advertised from ATE:port1,port2 must be removed from RIB,FIB of the DUT, query results nil. * IS-IS routes advertised from ATE:port3 must have one next hop. @@ -66,9 +70,11 @@ Verifications ## AFT-1.1.3: AFT Base Link Up scenario 1 +## Procedure + Bring up link between ATE:port1 and DUT:port1 -Verifications +## Verifications * BGP routes advertised from ATE:port1,port2 must have one next hop. * IS-IS routes advertised from ATE:port3 must have one next hop. @@ -77,9 +83,11 @@ Verifications ## AFT-1.1.4: AFT Base Link Up scenario 2 +## Procedure + Bring up both link between ATE:port1,port2 and DUT:port1,port2 -Verifications +## Verifications * BGP routes advertised from ATE:port1,port2 must have 2 next hops. * IS-IS routes advertised from ATE:port3 must have one next hop. diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index 01ff549e4e1..c01095c5676 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -12,37 +12,35 @@ Configure DUT:port1 for IS-IS session with ATE:port1 * IS-IS must be level 2 only with wide metric. * IS-IS must be point to point. * Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port1 to DUT:port1. -* IS-IS must be up and running, prefixes must be in RIB and FIB. Establish eBGP sessions between ATE:port1 and DUT:port1. * Configure eBGP over the interface ip. * Advertise 1000 ipv4,ipv6 prefixes from ATE port1 observe received prefixes at DUT. -* Validate total number of entries of AFT for IPv4 and IPv6. -* Each prefix must have 1 next hop pointing to ATE port1. - ## Procedure * Gnmi set with REPLACE option to push the configuration DUT. * ATE configuration must be pushed. -verifications +## verifications * BGP routes advertised from ATE:port1 must have 1 nexthop. * IS-IS routes advertised from ATE:port1 must have one next hop. * Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. * Verify afts prefix entries using the following paths with in a period of 30s. -/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix +/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix, /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix ## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, IS-IS route. -From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by IS-IS, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -51,9 +49,11 @@ Verifications ## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, BGP route. -From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by BGP, after 1 minute stop the traffic. +## Procedure -Verifications +From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. + +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -62,9 +62,11 @@ Verifications ## AFT-2.1.3: AFT Prefix Counters ipv4 octets forwarded, IS-IS route. -From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by IS-IS, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -74,9 +76,11 @@ Verifications ## AFT-2.1.4: AFT Prefix Counters ipv4 octets forwarded, BGP route. -From ATE:port2 send 10000 pps to one of the ipv4 prefix advertise by BGP, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -85,9 +89,11 @@ Verifications ## AFT-2.1.5: AFT Prefix Counters ipv6 packets forwarded, IS-IS route. -From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by IS-IS, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -96,9 +102,11 @@ Verifications ## AFT-2.1.6: AFT Prefix Counters ipv6 packets forwarded, BGP route. -From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by BGP, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -109,9 +117,11 @@ Verifications ## AFT-2.1.7: AFT Prefix Counters ipv6 octets forwarded, IS-IS route. -From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by IS-IS, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -121,9 +131,11 @@ Verifications ## AFT-2.1.8: AFT Prefix Counters ipv6 octets forwarded, BGP route. -From ATE:port2 send 10000 pps to one of the ipv6 prefix advertise by BGP, after 1 minute stop the traffic. +## Procedure + +From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -132,22 +144,26 @@ Verifications ## AFT-2.1.9: AFT Prefix Counters withdraw the ipv4 prefix. +## Procedure + * From ATE:port1 withdraw some prefixes of BGP and IS-IS. -* Send 10000 pps from ATE:port2 to DUT:port2 for one of the withdrawn ipv4 prefix. +* Send 10000 packets from ATE:port2 to DUT:port2 for one of the withdrawn ipv4 prefix. * The traffic must blackhole. -Verifications +## Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. * Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.10: AFT Prefix Counters add the ipv4 prefix back. +## Procedure + * From ATE:port1 add the prefixes of BGP and IS-IS back. -* Send 10000 pps from ATE:port2 to DUT:port2 for one of the added ipv4 prefix. +* Send 10000 packets from ATE:port2 to DUT:port2 for one of the added ipv4 prefix. * The traffic must flow end to end. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -156,22 +172,26 @@ Verifications ## AFT-2.1.11: AFT Prefix Counters withdraw the ipv6 prefix. +## Procedure + * From ATE:port1 withdraw some prefixes of BGP and IS-IS. -* Send 10000 pps from ATE:port2 to DUT:port2 for one of the withdrawn ipv6 prefix. +* Send 10000 packets from ATE:port2 to DUT:port2 for one of the withdrawn ipv6 prefix. * The traffic must blackhole. -Verifications +## Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. * Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.12: AFT Prefix Counters add the ipv6 prefix back. +## Procedure + * From ATE:port1 add the prefixes of BGP and IS-IS back. -* Send 10000 pps from ATE:port2 to DUT:port2 for one of the added ipv6 prefix. +* Send 10000 packets from ATE:port2 to DUT:port2 for one of the added ipv6 prefix. * The traffic must flow end to end. -Verifications +## Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. From b609c03b90a1ca1f1fd788a74ab9350840452bb8 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 22 Oct 2024 05:18:29 +0000 Subject: [PATCH 12/33] added comments --- .../aft/aft_base/otg_tests/aft_base/README.md | 37 +++++++---- .../otg_tests/aft_prefixcounters/README.md | 66 +++++++++---------- 2 files changed, 57 insertions(+), 46 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index b0db963b172..bac38d285fc 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -40,59 +40,70 @@ Establish RSVP Sessions between ATE:port3 and SUT:port3. * IS-IS 2000 routes advertised from ATE:port3 must have one next hop. * BGP 100 routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. * Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. -* Verify afts prefix entries using the path mentioned in the path section. +* Verify afts prefix advertised by BGP,ISIS. +* Verify its next hop group, number of next hop and its interfaces. +* Verify the number of next hop is same as expected. +* Verify all other leaves mentioned in the path section. ## AFT-1.1.1: AFT Base Link Down scenario 1 -## Procedure +### Procedure Bring down the link between ATE:port2 and DUT:port2 -## Verifications +### Verifications * BGP routes advertised from ATE:port1,port2 must have 1 nexthop. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. -* Verify afts prefix entries using the path mentioned in the paths section of this test plan. +* Verify afts prefix advertised by BGP,ISIS. +* Verify its next hop group, number of next hop and its interfaces. +* Verify the number of next hop is same as expected. ## AFT-1.1.2: AFT Base Link Down scenario 2 -## Procedure +### Procedure Bring down both links between ATE:port1,port2 and DUT:port1,port2 -## Verifications +### Verifications * BGP routes advertised from ATE:port1,port2 must be removed from RIB,FIB of the DUT, query results nil. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. -* Verify afts prefix entries using the path mentioned in the paths section of this test plan. +* Verify afts prefix advertised by BGP,ISIS. +* Verify its next hop group, number of next hop and its interfaces. +* Verify the number of next hop is same as expected. ## AFT-1.1.3: AFT Base Link Up scenario 1 -## Procedure +### Procedure Bring up link between ATE:port1 and DUT:port1 -## Verifications +### Verifications * BGP routes advertised from ATE:port1,port2 must have one next hop. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. -* Verify afts prefix entries using the path mentioned in the paths section of this test plan. +* Verify afts prefix advertised by BGP,ISIS. +* Verify its next hop group, number of next hop and its interfaces. +* Verify the number of next hop is same as expected. ## AFT-1.1.4: AFT Base Link Up scenario 2 -## Procedure +### Procedure Bring up both link between ATE:port1,port2 and DUT:port1,port2 -## Verifications +### Verifications * BGP routes advertised from ATE:port1,port2 must have 2 next hops. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. -* Verify afts prefix entries using the path mentioned in the paths section of this test plan. +* Verify afts prefix advertised by BGP,ISIS. +* Verify its next hop group, number of next hop and its interfaces. +* Verify the number of next hop is same as expected. ## OpenConfig Path and RPC Coverage diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index c01095c5676..9ca656206af 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -36,134 +36,134 @@ Establish eBGP sessions between ATE:port1 and DUT:port1. ## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, IS-IS route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, BGP route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.3: AFT Prefix Counters ipv4 octets forwarded, IS-IS route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.4: AFT Prefix Counters ipv4 octets forwarded, BGP route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.5: AFT Prefix Counters ipv6 packets forwarded, IS-IS route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv6 forwarded packet counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.6: AFT Prefix Counters ipv6 packets forwarded, BGP route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv6 forwarded packet counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.7: AFT Prefix Counters ipv6 octets forwarded, IS-IS route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.8: AFT Prefix Counters ipv6 octets forwarded, BGP route. -## Procedure +### Procedure From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. * The difference between final and initial value must match with the counter value in ATE. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.9: AFT Prefix Counters withdraw the ipv4 prefix. -## Procedure +### Procedure * From ATE:port1 withdraw some prefixes of BGP and IS-IS. * Send 10000 packets from ATE:port2 to DUT:port2 for one of the withdrawn ipv4 prefix. * The traffic must blackhole. -## Verifications +### Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. -* Verify afts counter entries using the path mentioned in the paths section of this test plan. +* Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.10: AFT Prefix Counters add the ipv4 prefix back. -## Procedure +### Procedure * From ATE:port1 add the prefixes of BGP and IS-IS back. * Send 10000 packets from ATE:port2 to DUT:port2 for one of the added ipv4 prefix. * The traffic must flow end to end. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. @@ -172,26 +172,26 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. ## AFT-2.1.11: AFT Prefix Counters withdraw the ipv6 prefix. -## Procedure +### Procedure * From ATE:port1 withdraw some prefixes of BGP and IS-IS. * Send 10000 packets from ATE:port2 to DUT:port2 for one of the withdrawn ipv6 prefix. * The traffic must blackhole. -## Verifications +### Verifications * The counters must not send incremental value as the prefix is not present in RIB/FIB. * Verify afts counter entries using the path mentioned in the paths section of this test plan. ## AFT-2.1.12: AFT Prefix Counters add the ipv6 prefix back. -## Procedure +### Procedure * From ATE:port1 add the prefixes of BGP and IS-IS back. * Send 10000 packets from ATE:port2 to DUT:port2 for one of the added ipv6 prefix. * The traffic must flow end to end. -## Verifications +### Verifications * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. From e476a0aaab953adbf58b34bdb0feb6bdc5b1251f Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:03:46 +0000 Subject: [PATCH 13/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index bac38d285fc..3871b2a5c43 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -113,6 +113,10 @@ The below yaml defines the OC paths intended to be covered by this test. OC pat paths: ## Config Paths ## + /network-instances/network-instance/protocols/protocol/bgp/global: + /network-instances/network-instance/protocols/protocol/isis: + /network-instances/network-instance/mpls/global/config: + ## State Paths ## /network-instances/network-instance/afts/ethernet/mac-entry/state/next-hop-group: From 8447245466e2c6a588a74fefd11d913a3d2e103f Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:08:33 +0000 Subject: [PATCH 14/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 3871b2a5c43..4b86d9c6857 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -113,9 +113,9 @@ The below yaml defines the OC paths intended to be covered by this test. OC pat paths: ## Config Paths ## - /network-instances/network-instance/protocols/protocol/bgp/global: - /network-instances/network-instance/protocols/protocol/isis: - /network-instances/network-instance/mpls/global/config: + /network-instances/network-instance/protocols/protocol/bgp/global: + /network-instances/network-instance/protocols/protocol/isis: + /network-instances/network-instance/mpls/global/config: ## State Paths ## From 559646413435b1c40fa53585a19996367a87b5d2 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:10:52 +0000 Subject: [PATCH 15/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 4b86d9c6857..ce5fe386d58 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -113,9 +113,9 @@ The below yaml defines the OC paths intended to be covered by this test. OC pat paths: ## Config Paths ## - /network-instances/network-instance/protocols/protocol/bgp/global: + /network-instances/network-instance/protocols/protocol/bgp: /network-instances/network-instance/protocols/protocol/isis: - /network-instances/network-instance/mpls/global/config: + ## State Paths ## From e32c54db16716851a74ccade9dd10b2d3ab4231d Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:13:47 +0000 Subject: [PATCH 16/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index ce5fe386d58..b6fbe48cf8a 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -113,8 +113,8 @@ The below yaml defines the OC paths intended to be covered by this test. OC pat paths: ## Config Paths ## - /network-instances/network-instance/protocols/protocol/bgp: - /network-instances/network-instance/protocols/protocol/isis: + /network-instances/network-instance/protocols/protocol/bgp/global/config/as: + /network-instances/network-instance/protocols/protocol/isis/global/config/instances: ## State Paths ## From a7311d023f6a8534e4b7a20473743c48feff36c6 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:16:34 +0000 Subject: [PATCH 17/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index b6fbe48cf8a..3eda825bf85 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -114,7 +114,7 @@ paths: ## Config Paths ## /network-instances/network-instance/protocols/protocol/bgp/global/config/as: - /network-instances/network-instance/protocols/protocol/isis/global/config/instances: + /network-instances/network-instance/protocols/protocol/isis/global/config/instance-id: ## State Paths ## From d124fc343fd494e86dd2fc10f25fd9bfafe9bfc4 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 29 Oct 2024 08:19:00 +0000 Subject: [PATCH 18/33] adding the comments --- feature/aft/aft_base/otg_tests/aft_base/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 3eda825bf85..447e254ed28 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -114,7 +114,7 @@ paths: ## Config Paths ## /network-instances/network-instance/protocols/protocol/bgp/global/config/as: - /network-instances/network-instance/protocols/protocol/isis/global/config/instance-id: + /network-instances/network-instance/protocols/protocol/isis/global/config/instance-id: ## State Paths ## From 8e00c94a675704e73ac33ac9727e115b280a1275 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Wed, 30 Oct 2024 06:21:53 +0000 Subject: [PATCH 19/33] latest updates --- .../aft/aft_base/otg_tests/aft_base/README.md | 35 +++--- .../otg_tests/aft_prefixcounters/README.md | 105 +++++------------- 2 files changed, 48 insertions(+), 92 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 447e254ed28..92e38c522e1 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -4,6 +4,10 @@ IPv4/IPv6 unicast routes next hop group and next hop. +## Testbed + +* atedut_12.binding + ## Test Setup ### Generate DUT and ATE Configuration @@ -29,33 +33,36 @@ Establish RSVP Sessions between ATE:port3 and SUT:port3. * Configure explicit null and ipv6 tunneling. * BGP advertised routes from ATE:port3 must be pointing to the 2 tunnels in the DUT. -## Procedure +### Procedure -* Gnmi set with REPLACE option to push the configuration DUT. +* Use gNMI.Set with REPLACE option to push the Test Setup configuration to the DUT. * ATE configuration must be pushed. -## Verifications +### Verifications -* BGP 2000 routes advertised from ATE:port1,port2 must have 2 nexthops. -* IS-IS 2000 routes advertised from ATE:port3 must have one next hop. -* BGP 100 routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* BGP route advertised from ATE:port1,port2 must have 2 nexthops. +* IS-IS route advertised from ATE:port3 must have one next hop. +* BGP route advertised from ATE:port3 must have 2 next hops pointing to tunnels. * Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. +* For verifying prefix, nexthop groups, next hop use the leaves mentioed in the path section. * Verify afts prefix advertised by BGP,ISIS. * Verify its next hop group, number of next hop and its interfaces. * Verify the number of next hop is same as expected. * Verify all other leaves mentioned in the path section. + ## AFT-1.1.1: AFT Base Link Down scenario 1 ### Procedure -Bring down the link between ATE:port2 and DUT:port2 +Bring down the link between ATE:port2 and DUT:port2 using OTG api. ### Verifications * BGP routes advertised from ATE:port1,port2 must have 1 nexthop. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* For verifying prefix, nexthop groups, next hop use the leaves mentioed in the path section. * Verify afts prefix advertised by BGP,ISIS. * Verify its next hop group, number of next hop and its interfaces. * Verify the number of next hop is same as expected. @@ -64,13 +71,14 @@ Bring down the link between ATE:port2 and DUT:port2 ### Procedure -Bring down both links between ATE:port1,port2 and DUT:port1,port2 +Bring down both links between ATE:port1,port2 and DUT:port1,port2 using OTG api. ### Verifications * BGP routes advertised from ATE:port1,port2 must be removed from RIB,FIB of the DUT, query results nil. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* For verifying prefix, nexthop groups, next hop use the leaves mentioed in the path section. * Verify afts prefix advertised by BGP,ISIS. * Verify its next hop group, number of next hop and its interfaces. * Verify the number of next hop is same as expected. @@ -79,7 +87,7 @@ Bring down both links between ATE:port1,port2 and DUT:port1,port2 ### Procedure -Bring up link between ATE:port1 and DUT:port1 +Bring up link between ATE:port1 and DUT:port1 using OTG api. ### Verifications @@ -87,6 +95,7 @@ Bring up link between ATE:port1 and DUT:port1 * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. * Verify afts prefix advertised by BGP,ISIS. +* For verifying prefix, nexthop groups, next hop use the leaves mentioed in the path section. * Verify its next hop group, number of next hop and its interfaces. * Verify the number of next hop is same as expected. @@ -94,13 +103,14 @@ Bring up link between ATE:port1 and DUT:port1 ### Procedure -Bring up both link between ATE:port1,port2 and DUT:port1,port2 +Bring up both link between ATE:port1,port2 and DUT:port1,port2 using OTG api. ### Verifications * BGP routes advertised from ATE:port1,port2 must have 2 next hops. * IS-IS routes advertised from ATE:port3 must have one next hop. * BGP routes advertised from ATE:port3 must have 2 next hops pointing to tunnels. +* For verifying prefix, nexthop groups, next hop use the leaves mentioed in the path section. * Verify afts prefix advertised by BGP,ISIS. * Verify its next hop group, number of next hop and its interfaces. * Verify the number of next hop is same as expected. @@ -113,10 +123,7 @@ The below yaml defines the OC paths intended to be covered by this test. OC pat paths: ## Config Paths ## - /network-instances/network-instance/protocols/protocol/bgp/global/config/as: - /network-instances/network-instance/protocols/protocol/isis/global/config/instance-id: - - + ## State Paths ## /network-instances/network-instance/afts/ethernet/mac-entry/state/next-hop-group: diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index 9ca656206af..924d611edda 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -4,6 +4,10 @@ IPv4/IPv6 prefix counters +## Testbed + +* atedut_12.binding + ## Test Setup ### Generate DUT and ATE Configuration @@ -17,50 +21,24 @@ Establish eBGP sessions between ATE:port1 and DUT:port1. * Configure eBGP over the interface ip. * Advertise 1000 ipv4,ipv6 prefixes from ATE port1 observe received prefixes at DUT. -## Procedure +### Procedure * Gnmi set with REPLACE option to push the configuration DUT. * ATE configuration must be pushed. -## verifications +### verifications * BGP routes advertised from ATE:port1 must have 1 nexthop. * IS-IS routes advertised from ATE:port1 must have one next hop. * Use gnmi Subscribe with ON_CHANGE option to /network-instances/network-instance/afts. -* Verify afts prefix entries using the following paths with in a period of 30s. +* Verify afts prefix entries using the following paths with in a timeout of 30s. /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/prefix, /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix -## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, IS-IS route. - -### Procedure - -From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. - -### Verifications - -* Before the traffic measure the initial counter value. -* After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. - -## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, BGP route. - -### Procedure - -From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. - -### Verifications - -* Before the traffic measure the initial counter value. -* After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. - -## AFT-2.1.3: AFT Prefix Counters ipv4 octets forwarded, IS-IS route. +## AFT-2.1.1: AFT Prefix Counters ipv4 packets forwarded, ipv4 octets forwarded IS-IS route. ### Procedure @@ -70,11 +48,10 @@ From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by IS-IS. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. +* The difference between final and initial value must match with the counter value in ATE then the test is marked as passed. +* Verify afts ipv4 forwarded packets and ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. - -## AFT-2.1.4: AFT Prefix Counters ipv4 octets forwarded, BGP route. +## AFT-2.1.2: AFT Prefix Counters ipv4 packets forwarded, ipv4 octets forwarded BGP route. ### Procedure @@ -84,38 +61,11 @@ From ATE:port2 send 10000 packets to one of the ipv4 prefix advertise by BGP. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. - -## AFT-2.1.5: AFT Prefix Counters ipv6 packets forwarded, IS-IS route. - -### Procedure - -From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. +* The difference between final and initial value must match with the counter value in ATE, then the test is marked as passed. +* Verify afts ipv4 forwarded packets and ipv4 forwarded octets counter entries using the path mentioned in the paths section of this test plan. -### Verifications - -* Before the traffic measure the initial counter value. -* After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv6 forwarded packet counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.6: AFT Prefix Counters ipv6 packets forwarded, BGP route. - -### Procedure - -From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. - -### Verifications - -* Before the traffic measure the initial counter value. -* After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv6 forwarded packet counter entries using the path mentioned in the paths section of this test plan. - - - -## AFT-2.1.7: AFT Prefix Counters ipv6 octets forwarded, IS-IS route. +## AFT-2.1.3: AFT Prefix Counters ipv6 packets forwarded, ipv6 octets forwarded IS-IS route. ### Procedure @@ -125,11 +75,10 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by IS-IS. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. - +* The difference between final and initial value must match with the counter value in ATE, then the test is marked as passed. +* Verify afts ipv6 forwarded packets and ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.8: AFT Prefix Counters ipv6 octets forwarded, BGP route. +## AFT-2.1.4: AFT Prefix Counters ipv6 packets forwarded, ipv6 octets forwarded BGP route. ### Procedure @@ -139,10 +88,10 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. -* Verify afts ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. +* The difference between final and initial value must match with the counter value in ATE, then the test is marked as passed. +* Verify afts ipv6 forwarded packets and ipv6 forwarded octets counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.9: AFT Prefix Counters withdraw the ipv4 prefix. +## AFT-2.1.5: AFT Prefix Counters withdraw the ipv4 prefix. ### Procedure @@ -152,10 +101,10 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. ### Verifications -* The counters must not send incremental value as the prefix is not present in RIB/FIB. +* The counters must not send incremental value as the prefix is not present in RIB/FIB. The test fails if the counter shows incremental values. * Verify afts ipv4 forwarded packet counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.10: AFT Prefix Counters add the ipv4 prefix back. +## AFT-2.1.6: AFT Prefix Counters add the ipv4 prefix back. ### Procedure @@ -167,10 +116,10 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. +* The difference between final and initial value must match with the counter value in ATE, then the test is marked as passed. * Verify afts counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.11: AFT Prefix Counters withdraw the ipv6 prefix. +## AFT-2.1.7: AFT Prefix Counters withdraw the ipv6 prefix. ### Procedure @@ -180,10 +129,10 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. ### Verifications -* The counters must not send incremental value as the prefix is not present in RIB/FIB. +* The counters must not send incremental value as the prefix is not present in RIB/FIB. The test fails if the counter shows incremental values. * Verify afts counter entries using the path mentioned in the paths section of this test plan. -## AFT-2.1.12: AFT Prefix Counters add the ipv6 prefix back. +## AFT-2.1.8: AFT Prefix Counters add the ipv6 prefix back. ### Procedure @@ -195,7 +144,7 @@ From ATE:port2 send 10000 packets to one of the ipv6 prefix advertise by BGP. * Before the traffic measure the initial counter value. * After the traffic measure the final counter value. -* The difference between final and initial value must match with the counter value in ATE. +* The difference between final and initial value must match with the counter value in ATE, then the test is marked as passed. * Verify afts counter entries using the path mentioned in the paths section of this test plan. ## OpenConfig Path and RPC Coverage From f6f8591a7e59590debd490ef0779ff620cd94f6c Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 04:37:26 +0000 Subject: [PATCH 20/33] adding test bed topology --- feature/aft/aft_base/otg_tests/aft_base/README.md | 2 +- feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 92e38c522e1..0d7efe9c0c0 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -6,7 +6,7 @@ IPv4/IPv6 unicast routes next hop group and next hop. ## Testbed -* atedut_12.binding +* atedut_2.testbed ## Test Setup diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index 924d611edda..ef5401d16dd 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -6,7 +6,7 @@ IPv4/IPv6 prefix counters ## Testbed -* atedut_12.binding +* atedut_4.testbed ## Test Setup From 8ef4a5863869cbf4c087e170c8b8aef4a2529af9 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 04:41:42 +0000 Subject: [PATCH 21/33] adding test bed topology --- feature/aft/aft_base/otg_tests/aft_base/README.md | 2 +- feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 0d7efe9c0c0..4d1a4ebabe2 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -6,7 +6,7 @@ IPv4/IPv6 unicast routes next hop group and next hop. ## Testbed -* atedut_2.testbed +* atedut_4.testbed ## Test Setup diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md index ef5401d16dd..9fce154e4a1 100644 --- a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md +++ b/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md @@ -6,7 +6,7 @@ IPv4/IPv6 prefix counters ## Testbed -* atedut_4.testbed +* atedut_2.testbed ## Test Setup From e8c73df2c7bbbd4f171b76106546ff81d2c38661 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 11:39:48 +0000 Subject: [PATCH 22/33] adding scale test multi protocol dual stack for aft summary --- .../otg_tests/scale_aft_summary/README.md | 39 ++ .../scale_aft_summary/metadata.textproto | 54 ++ .../otg_tests/scale_aft_summary/route_test.go | 566 ++++++++++++++++++ 3 files changed, 659 insertions(+) create mode 100644 feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md create mode 100644 feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto create mode 100644 feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md b/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md new file mode 100644 index 00000000000..823dd831063 --- /dev/null +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md @@ -0,0 +1,39 @@ +# RT-4.10: AFTs Route Summary + +## Summary + +IPv4/IPv6 scale unicast AFTs route summary for ISIS and BGP protocol + +## Procedure + +* Configure DUT:port1 for an IS-IS session with ATE:port1 +* Establish eBGP sessions between ATE:port1 and DUT:port1 and another between ATE:port2 and DUT:port2 +* Configure Route-policy under BGP peer-group address-family +* Advertise scale prefixes from ATE port-1, port-2 observe received prefixes at DUT for IPv4 and IPv6 +* Validate total number of entries of AFT for IPv4 and IPv6 + +## OpenConfig Path and RPC Coverage + +The below yaml defines the OC paths intended to be covered by this test. OC paths used for test setup are not listed here. + +```yaml +paths: + ## Config Paths ## + + ## State Paths ## + /network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/counters/aft-entries: + /network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/counters/aft-entries: + +rpcs: + gnmi: + gNMI.Subscribe: +``` + +## Control Protocol Coverage + +BGP +IS-IS + +## Minimum DUT Platform Requirement + +vRX diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto new file mode 100644 index 00000000000..bc7d09af4d9 --- /dev/null +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto @@ -0,0 +1,54 @@ +# proto-file: third_party/openconfig/featureprofiles/proto/metadata.proto +# proto-message: Metadata + +uuid: "89da0b4c-9a16-44f8-9757-d98ccdd6aaf4" +plan_id: "RT-4.10" +description: "AFTs Route Summary" +testbed: TESTBED_DUT_ATE_2LINKS +platform_exceptions: { + platform: { + vendor: NOKIA + } + deviations: { + isis_multi_topology_unsupported: true + isis_interface_level1_disable_required: true + missing_isis_interface_afi_safi_enable: true + isis_restart_suppress_unsupported: true + explicit_port_speed: true + explicit_interface_in_default_vrf: true + missing_value_for_defaults: true + interface_enabled: true + } +} +platform_exceptions: { + platform: { + vendor: CISCO + } + deviations: { + ipv4_missing_enabled: true + isis_interface_level1_disable_required: true + isis_single_topology_required: true + } +} +platform_exceptions: { + platform: { + vendor: JUNIPER + } + deviations: { + isis_level_enabled: true + } +} +platform_exceptions: { + platform: { + vendor: ARISTA + } + deviations: { + omit_l2_mtu: true + missing_value_for_defaults: true + interface_enabled: true + default_network_instance: "default" + isis_instance_enabled_required: true + isis_interface_afi_unsupported: true + route_policy_under_afi_unsupported: true + } +} diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go new file mode 100644 index 00000000000..0caf0845445 --- /dev/null +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go @@ -0,0 +1,566 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package route_test + +import ( + "testing" + "time" + + "github.com/golang/ygot/ygot/ygot" + "github.com/open_traffic_generator/gosnappi/gosnappi" + "github.com/openconfig/featureprofiles/internal/attrs/attrs" + "github.com/openconfig/featureprofiles/internal/deviations/deviations" + "github.com/openconfig/featureprofiles/internal/fptest/fptest" + "github.com/openconfig/featureprofiles/internal/isissession/isissession" + "github.com/openconfig/ondatra/gnmi/gnmi" + "github.com/openconfig/ondatra/gnmi/oc/oc" + "github.com/openconfig/ondatra/ondatra" + "github.com/openconfig/ygnmi/ygnmi/ygnmi" +) + +func TestMain(m *testing.M) { + fptest.RunTests(m) +} + +// The testbed consists of ate:port1 -> dut:port1 and +// dut:port2 -> ate:port2. The first pair is called the "source" +// pair, and the second the "destination" pair. +// +// * Source: ate:port1 -> dut:port1 subnet 192.0.2.0/30 2001:db8::192:0:2:0/126 +// * Destination: dut:port2 -> ate:port2 subnet 192.0.2.4/30 2001:db8::192:0:2:4/126 +// +// Note that the first (.0, .3) and last (.4, .7) IPv4 addresses are +// reserved from the subnet for broadcast, so a /30 leaves exactly 2 +// usable addresses. This does not apply to IPv6 which allows /127 +// for point to point links, but we use /126 so the numbering is +// consistent with IPv4. + +const ( + advertisedRoutesv4Prefix = 32 + advertisedRoutesv6Prefix = 128 + dutAS = 65501 + ate1AS = 64501 + ate2AS = 200 + plenIPv4 = 30 + plenIPv6 = 126 + rplType = oc.RoutingPolicy_PolicyResultType_ACCEPT_ROUTE + rplName = "ALLOW" + peerGrpNamev4 = "BGP-PEER-GROUP-V4" + peerGrpNamev6 = "BGP-PEER-GROUP-V6" + peerGrpNamev4P1 = "BGP-PEER-GROUP-V4-P1" + peerGrpNamev6P1 = "BGP-PEER-GROUP-V6-P1" + peerGrpNamev4P2 = "BGP-PEER-GROUP-V4-P2" + peerGrpNamev6P2 = "BGP-PEER-GROUP-V6-P2" + isisRoute = "199.0.0.1" + bgpRoute = "203.0.113.0" + isisRoutev6 = "2001:db8::203:0:113:1" + bgpRoutev6 = "2001:DB8:2::1" + RouteCount = uint32(1000) +) + +var ( + dutP1 = attrs.Attributes{ + Desc: "DUT to ATE source", + IPv4: "192.0.2.1", + IPv6: "2001:db8::1", + IPv4Len: plenIPv4, + IPv6Len: plenIPv6, + } + ateP1 = attrs.Attributes{ + Name: "ateP1", + MAC: "02:00:01:01:01:01", + IPv4: "192.0.2.2", + IPv6: "2001:db8::2", + IPv4Len: plenIPv4, + IPv6Len: plenIPv6, + } + + dutP2 = attrs.Attributes{ + Desc: "DUT to ATE destination", + IPv4: "192.0.2.5", + IPv6: "2001:db8::5", + IPv4Len: plenIPv4, + IPv6Len: plenIPv6, + } + + ateP2 = attrs.Attributes{ + Name: "ateP2", + MAC: "02:00:02:01:01:01", + IPv4: "192.0.2.6", + IPv6: "2001:db8::6", + IPv4Len: plenIPv4, + IPv6Len: plenIPv6, + } +) + +// configureDUT configures all the interfaces and BGP on the DUT. +func configureDUT(t *testing.T, dut *ondatra.DUTDevice) { + dc := gnmi.OC() + p1 := dut.Port(t, "port1").Name() + i1 := dutP1.NewOCInterface(p1, dut) + gnmi.Replace(t, dut, dc.Interface(p1).Config(), i1) + + p2 := dut.Port(t, "port2").Name() + i2 := dutP2.NewOCInterface(p2, dut) + gnmi.Replace(t, dut, dc.Interface(p2).Config(), i2) + + // Configure Network instance type on DUT + t.Log("Configure/update Network Instance") + fptest.ConfigureDefaultNetworkInstance(t, dut) + + if deviations.ExplicitPortSpeed(dut) { + fptest.SetPortSpeed(t, dut.Port(t, "port1")) + fptest.SetPortSpeed(t, dut.Port(t, "port2")) + } + if deviations.ExplicitInterfaceInDefaultVRF(dut) { + fptest.AssignToNetworkInstance(t, dut, p1, deviations.DefaultNetworkInstance(dut), 0) + fptest.AssignToNetworkInstance(t, dut, p2, deviations.DefaultNetworkInstance(dut), 0) + } + configureRoutePolicy(t, dut, rplName, rplType) + + dutConfPath := dc.NetworkInstance(deviations.DefaultNetworkInstance(dut)).Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP, "BGP") + dutConf := createBGPNeighborP1(dutAS, ate1AS, dut) + gnmi.Replace(t, dut, dutConfPath.Config(), dutConf) + dutConf = createBGPNeighborP2(dutAS, ate2AS, dut) + gnmi.Update(t, dut, dutConfPath.Config(), dutConf) + ts := isissession.MustNew(t).WithISIS() + ts.ConfigISIS(func(isis *oc.NetworkInstance_Protocol_Isis) { + global := isis.GetOrCreateGlobal() + global.HelloPadding = oc.Isis_HelloPaddingType_DISABLE + + if deviations.ISISSingleTopologyRequired(ts.DUT) { + afv6 := global.GetOrCreateAf(oc.IsisTypes_AFI_TYPE_IPV6, oc.IsisTypes_SAFI_TYPE_UNICAST) + afv6.GetOrCreateMultiTopology().SetAfiName(oc.IsisTypes_AFI_TYPE_IPV4) + afv6.GetOrCreateMultiTopology().SetSafiName(oc.IsisTypes_SAFI_TYPE_UNICAST) + } + }) + ts.ATEIntf1.Isis().Advanced().SetEnableHelloPadding(false) + ts.PushAndStart(t) +} + +type BGPNeighbor struct { + as uint32 + neighborip string + isV4 bool +} + +func createBGPNeighborP1(localAs, peerAs uint32, dut *ondatra.DUTDevice) *oc.NetworkInstance_Protocol { + nbrs := []*BGPNeighbor{ + {as: peerAs, neighborip: ateP1.IPv4, isV4: true}, + {as: peerAs, neighborip: ateP1.IPv6, isV4: false}, + } + + d := &oc.Root{} + ni1 := d.GetOrCreateNetworkInstance(deviations.DefaultNetworkInstance(dut)) + niProto := ni1.GetOrCreateProtocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP, "BGP") + bgp := niProto.GetOrCreateBgp() + + global := bgp.GetOrCreateGlobal() + global.As = ygot.Uint32(localAs) + global.RouterId = ygot.String(dutP1.IPv4) + + global.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST).Enabled = ygot.Bool(true) + global.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST).Enabled = ygot.Bool(true) + + // Note: we have to define the peer group even if we aren't setting any policy because it's + // invalid OC for the neighbor to be part of a peer group that doesn't exist. + pgv4 := bgp.GetOrCreatePeerGroup(peerGrpNamev4P1) + pgv4.PeerAs = ygot.Uint32(peerAs) + pgv4.PeerGroupName = ygot.String(peerGrpNamev4P1) + pgv6 := bgp.GetOrCreatePeerGroup(peerGrpNamev6P1) + pgv6.PeerAs = ygot.Uint32(peerAs) + pgv6.PeerGroupName = ygot.String(peerGrpNamev6P1) + + for _, nbr := range nbrs { + if nbr.isV4 { + nv4 := bgp.GetOrCreateNeighbor(nbr.neighborip) + nv4.PeerAs = ygot.Uint32(nbr.as) + nv4.Enabled = ygot.Bool(true) + nv4.PeerGroup = ygot.String(peerGrpNamev4P1) + afisafi := nv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST) + afisafi.Enabled = ygot.Bool(true) + nv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST).Enabled = ygot.Bool(false) + if deviations.RoutePolicyUnderAFIUnsupported(dut) { + rpl := pgv4.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } else { + pgafv4 := pgv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST) + pgafv4.Enabled = ygot.Bool(true) + rpl := pgafv4.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } + } else { + nv6 := bgp.GetOrCreateNeighbor(nbr.neighborip) + nv6.PeerAs = ygot.Uint32(nbr.as) + nv6.Enabled = ygot.Bool(true) + nv6.PeerGroup = ygot.String(peerGrpNamev6P1) + afisafi6 := nv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST) + afisafi6.Enabled = ygot.Bool(true) + nv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST).Enabled = ygot.Bool(false) + if deviations.RoutePolicyUnderAFIUnsupported(dut) { + rpl := pgv6.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } else { + pgafv6 := pgv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST) + pgafv6.Enabled = ygot.Bool(true) + rpl := pgafv6.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + + } + } + } + return niProto +} + +func createBGPNeighborP2(localAs, peerAs uint32, dut *ondatra.DUTDevice) *oc.NetworkInstance_Protocol { + nbrs := []*BGPNeighbor{ + {as: peerAs, neighborip: ateP2.IPv4, isV4: true}, + {as: peerAs, neighborip: ateP2.IPv6, isV4: false}, + } + + d := &oc.Root{} + ni1 := d.GetOrCreateNetworkInstance(deviations.DefaultNetworkInstance(dut)) + niProto := ni1.GetOrCreateProtocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP, "BGP") + bgp := niProto.GetOrCreateBgp() + + global := bgp.GetOrCreateGlobal() + global.As = ygot.Uint32(localAs) + global.RouterId = ygot.String(dutP1.IPv4) + + global.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST).Enabled = ygot.Bool(true) + global.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST).Enabled = ygot.Bool(true) + + // Note: we have to define the peer group even if we aren't setting any policy because it's + // invalid OC for the neighbor to be part of a peer group that doesn't exist. + pgv4 := bgp.GetOrCreatePeerGroup(peerGrpNamev4P2) + pgv4.PeerAs = ygot.Uint32(peerAs) + pgv4.PeerGroupName = ygot.String(peerGrpNamev4P2) + pgv6 := bgp.GetOrCreatePeerGroup(peerGrpNamev6P2) + pgv6.PeerAs = ygot.Uint32(peerAs) + pgv6.PeerGroupName = ygot.String(peerGrpNamev6P2) + + for _, nbr := range nbrs { + if nbr.isV4 { + nv4 := bgp.GetOrCreateNeighbor(nbr.neighborip) + nv4.PeerAs = ygot.Uint32(nbr.as) + nv4.Enabled = ygot.Bool(true) + nv4.PeerGroup = ygot.String(peerGrpNamev4P2) + afisafi := nv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST) + afisafi.Enabled = ygot.Bool(true) + nv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST).Enabled = ygot.Bool(false) + if deviations.RoutePolicyUnderAFIUnsupported(dut) { + rpl := pgv4.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } else { + pgafv4 := pgv4.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST) + pgafv4.Enabled = ygot.Bool(true) + rpl := pgafv4.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } + } else { + nv6 := bgp.GetOrCreateNeighbor(nbr.neighborip) + nv6.PeerAs = ygot.Uint32(nbr.as) + nv6.Enabled = ygot.Bool(true) + nv6.PeerGroup = ygot.String(peerGrpNamev6P2) + afisafi6 := nv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST) + afisafi6.Enabled = ygot.Bool(true) + nv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST).Enabled = ygot.Bool(false) + if deviations.RoutePolicyUnderAFIUnsupported(dut) { + rpl := pgv6.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + } else { + pgafv6 := pgv6.GetOrCreateAfiSafi(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST) + pgafv6.Enabled = ygot.Bool(true) + rpl := pgafv6.GetOrCreateApplyPolicy() + rpl.ImportPolicy = []string{rplName} + rpl.ExportPolicy = []string{rplName} + + } + } + } + return niProto +} + +func configureRoutePolicy(t *testing.T, dut *ondatra.DUTDevice, name string, pr oc.E_RoutingPolicy_PolicyResultType) { + d := &oc.Root{} + rp := d.GetOrCreateRoutingPolicy() + pd := rp.GetOrCreatePolicyDefinition(name) + st, err := pd.AppendNewStatement("id-1") + if err != nil { + t.Fatal(err) + } + st.GetOrCreateActions().PolicyResult = pr + gnmi.Replace(t, dut, gnmi.OC().RoutingPolicy().Config(), rp) +} + +func waitForBGPSession(t *testing.T, dut *ondatra.DUTDevice, wantEstablished bool) { + statePath := gnmi.OC().NetworkInstance(deviations.DefaultNetworkInstance(dut)).Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP, "BGP").Bgp() + nbrPath := statePath.Neighbor(ateP2.IPv4) + nbrPathv6 := statePath.Neighbor(ateP2.IPv6) + compare := func(val *ygnmi.Value[oc.E_Bgp_Neighbor_SessionState]) bool { + state, ok := val.Val() + if ok { + if wantEstablished { + t.Logf("BGP session state: %s", state.String()) + return state == oc.Bgp_Neighbor_SessionState_ESTABLISHED + } + return state == oc.Bgp_Neighbor_SessionState_IDLE + } + return false + } + + _, ok := gnmi.Watch(t, dut, nbrPath.SessionState().State(), 2*time.Minute, compare).Await(t) + if !ok { + fptest.LogQuery(t, "BGP reported state", nbrPath.State(), gnmi.Get(t, dut, nbrPath.State())) + if wantEstablished { + t.Fatal("No BGP neighbor formed...") + } else { + t.Fatal("BGPv4 session didn't teardown.") + } + } + _, ok = gnmi.Watch(t, dut, nbrPathv6.SessionState().State(), 2*time.Minute, compare).Await(t) + if !ok { + fptest.LogQuery(t, "BGPv6 reported state", nbrPathv6.State(), gnmi.Get(t, dut, nbrPathv6.State())) + if wantEstablished { + t.Fatal("No BGPv6 neighbor formed...") + } else { + t.Fatal("BGPv6 session didn't teardown.") + } + } +} + +func verifyBGPTelemetry(t *testing.T, dut *ondatra.DUTDevice) { + t.Log("Waiting for BGPv4 neighbor to establish...") + waitForBGPSession(t, dut, true) + +} + +func configureATE(t *testing.T) gosnappi.Config { + ate := ondatra.ATE(t, "ate") + ap1 := ate.Port(t, "port1") + ap2 := ate.Port(t, "port2") + config := gosnappi.NewConfig() + // add ports + p1 := config.Ports().Add().SetName(ap1.ID()) + p2 := config.Ports().Add().SetName(ap2.ID()) + // add devices + d1 := config.Devices().Add().SetName("p1.d1") + d2 := config.Devices().Add().SetName("p2.d1") + // Configuration on port1. + d1Eth1 := d1.Ethernets(). + Add(). + SetName("p1.d1.eth1"). + SetMac("00:00:02:02:02:02"). + SetMtu(1500) + d1Eth1. + Connection(). + SetPortName(p1.Name()) + + d1ipv41 := d1Eth1. + Ipv4Addresses(). + Add(). + SetName("p1.d1.eth1.ipv4"). + SetAddress("192.0.2.2"). + SetGateway("192.0.2.1"). + SetPrefix(30) + + d1ipv61 := d1Eth1. + Ipv6Addresses(). + Add(). + SetName("p1.d1.eth1.ipv6"). + SetAddress("2001:db8::2"). + SetGateway("2001:db8::1"). + SetPrefix(126) + + // isis router + d1isis := d1.Isis(). + SetName("p1.d1.isis"). + SetSystemId("650000000001") + d1isis.Basic(). + SetIpv4TeRouterId(d1ipv41.Address()). + SetHostname("ixia-c-port1") + d1isis.Advanced().SetAreaAddresses([]string{"49"}) + d1isisint := d1isis.Interfaces(). + Add(). + SetName("p1.d1.isis.intf"). + SetEthName(d1Eth1.Name()). + SetNetworkType(gosnappi.IsisInterfaceNetworkType.POINT_TO_POINT). + SetLevelType(gosnappi.IsisInterfaceLevelType.LEVEL_2). + SetMetric(10) + d1isisint.TrafficEngineering().Add().PriorityBandwidths() + d1isisint.Advanced().SetAutoAdjustMtu(true).SetAutoAdjustArea(true).SetAutoAdjustSupportedProtocols(true) + + d1IsisRoute1 := d1isis.V4Routes().Add().SetName("p1.d1.isis.rr1") + d1IsisRoute1.Addresses(). + Add(). + SetAddress(isisRoute). + SetPrefix(32).SetCount(RouteCount) + + d1IsisRoute1v6 := d1isis.V6Routes().Add().SetName("p1.d1.isis.rr1.v6") + d1IsisRoute1v6.Addresses(). + Add(). + SetAddress(isisRoutev6). + SetPrefix(126).SetCount(RouteCount) + + configureBGPDev(d1, d1ipv41, d1ipv61, ate1AS) + + // configuration on port2 + d2Eth1 := d2.Ethernets(). + Add(). + SetName("p2.d1.eth1"). + SetMac("00:00:03:03:03:03"). + SetMtu(1500) + d2Eth1. + Connection(). + SetPortName(p2.Name()) + d2ipv41 := d2Eth1.Ipv4Addresses(). + Add(). + SetName("p2.d1.eth1.ipv4"). + SetAddress("192.0.2.6"). + SetGateway("192.0.2.5"). + SetPrefix(30) + + d2ipv61 := d2Eth1. + Ipv6Addresses(). + Add(). + SetName("p2.d1.eth1.ipv6"). + SetAddress("2001:db8::6"). + SetGateway("2001:db8::5"). + SetPrefix(126) + + // isis router + d2isis := d2.Isis(). + SetName("p2.d1.isis"). + SetSystemId("650000000001") + d2isis.Basic(). + SetIpv4TeRouterId(d2ipv41.Address()). + SetHostname("ixia-c-port2") + d2isis.Advanced().SetAreaAddresses([]string{"49"}) + d2isisint := d2isis.Interfaces(). + Add(). + SetName("p2.d1.isis.intf"). + SetEthName(d2Eth1.Name()). + SetNetworkType(gosnappi.IsisInterfaceNetworkType.POINT_TO_POINT). + SetLevelType(gosnappi.IsisInterfaceLevelType.LEVEL_2). + SetMetric(10) + d2isisint.TrafficEngineering().Add().PriorityBandwidths() + d2isisint.Advanced().SetAutoAdjustMtu(true).SetAutoAdjustArea(true).SetAutoAdjustSupportedProtocols(true) + + d2IsisRoute1 := d2isis.V4Routes().Add().SetName("p2.d1.isis.rr1") + d2IsisRoute1.Addresses(). + Add(). + SetAddress(isisRoute). + SetPrefix(32). + SetCount(RouteCount) + + d2IsisRoute1V6 := d2isis.V6Routes().Add().SetName("p2.d1.isis.rr1.v6") + d2IsisRoute1V6.Addresses(). + Add(). + SetAddress(isisRoutev6). + SetPrefix(126). + SetCount(RouteCount) + + configureBGPDev(d2, d2ipv41, d2ipv61, ate2AS) + + return config +} + +// configureBGPDev configures the BGP on the OTG dev +func configureBGPDev(dev gosnappi.Device, Ipv4 gosnappi.DeviceIpv4, Ipv6 gosnappi.DeviceIpv6, as int) { + + Bgp := dev.Bgp().SetRouterId(Ipv4.Address()) + Bgp4Peer := Bgp.Ipv4Interfaces().Add().SetIpv4Name(Ipv4.Name()).Peers().Add().SetName(dev.Name() + ".BGP4.peer") + Bgp4Peer.SetPeerAddress(Ipv4.Gateway()).SetAsNumber(uint32(as)).SetAsType(gosnappi.BgpV4PeerAsType.EBGP) + Bgp6Peer := Bgp.Ipv6Interfaces().Add().SetIpv6Name(Ipv6.Name()).Peers().Add().SetName(dev.Name() + ".BGP6.peer") + Bgp6Peer.SetPeerAddress(Ipv6.Gateway()).SetAsNumber(uint32(as)).SetAsType(gosnappi.BgpV6PeerAsType.EBGP) + + configureBGPv4Routes(Bgp4Peer, Ipv4.Address(), Bgp4Peer.Name()+"v4route", bgpRoute, RouteCount) + configureBGPv6Routes(Bgp6Peer, Ipv6.Address(), Bgp6Peer.Name()+"v6route", bgpRoutev6, RouteCount) + +} + +func configureBGPv4Routes(peer gosnappi.BgpV4Peer, ipv4 string, name string, prefix string, count uint32) { + routes := peer.V4Routes().Add().SetName(name) + routes.SetNextHopIpv4Address(ipv4). + SetNextHopAddressType(gosnappi.BgpV4RouteRangeNextHopAddressType.IPV4). + SetNextHopMode(gosnappi.BgpV4RouteRangeNextHopMode.MANUAL) + routes.Addresses().Add(). + SetAddress(prefix). + SetPrefix(advertisedRoutesv4Prefix). + SetCount(count) +} + +func configureBGPv6Routes(peer gosnappi.BgpV6Peer, ipv6 string, name string, prefix string, count uint32) { + routes := peer.V6Routes().Add().SetName(name) + routes.SetNextHopIpv6Address(ipv6). + SetNextHopAddressType(gosnappi.BgpV6RouteRangeNextHopAddressType.IPV6). + SetNextHopMode(gosnappi.BgpV6RouteRangeNextHopMode.MANUAL) + routes.Addresses().Add(). + SetAddress(prefix). + SetPrefix(advertisedRoutesv6Prefix). + SetCount(count) +} +func VerifyDUT(t *testing.T, dut *ondatra.DUTDevice) { + + dni := deviations.DefaultNetworkInstance(dut) + if got, ok := gnmi.Await(t, dut, gnmi.OC().NetworkInstance(dni).Afts().AftSummaries().Ipv4Unicast().Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP).Counters().AftEntries().State(), 1*time.Minute, uint64(RouteCount)).Val(); !ok { + t.Errorf("ipv4 BGP entries, got: %d, want: %d", got, RouteCount) + } else { + t.Logf("Test case Passed: ipv4 BGP entries, got: %d, want: %d", got, RouteCount) + } + if got, ok := gnmi.Await(t, dut, gnmi.OC().NetworkInstance(dni).Afts().AftSummaries().Ipv6Unicast().Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_BGP).Counters().AftEntries().State(), 1*time.Minute, uint64(RouteCount)).Val(); !ok { + t.Errorf("ipv6 BGP entries, got: %d, want: %d", got, RouteCount) + } else { + t.Logf("Test case Passed:ipv6 BGP entries, got: %d, want: %d", got, RouteCount) + } + + if got, ok := gnmi.Await(t, dut, gnmi.OC().NetworkInstance(dni).Afts().AftSummaries().Ipv4Unicast().Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_ISIS).Counters().AftEntries().State(), 1*time.Minute, uint64(RouteCount)).Val(); !ok { + t.Errorf("ipv4 isis entries, got: %d, want: %d", got, RouteCount) + } else { + t.Logf("Test case Passed: ipv4 isis entries, got: %d, want: %d", got, RouteCount) + + } + + if got, ok := gnmi.Await(t, dut, gnmi.OC().NetworkInstance(dni).Afts().AftSummaries().Ipv6Unicast().Protocol(oc.PolicyTypes_INSTALL_PROTOCOL_TYPE_ISIS).Counters().AftEntries().State(), 1*time.Minute, uint64(RouteCount)).Val(); !ok { + t.Errorf("ipv6 isis entries, got: %d, want: %d", got, RouteCount) + } else { + t.Logf("Test case Passed: ipv6 isis entries, got: %d, want: %d", got, RouteCount) + } +} + +func TestBGP(t *testing.T) { + + dut := ondatra.DUT(t, "dut") + ate := ondatra.ATE(t, "ate") + // DUT Configuration + t.Log("Start DUT interface Config") + configureDUT(t, dut) + // ATE Configuration. + t.Log("Start ATE Config") + config := configureATE(t) + ate.OTG().PushConfig(t, config) + time.Sleep(time.Second * 20) + ate.OTG().StartProtocols(t) + time.Sleep(time.Second * 20) + verifyBGPTelemetry(t, dut) + VerifyDUT(t, dut) +} From dce47eacba7335e18610e0357c0d5c2acc705213 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 11:44:06 +0000 Subject: [PATCH 23/33] corrections --- feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md b/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md index 823dd831063..e7e416b40e7 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md @@ -1,4 +1,4 @@ -# RT-4.10: AFTs Route Summary +# RT-4.11: AFTs Route Summary ## Summary From 493902d027e7a3bdf8f1cfcc0781b74955b89776 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 11:44:55 +0000 Subject: [PATCH 24/33] add --- testregistry.textproto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/testregistry.textproto b/testregistry.textproto index a7e8b1617ab..a19074ccbd8 100644 --- a/testregistry.textproto +++ b/testregistry.textproto @@ -793,6 +793,13 @@ test: { readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/aft/aft_summary/otg_tests/route_summary_counters_test/README.md" exec: " " } +test: { + id: "RT-4.11" + description: " Scale AFTs Route Summary" + readme: "https://github.com/openconfig/featureprofiles/blob/main/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md" + exec: " " +} + test: { id: "RT-5.1" description: "Singleton Interface" From 5f886d452d13d3cc84f09db34cf93bed18590506 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 11:47:27 +0000 Subject: [PATCH 25/33] add --- .../aft_summary/otg_tests/scale_aft_summary/metadata.textproto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto index bc7d09af4d9..8d4f82e298a 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto @@ -2,7 +2,7 @@ # proto-message: Metadata uuid: "89da0b4c-9a16-44f8-9757-d98ccdd6aaf4" -plan_id: "RT-4.10" +plan_id: "RT-4.11" description: "AFTs Route Summary" testbed: TESTBED_DUT_ATE_2LINKS platform_exceptions: { From c59fa148cda7f80a8898662df2e0844bbaa6c6b1 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 11:54:13 +0000 Subject: [PATCH 26/33] fix --- .../aft_summary/otg_tests/scale_aft_summary/metadata.textproto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto index 8d4f82e298a..d61d4590b2b 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto @@ -1,4 +1,4 @@ -# proto-file: third_party/openconfig/featureprofiles/proto/metadata.proto +# proto-file: github.com/openconfig/featureprofiles/proto/metadata.proto # proto-message: Metadata uuid: "89da0b4c-9a16-44f8-9757-d98ccdd6aaf4" From 630d308f64fef6c182d5459b5a9d1604f5c8a221 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 12:15:36 +0000 Subject: [PATCH 27/33] fix --- .../aft/aft_summary/otg_tests/scale_aft_summary/route_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go index 0caf0845445..1be56978697 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go @@ -18,7 +18,6 @@ import ( "testing" "time" - "github.com/golang/ygot/ygot/ygot" "github.com/open_traffic_generator/gosnappi/gosnappi" "github.com/openconfig/featureprofiles/internal/attrs/attrs" "github.com/openconfig/featureprofiles/internal/deviations/deviations" @@ -28,6 +27,7 @@ import ( "github.com/openconfig/ondatra/gnmi/oc/oc" "github.com/openconfig/ondatra/ondatra" "github.com/openconfig/ygnmi/ygnmi/ygnmi" + "github.com/openconfig/ygot/ygot" ) func TestMain(m *testing.M) { From d0fcf93c5e7b46e548b98b8efbd8c9adc19f0760 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 12:59:12 +0000 Subject: [PATCH 28/33] new --- .../aft/aft_summary/otg_tests/scale_aft_summary/route_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go index 1be56978697..b10ba443120 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go @@ -18,7 +18,7 @@ import ( "testing" "time" - "github.com/open_traffic_generator/gosnappi/gosnappi" + "github.com/open-traffic-generator/snappi/gosnappi" "github.com/openconfig/featureprofiles/internal/attrs/attrs" "github.com/openconfig/featureprofiles/internal/deviations/deviations" "github.com/openconfig/featureprofiles/internal/fptest/fptest" From a7c89aecb0522848b0ddb227324ceac9b9c350d0 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 13:10:21 +0000 Subject: [PATCH 29/33] new fix --- .../aft/aft_summary/otg_tests/scale_aft_summary/route_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go index b10ba443120..fac2e096959 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go @@ -19,7 +19,7 @@ import ( "time" "github.com/open-traffic-generator/snappi/gosnappi" - "github.com/openconfig/featureprofiles/internal/attrs/attrs" + "github.com/openconfig/featureprofiles/internal/attrs" "github.com/openconfig/featureprofiles/internal/deviations/deviations" "github.com/openconfig/featureprofiles/internal/fptest/fptest" "github.com/openconfig/featureprofiles/internal/isissession/isissession" From 87128728f1014a5a8efd1800163927f95b1fd4f2 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Tue, 12 Nov 2024 14:45:31 +0000 Subject: [PATCH 30/33] new fix --- .../otg_tests/scale_aft_summary/route_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go index fac2e096959..e283663711e 100644 --- a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go +++ b/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go @@ -20,13 +20,13 @@ import ( "github.com/open-traffic-generator/snappi/gosnappi" "github.com/openconfig/featureprofiles/internal/attrs" - "github.com/openconfig/featureprofiles/internal/deviations/deviations" - "github.com/openconfig/featureprofiles/internal/fptest/fptest" - "github.com/openconfig/featureprofiles/internal/isissession/isissession" - "github.com/openconfig/ondatra/gnmi/gnmi" - "github.com/openconfig/ondatra/gnmi/oc/oc" - "github.com/openconfig/ondatra/ondatra" - "github.com/openconfig/ygnmi/ygnmi/ygnmi" + "github.com/openconfig/featureprofiles/internal/deviations" + "github.com/openconfig/featureprofiles/internal/fptest" + "github.com/openconfig/featureprofiles/internal/isissession" + "github.com/openconfig/ondatra" + "github.com/openconfig/ondatra/gnmi" + "github.com/openconfig/ondatra/gnmi/oc" + "github.com/openconfig/ygnmi/ygnmi" "github.com/openconfig/ygot/ygot" ) From 44ad581d15f0071439c686b0c009a917b1f2b215 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Fri, 15 Nov 2024 04:43:19 +0000 Subject: [PATCH 31/33] changes --- feature/aft/aft_base/otg_tests/aft_base/README.md | 2 -- .../{aft_prefixcounters => aft_prefix_counters}/README.md | 0 2 files changed, 2 deletions(-) rename feature/aft/aft_base/otg_tests/{aft_prefixcounters => aft_prefix_counters}/README.md (100%) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/aft_base/README.md index 4d1a4ebabe2..b2e0d5a2792 100644 --- a/feature/aft/aft_base/otg_tests/aft_base/README.md +++ b/feature/aft/aft_base/otg_tests/aft_base/README.md @@ -134,9 +134,7 @@ paths: /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-protocol: /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/prefix: /network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/origin-protocol: - /network-instances/network-instance/afts/aft-summaries/ipv4-unicast/protocols/protocol/state/counters/aft-entries: /network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/origin-protocol: - /network-instances/network-instance/afts/aft-summaries/ipv6-unicast/protocols/protocol/state/counters/aft-entries: /network-instances/network-instance/afts/next-hop-groups/next-hop-group/id: /network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/index: /network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state/index: diff --git a/feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md b/feature/aft/aft_base/otg_tests/aft_prefix_counters/README.md similarity index 100% rename from feature/aft/aft_base/otg_tests/aft_prefixcounters/README.md rename to feature/aft/aft_base/otg_tests/aft_prefix_counters/README.md From 4bba7f5f881d133d840071ac8360e7f72bea695a Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Fri, 15 Nov 2024 17:26:16 +0000 Subject: [PATCH 32/33] correction folder --- feature/aft/aft_base/otg_tests/{aft_base => afts_base}/README.md | 0 .../{aft_prefix_counters => afts_prefix_counters}/README.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename feature/aft/aft_base/otg_tests/{aft_base => afts_base}/README.md (100%) rename feature/aft/aft_base/otg_tests/{aft_prefix_counters => afts_prefix_counters}/README.md (100%) diff --git a/feature/aft/aft_base/otg_tests/aft_base/README.md b/feature/aft/aft_base/otg_tests/afts_base/README.md similarity index 100% rename from feature/aft/aft_base/otg_tests/aft_base/README.md rename to feature/aft/aft_base/otg_tests/afts_base/README.md diff --git a/feature/aft/aft_base/otg_tests/aft_prefix_counters/README.md b/feature/aft/aft_base/otg_tests/afts_prefix_counters/README.md similarity index 100% rename from feature/aft/aft_base/otg_tests/aft_prefix_counters/README.md rename to feature/aft/aft_base/otg_tests/afts_prefix_counters/README.md From 79b29ff6a6fca66a65be33658768de92d557f943 Mon Sep 17 00:00:00 2001 From: Sudhin Jacob Date: Fri, 15 Nov 2024 17:26:51 +0000 Subject: [PATCH 33/33] folder name change --- .../otg_tests/route_summary_counters_test/README.md | 0 .../otg_tests/route_summary_counters_test/metadata.textproto | 0 .../route_summary_counters_test/route_summary_counters_test.go | 0 .../otg_tests/scale_aft_summary/README.md | 0 .../otg_tests/scale_aft_summary/metadata.textproto | 0 .../otg_tests/scale_aft_summary/route_test.go | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename feature/aft/{aft_summary => afts_summary}/otg_tests/route_summary_counters_test/README.md (100%) rename feature/aft/{aft_summary => afts_summary}/otg_tests/route_summary_counters_test/metadata.textproto (100%) rename feature/aft/{aft_summary => afts_summary}/otg_tests/route_summary_counters_test/route_summary_counters_test.go (100%) rename feature/aft/{aft_summary => afts_summary}/otg_tests/scale_aft_summary/README.md (100%) rename feature/aft/{aft_summary => afts_summary}/otg_tests/scale_aft_summary/metadata.textproto (100%) rename feature/aft/{aft_summary => afts_summary}/otg_tests/scale_aft_summary/route_test.go (100%) diff --git a/feature/aft/aft_summary/otg_tests/route_summary_counters_test/README.md b/feature/aft/afts_summary/otg_tests/route_summary_counters_test/README.md similarity index 100% rename from feature/aft/aft_summary/otg_tests/route_summary_counters_test/README.md rename to feature/aft/afts_summary/otg_tests/route_summary_counters_test/README.md diff --git a/feature/aft/aft_summary/otg_tests/route_summary_counters_test/metadata.textproto b/feature/aft/afts_summary/otg_tests/route_summary_counters_test/metadata.textproto similarity index 100% rename from feature/aft/aft_summary/otg_tests/route_summary_counters_test/metadata.textproto rename to feature/aft/afts_summary/otg_tests/route_summary_counters_test/metadata.textproto diff --git a/feature/aft/aft_summary/otg_tests/route_summary_counters_test/route_summary_counters_test.go b/feature/aft/afts_summary/otg_tests/route_summary_counters_test/route_summary_counters_test.go similarity index 100% rename from feature/aft/aft_summary/otg_tests/route_summary_counters_test/route_summary_counters_test.go rename to feature/aft/afts_summary/otg_tests/route_summary_counters_test/route_summary_counters_test.go diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md b/feature/aft/afts_summary/otg_tests/scale_aft_summary/README.md similarity index 100% rename from feature/aft/aft_summary/otg_tests/scale_aft_summary/README.md rename to feature/aft/afts_summary/otg_tests/scale_aft_summary/README.md diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto b/feature/aft/afts_summary/otg_tests/scale_aft_summary/metadata.textproto similarity index 100% rename from feature/aft/aft_summary/otg_tests/scale_aft_summary/metadata.textproto rename to feature/aft/afts_summary/otg_tests/scale_aft_summary/metadata.textproto diff --git a/feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go b/feature/aft/afts_summary/otg_tests/scale_aft_summary/route_test.go similarity index 100% rename from feature/aft/aft_summary/otg_tests/scale_aft_summary/route_test.go rename to feature/aft/afts_summary/otg_tests/scale_aft_summary/route_test.go