Skip to content

Commit

Permalink
Merge branch 'refs/heads/main' into cisco_logical_channels
Browse files Browse the repository at this point in the history
# Conflicts:
#	internal/deviations/deviations.go
#	proto/metadata.proto
#	proto/metadata_go_proto/metadata.pb.go
  • Loading branch information
karthikeya-remilla committed Nov 18, 2024
2 parents e9374b7 + 61ba135 commit a9fb2b1
Show file tree
Hide file tree
Showing 37 changed files with 2,800 additions and 1,144 deletions.
87 changes: 68 additions & 19 deletions doc/test-requirements-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,89 @@ assignees: ''

# Instructions for this template

Below is the required template for writing test requirements. Good examples of test
requirements include:
Below is the required template for writing test requirements. Good examples of
test requirements include:

* [TE-3.7: Base Hierarchical NHG Update](/feature/gribi/otg_tests/base_hierarchical_nhg_update/README.md)
* [gNMI-1.13: Telemetry: Optics Power and Bias Current](https://github.com/openconfig/featureprofiles/blob/main/feature/platform/tests/optics_power_and_bias_current_test/README.md)
* [RT-5.1: Singleton Interface](https://github.com/openconfig/featureprofiles/blob/main/feature/interface/singleton/otg_tests/singleton_test/README.md)
* [TE-18.1 gRIBI MPLS in UDP Encapsulation and
Decapsulation](https://github.com/openconfig/featureprofiles/blob/main/feature/gribi/otg_tests/mpls_in_udp/README.md)
* [TE-3.7: Base Hierarchical NHG
Update](/feature/gribi/otg_tests/base_hierarchical_nhg_update/README.md)
* [gNMI-1.13: Telemetry: Optics Power and Bias
Current](https://github.com/openconfig/featureprofiles/blob/main/feature/platform/tests/optics_power_and_bias_current_test/README.md)

# TestID-x.y: Short name of test here

## Summary

Write a few sentences or paragraphs describing the purpose and scope of the test.
Write a few sentences or paragraphs describing the purpose and scope of the
test.

## Testbed type

* Specify the .testbed topology file from the [topologies](https://github.com/openconfig/featureprofiles/tree/main/topologies) folder to be used with this test
* Specify the .testbed topology file from the
[topologies](https://github.com/openconfig/featureprofiles/tree/main/topologies)
folder to be used with this test

## Procedure

* Test environment setup
* Description of procedure to configure ATE and DUT with pre-requisites making it possible to cover the intended paths and RPC's.
### Test environment setup

* Description of procedure to configure ATE and DUT with pre-requisites making
it possible to cover the intended paths and RPCs.

### TestID-x.y.1 - Name of subtest 1

The following steps are typically present in each subtest.

* Step 1 - Generate DUT configuration

Replace this JSON formatted content with the "Canonical OC" that is expected to
be generated by the subtest. This configuration should be in JSON format.

```json
{
"openconfig-qos": {
"interfaces": [
{
"config": {
"interface-id": "PortChannel1.100"
},
"input": {
"classifiers": [
{
"classifier": "dest_A",
"config": {
"name": "dest_A",
"type": "IPV4"
}
}
],
"scheduler-policy": {
"config": {
"name": "limit_group_A_1Gb"
}
}
},
"interface": "PortChannel1.100"
},
]
}
}
```

* Step 2 - Push configuration to DUT using gnmi.Set with REPLACE option
* Step 3 - Send Traffic
* Step 4 - Validation with pass/fail criteria

* TestID-x.y.z - Name of subtest
* Step 1
* Step 2
* Validation and pass/fail criteria
### TestID-x.y.2 - Name of subtest 2

* TestID-x.y.z - Name of subtest
* Step 1
* Step 2
* Validation and pass/fail criteria
Repeat the format of the first subtest for each additional subtest defined.

## OpenConfig Path and RPC Coverage

This example yaml defines the OC paths intended to be covered by this test. OC paths used for test environment setup are not required to be listed here.
This yaml stanza defines the OC paths intended to be covered by this test. OC
paths used for test environment setup are not required to be listed here. This
content is parsed by automation to derive the test coverage

```yaml
paths:
Expand All @@ -64,6 +112,7 @@ rpcs:
## Required DUT platform
* Specify the minimum DUT-type:
* MFF - A modular form factor device containing LINECARDs, FABRIC and redundant CONTROLLER_CARD components
* MFF - A modular form factor device containing LINECARDs, FABRIC and
redundant CONTROLLER_CARD components
* FFF - fixed form factor
* vRX - virtual router device
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
Loading

0 comments on commit a9fb2b1

Please sign in to comment.