Skip to content

Commit

Permalink
Adding AFT Base cases (#3506)
Browse files Browse the repository at this point in the history
Add AFT-1.1
Add AFT-2.1
Update RT-4.11
  • Loading branch information
sudhinj authored Nov 15, 2024
1 parent 5bdab86 commit 5e2b2f2
Show file tree
Hide file tree
Showing 9 changed files with 1,033 additions and 0 deletions.
177 changes: 177 additions & 0 deletions feature/aft/aft_base/otg_tests/afts_base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
# AFT-1.1: AFTs Base

## Summary

IPv4/IPv6 unicast routes next hop group and next hop.

## Testbed

* atedut_4.testbed

## 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.
* IS-IS must be point to point.
* Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port3 to DUT:port3.


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.

### Procedure

* Use gNMI.Set with REPLACE option to push the Test Setup configuration to the DUT.
* ATE configuration must be pushed.

### Verifications

* 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 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.

## AFT-1.1.2: AFT Base Link Down scenario 2

### Procedure

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.

## AFT-1.1.3: AFT Base Link Up scenario 1

### Procedure

Bring up link between ATE:port1 and DUT:port1 using OTG api.

### 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 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.

## AFT-1.1.4: AFT Base Link Up scenario 2

### Procedure

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.

## 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/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/ipv6-unicast/protocols/protocol/state/origin-protocol:
/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
178 changes: 178 additions & 0 deletions feature/aft/aft_base/otg_tests/afts_prefix_counters/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# AFT-2.1: AFTs Prefix Counters

## Summary

IPv4/IPv6 prefix counters

## Testbed

* atedut_2.testbed

## 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.
* IS-IS must be point to point.
* Send 1000 ipv4 and 1000 ipv6 IS-IS prefixes from ATE:port1 to DUT:port1.

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

* 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 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, ipv4 octets 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 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.2: AFT Prefix Counters ipv4 packets forwarded, ipv4 octets 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, 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.3: AFT Prefix Counters ipv6 packets forwarded, ipv6 octets forwarded IS-IS route.

### Procedure

From ATE:port2 send 10000 packets to one of the ipv6 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, 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.4: AFT Prefix Counters ipv6 packets forwarded, ipv6 octets 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, 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.5: AFT Prefix Counters withdraw the ipv4 prefix.

### 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

* 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.6: AFT Prefix Counters add the ipv4 prefix back.

### 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

* 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, 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.7: AFT Prefix Counters withdraw the ipv6 prefix.

### 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

* 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.8: AFT Prefix Counters add the ipv6 prefix back.

### 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

* 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, 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

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
39 changes: 39 additions & 0 deletions feature/aft/afts_summary/otg_tests/scale_aft_summary/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# RT-4.11: 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
Loading

0 comments on commit 5e2b2f2

Please sign in to comment.