Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding README files for a new type of optics PMD 400G ZR plus #3680

Merged
merged 15 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# TRANSCEIVER-1: Telemetry: 400ZR_PLUS Chromatic Dispersion(CD) telemetry values streaming

## Summary

Validate 400ZR_PLUS optics module reports accurate CD telemetry values.

Chromatic Dispersion is frequency dependent change in signal phase velocity due
to fiber measured in ps/nm

The test must be repeated for each supported operational-mode or as agreed between the vendor and customer.

## Procedure

* Connect two ZR_PLUS interfaces using a duplex LC fiber jumper such that TX
output power of one is the RX input power of the other module. Connection
between the modules should pass through an optical switch that can be
controlled through automation to simulate a fiber cut.
* To establish a point to point ZR_PLUS link ensure the following:
* Both transceivers states are enabled
* Both transceivers are set to a valid target TX output power
example -3 dBm
* Both transceivers are tuned to a valid centre frequency
example 193.1 THz
* With the ZR_PLUS link is established as explained above, verify that the
following ZR_PLUS transceiver telemetry paths exist and are streamed for both
the ZR_PLUS optics
* /platform/components/component/optical-channel/state/chromatic-dispersion/instant
* /platform/components/component/optical-channel/state/chromatic-dispersion/avg
* /platform/components/component/optical-channel/state/chromatic-dispersion/min
* /platform/components/component/optical-channel/state/chromatic-dispersion/max

* When the modules or the devices are still in a boot stage, they must not
stream any invalid string values like "nil" or "-inf" until valid values
are available for streaming.

* CD streamed values must always be of type Decimal64.
When link interfaces are in down state 0 must be reported as a valid
value.

**Note:** For min, max, and avg values, 10 second sampling is preferred. If
10 seconds is not supported, the sampling interval used must be
communicated.


* Verify that the optics CD is updated after the interface flaps.

* Enable a pair of ZR_PLUS interfaces on the DUT as explained above.
* Verify the ZR_PLUS optics CD telemetry values are in the normal range.
* Disable or shut down the interface on the DUT.
* Verify with interfaces in down state both optics are streaming Decimal64 0
value for CD.
* Re-enable the interfaces on the DUT.
* Verify the ZR_PLUS optics CD telemetry values are updated to the
value in the normal range again.
* Typical CD expected value range is 0 to 2400 ps/nm.

* Verify that the optics CD is updated after a fiber cut.

* Enable a pair of ZR_PLUS interfaces on the DUT as explained above.
* Verify the ZR_PLUS optics CD telemetry values are in the normal
range.
* Simulate a fiber cut using the optical switch that sits in-between the
DUT ports.
* Verify with link in down state due to fiber cut both optics are streaming
Decimal64 0 value for CD.
* Re-enable the optical switch connection to clear the fiber cut fault.
* Verify the ZR_PLUS optics CD telemetry values are updated to the value in the normal
range again.
* Typical CD expected value range is 0 to 2400 ps/nm.

## Config Parameter coverage

* /components/component/transceiver/config/enabled

## Telemetry Parameter coverage

* /platform/components/component/optical-channel/state/chromatic-dispersion/instant
* /platform/components/component/optical-channel/state/chromatic-dispersion/avg
* /platform/components/component/optical-channel/state/chromatic-dispersion/min
* /platform/components/component/optical-channel/state/chromatic-dispersion/max

## OpenConfig Path and RPC Coverage
```yaml
rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# TRANSCEIVER-10: Telemetry: 400ZR_PLUS Optics FEC(Forward Error Correction) Uncorrectable Frames Streaming.

## Summary

Validate 400ZR_PLUS optics module reports uncorrectable FEC frames count.

This observable represents the number of uncorrectable FEC frames,
measured as RS(544,514) equivalent frames, in a short interval.
This is a post-FEC decoder error metric.

## Procedure

* Connect two ZR_PLUS interfaces using a duplex LC fiber jumper such that TX
output power of one is the RX input power of the other module.
* To establish a point to point ZR_PLUS link ensure the following:
* Both transceivers state is enabled
* Both transceivers are set to a valid target TX output power
example -3 dBm
* Both transceivers are tuned to a valid centre frequency
example 193.1 THz
* With the ZR_PLUS link established as explained above, verify that the
following ZR_PLUS transceiver telemetry path exist and is streamed for both
the ZR_PLUS optics.
* /terminal-device/logical-channels/channel/otn/state/fec-uncorrectable-blocks
* Verify that the reported data should be of type yang:counter64.
* When the modules or the devices are still in a boot stage, they must not
stream any invalid string values like "nil" or "-inf".
* Toggle the interface state using /interfaces/interface/config/enabled and
verify relevant FEC uncorrectable frame count is streamed. If there are no
errors a value of 0 should be streamed for no FEC uncorrectable frames.

## OpenConfig Path and RPC Coverage

```yaml
paths:
# Config Parameter coverage
/interfaces/interface/config/enabled:
/components/component/transceiver/config/enabled:
platform_type: ["OPTICAL_CHANNEL"]
# Telemetry Parameter coverage
/terminal-device/logical-channels/channel/otn/state/fec-uncorrectable-blocks:

rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# TRANSCEIVER-3: Telemetry: 400ZR_PLUS Optics firmware version streaming

## Summary

Validate 400ZR_PLUS optics module reports correct firmware version.

## Procedure

* Plug in the ZR_PLUS module in the host port and make sure the transceiver
state is enabled and host is able to detect the module.
* With the module correctly recognized verify it reports correct firmware
version through the following telemetry path
* /platform/components/component/state/firmware-version

* Verify that the modules firmware version is reported correctly after a
optic software reset.

* With ZR_PLUS module plugged in the host and properly recognized
* Verify the ZR_PLUS optics firmware version is correctly reported via the
streaming telemetry path above.
* Reset the optic through software
* Verify the ZR_PLUS optics still reports correct firmware version.

## Config Parameter coverage

* /components/component/oc-transceiver:transceiver/oc-transceiver/config/enabled

## Telemetry Parameter coverage

* /platform/components/component/state/firmware-version

## OpenConfig Path and RPC Coverage
```yaml
rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# TRANSCEIVER-4: Telemetry: 400ZR_PLUS RX input and TX output power telemetry values streaming.

## Summary

Validate 400ZR_PLUS optics modules report accurate RX input and TX output power
telemetry values.

As per CMIS ZR_PLUS modules report two types of RX input power and one TX output
power.
* RX Signal Power
* Reports the actual signal power after filtering out any extra noise.
* Is mapped to /component/optical-channel/ full path shown below
* RX Total Power
* Reports RX Signal Power plus noise without any filtering.
* Is mapped to /component/transceiver/physical-channel full path shown below
* TX Output Power
* This is the total TX output power
* Is mapped to component/optical-channel/ full path shown below

The test must be repeated for each supported operational-mode or as agreed between the vendor and customer.

## TRANSCEIVER-4.1

* Connect two ZR_PLUS interfaces using a duplex LC fiber jumper such that TX
output power of one is the RX input power of the other module. Connection
between the modules should pass through an optical switch that can be
controlled through automation to simulate a fiber cut.
* To establish a point to point ZR_PLUS link ensure the following:
* Both transceivers states are enabled
* Both transceivers are set to a valid target TX output power
example -3 dBm
* Both transceivers are tuned to a valid centre frequency
example 193.1 THz
* With the ZR_PLUS link is established as explained above, verify that the
following ZR_PLUS transceiver telemetry paths exist and are streamed for both
the ZR_PLUS optics
* /components/component/optical-channel/state/input-power/instant
* /components/component/optical-channel/state/input-power/avg
* /components/component/optical-channel/state/input-power/min
* /components/component/optical-channel/state/input-power/max
* /components/component/optical-channel/state/output-power/instant
* /components/component/optical-channel/state/output-power/avg
* /components/component/optical-channel/state/output-power/min
* /components/component/optical-channel/state/output-power/max
* /components/component/transceiver/physical-channel/channel/state/input-power/instant
* /components/component/transceiver/physical-channel/channel/state/input-power/min
* /components/component/transceiver/physical-channel/channel/state/input-power/max
* /components/component/transceiver/physical-channel/channel/state/input-power/avg

## TRANSCEIVER-4.2

* When the modules or the devices are still in a boot stage, they must not
stream any invalid string values like "nil" or "-inf" until valid values
are available for streaming.

* RX Input and TX output power values must always be of type decimal64.
When link interfaces are in down state RX Input power of -40 dbm must be
reported as a valid value.

**Note:** For min, max, and avg values, 10 second sampling is preferred. If
10 seconds is not supported, the sampling interval used must be
communicated.

## TRANSCEIVER-4.3

* Verify that the optics RX input and TX output power is updated after the
interface flaps.

* Enable a pair of ZR_PLUS interfaces on the DUT as explained above.
* Verify the ZR_PLUS optics RX input and TX output power telemetry values are
in the normal range.
* Verify that RX Signal Power is less than the RX Total Power.
* Disable or shut down the interface on the DUT.
* Verify with interfaces in down state both optics are streaming decimal64 0
value for both RX input and TX output power.
* Re-enable the interfaces on the DUT.
* Verify the ZR_PLUS optics RX input and TX output power telemetry values are
updated to the value in the normal range again.
* Typical min/max value range for RX Signal Power -10 to -5 dbm.
* Typical min/max value range for TX Output Power -7 to 0 dbm.

## TRANSCEIVER-4.4

* Verify that the optics RX input and TX output power is updated after a
fiber cut.

* Enable a pair of ZR_PLUS interfaces on the DUT as explained above.
* Verify the ZR_PLUS optics RX input and TX output power telemetry values are
in the normal range.
* Verify that RX Signal Power is less than the RX Total Power.
* Simulate a fiber cut using the optical switch that sits in-between the
DUT ports.
* Verify with link in down state due to fiber cut both optics are streaming
decimal64 0 value for both RX input and TX output power.
* Re-enable the optical switch connection to clear the fiber cut fault.
* Verify the ZR_PLUS optics RX input and TX output power telemetry values are
updated to the value in the normal range again.
* Typical min/max value range for RX Signal Power -10 to -5 dbm.
* Typical min/max value range for TX Output Power -7 to 0 dbm.

## OpenConfig Path and RPC Coverage

```yaml
paths:
# Config Parameter coverage
/interfaces/interface/config/enabled:
# Telemetry Parameter coverage
/components/component/optical-channel/state/input-power/instant:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/input-power/avg:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/input-power/min:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/input-power/max:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/output-power/instant:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/output-power/avg:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/output-power/min:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/optical-channel/state/output-power/max:
platform_type: ["OPTICAL_CHANNEL"]
/components/component/transceiver/physical-channels/channel/state/input-power/instant:
platform_type: [ "TRANSCEIVER" ]
/components/component/transceiver/physical-channels/channel/state/input-power/min:
platform_type: [ "TRANSCEIVER" ]
/components/component/transceiver/physical-channels/channel/state/input-power/max:
platform_type: [ "TRANSCEIVER" ]
/components/component/transceiver/physical-channels/channel/state/input-power/avg:
platform_type: [ "TRANSCEIVER" ]

rpcs:
gnmi:
gNMI.Get:
gNMI.Set:
gNMI.Subscribe:
```
Loading
Loading