Skip to content

Commit

Permalink
-Resolving conflicts
Browse files Browse the repository at this point in the history
"This code is a Contribution to the OpenConfig Feature Profiles project ("Work") made under the Google Software Grant and Corporate Contributor License Agreement ("CLA") and governed by the Apache License 2.0. No other rights or licenses in or to any of Nokia's intellectual property are granted for any other purpose. This code is provided on an "as is" basis without any warranties of any kind."
  • Loading branch information
snaragund committed Nov 27, 2024
1 parent 9324ca4 commit f41b14a
Show file tree
Hide file tree
Showing 30 changed files with 2,001 additions and 610 deletions.
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

# /feature folders each have owners who are auto requested for review and may merge PR's
/feature/acl/ @alokmtri-g
/feature/aft/ @sudhinj
/feature/aft/ @sudhinj @yunjie-lu
/feature/bgp/ @dplore
/feature/dhcp/ @alokmtri-g
/feature/ethernet/ @ram-mac
Expand Down
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
Loading

0 comments on commit f41b14a

Please sign in to comment.