Skip to content

Commit

Permalink
RT-5.5 TestPlan: Interface hold-time up, down test specification (#1885)
Browse files Browse the repository at this point in the history
* Create feature.textproto

* Create README.md

* Create metadata.textproto

* Update README.md
  • Loading branch information
rszarecki authored Sep 19, 2023
1 parent 3bdc791 commit 48e9ed8
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 0 deletions.
75 changes: 75 additions & 0 deletions feature/interface/holdtime/feature.textproto
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Copyright 2022 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
#
# https://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.

id {
name: "interface_holdtime"
version: 1
}

# Interface basic config.
config_path {
path: "/interfaces/interface/config/name"
}
telemetry_path {
path: "/interfaces/interface/state/name"
}
config_path {
path: "/interfaces/interface/config/id"
}
telemetry_path {
path: "/interfaces/interface/state/id"
}
config_path {
path: "/interfaces/interface/config/type"
}
telemetry_path {
path: "/interfaces/interface/state/type"
}
config_path {
path: "/interfaces/interface/config/enabled"
}
telemetry_path {
path: "/interfaces/interface/state/enabled"
}
telemetry_path {
path: "/interfaces/interface/state/oper-status"
}
telemetry_path {
path: "/interfaces/interface/state/admin-status"
}

# Interface hold timers
config_path {
path: "/interfaces/interface/hold-time/config/down"
}
telemetry_path {
path: "/interfaces/interface/hold-time/state/down"
}
config_path {
path: "/interfaces/interface/hold-time/config/up"
}
telemetry_path {
path: "/interfaces/interface/hold-time/state/up"
}

# Ethernet config
config_path {
path: "/interfaces/interface/ethernet/config/port-speed"
}
telemetry_path {
path: "/interfaces/interface/ethernet/state/port-speed"
}
telemetry_path {
path: "/interfaces/interface/ethernet/state/negotiated-port-speed"
}
70 changes: 70 additions & 0 deletions feature/interface/holdtime/otg_tests/holdtime_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# RT-5.5: Interface hold-time

## Summary

Verify configurability of interface hold-time down of 300ms and hold-time up of 5 sec.\
Verify oper-state behaviour

## Procedure
* Configure DUT port-1 to OTG port-1
* Configure static LAG on DUT and OTG with port-1 as member
* Configure hold-time down 300ms and hold-time up 5000ms
### TC1 - configuration verification:
* Get hold-time state from device and check if it matches what was send in configuration. (some implementation may round-up/round-down values)
### TC2 - long down:
* Read timestamp of last oper-status change form DUT port-1
* Start sending Ethernet Remote Fault (RF) from OTG port-1 (or other mean which disable laser on OTG); read and store timestamp form OTG of this operation (OTG_STATE_CHANGE_TS).
* wait 1000 ms
* Read timestamp of last oper-status change form DUT port-1 (DUT_LAST_CHANGE_TS)
* Verify that DUT LAG:
* oper-status is DOWN
* oper-status last change time has changed
* DUT_LAST_CHANGE_TS = OTG_STATE_CHANGE_TS + 300ms +/- tolerance; Use tolerance of 200ms.
* Stop sending Ethernet Remote Fault (RF) from OTG port-1
### TC3 - short up:
* Start sending Ethernet Remote Fault (RF) from OTG port-1 (or other mean which disable laser on OTG)
* Read timestamp of last oper-status change
* Stop sending Ethernet Remote Fault (RF) from OTG port-1 for 4 seconds and then start send RF again. (or other mean which disable laser on OTG). Read and store timestamp form OTG of last operation (OTG_STATE_CHANGE_TS).
* Read timestamp of last oper-status change form DUT port-1 (DUT_LAST_CHANGE_TS)
* Verify that DUT LAG:
* oper-status is DOWN
* oper-status last change time has NOT changed
* Stop sending Ethernet Remote Fault (RF) from OTG port-1
### TC4 - long up:
* Start sending Ethernet Remote Fault (RF) from OTG port-1 (or other mean which disable laser on OTG)
* Read timestamp of last oper-status change
* Stop sending Ethernet Remote Fault (RF) from OTG port-1 (or other mean which disable laser on OTG). Read and store timestamp form OTG of last operation (OTG_STATE_CHANGE_TS).
* wait 6 seconds
* Read timestamp of last oper-status change form DUT port-1 (DUT_LAST_CHANGE_TS)
* Verify that DUT LAG:
* oper-status is UP
* oper-status last change time has changed
* DUT_LAST_CHANGE_TS = OTG_STATE_CHANGE_TS + 5000ms +/- tolerance; Use tolerance of 200ms.

### TC5 - short down:
* Read timestamp of last oper-status change
* Start sending Ethernet Remote Fault (RF) from OTG port-1 for **200ms**
* Verify that DUT LAG:
* oper-status is UP
* oper-status last change time has NOT changed
* Stop sending Ethernet Remote Fault (RF) from OTG port-1

## Config Parameter Coverage

* /interfaces/interface/hold-time/config/up
* /interfaces/interface/hold-time/config/down

## Telemetry Parameter Coverage

* /interfaces/interface/hold-time/config/up
* /interfaces/interface/hold-time/config/down
* /interfaces/interface/state/oper-status
* /interfaces/interface/state/last-change

## Protocol/RPC Parameter Coverage

None

## Minimum DUT Platform Requirement

FFF
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# proto-file: github.com/openconfig/featureprofiles/proto/metadata.proto
# proto-message: Metadata

plan_id: "RT-5.5"
description: "Interface hold-times"
testbed: TESTBED_DUT_ATE_2LINKS

0 comments on commit 48e9ed8

Please sign in to comment.