[V5,1/2] test_plans/telemetry:add cases to check laser power in dpdk

Message ID 20220928225253.20539-1-zhiminx.huang@intel.com (mailing list archive)
State Accepted
Headers
Series [V5,1/2] test_plans/telemetry:add cases to check laser power in dpdk |

Commit Message

Huang, ZhiminX Sept. 28, 2022, 10:52 p.m. UTC
  the customer need to get the laser power values in dpdk.
so a new telemtry command '/ethdev/module_eeprom' to show module
EEPROM for each port in dpdk22.07.
we add new test cases to check laser power value.
1.check the laser power values same as that of 'ethtool -m'.
2.check different/same optical modules have different/same laser power values.

Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
Acked-by: Peng, Yuan <yuan.peng@intel.com>
---
v5:
-add command '/ethdev/module_eeprom' output in testplan

v4:
-optimized code in testcase.

v3:
-detail subject and comments.

 test_plans/telemetry_test_plan.rst | 107 ++++++++++++++++++++++++++++-
 1 file changed, 106 insertions(+), 1 deletion(-)
  

Patch

diff --git a/test_plans/telemetry_test_plan.rst b/test_plans/telemetry_test_plan.rst
index 16568cd3..949280e0 100644
--- a/test_plans/telemetry_test_plan.rst
+++ b/test_plans/telemetry_test_plan.rst
@@ -200,4 +200,109 @@  Test case:  Stats of 4 ports for testpmd and telemetry with different  type nic
 	a.	Ensure # of ports stats being returned == # of ports
 	b.	Ensure packet counts (eg rx_good_packets) is 0
 	c.   Ensure extended NIC stats are shown (depends on PMD used for testing, refer to ixgbe/i40e tests for PMD xstats)
-	d.	Ensure extended NIC stats are 0 (eg: rx_q0_packets == 0)
\ No newline at end of file
+	d.	Ensure extended NIC stats are 0 (eg: rx_q0_packets == 0)
+
+Test case: read nic Laser Power via dpdk
+========================================
+
+1.Bind ports to dpdk::
+
+      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:00.0 18.00.1
+
+2.Launch the dpdk testpmd with teltmetry::
+
+      ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd --telemetry  -- -i
+
+3.Launch the telemetry client::
+
+      python ./usertools/dpdk-telemetry.py
+
+4.Excute command in telemtry client::
+
+      --> /ethdev/module_eeprom,<port number>
+
+      take a example:/ethdev/module_eeprom,0
+      {"/ethdev/module_eeprom": {"Identifier": "0x03 (SFP)", "Extended identifier": "0x04 (GBIC/SFP defined by 2-wire
+       interface ID)", "Connector": "0x07 (LC)", "Transceiver codes": "0x10 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00",
+        "Transceiver type": "10G Ethernet: 10G Base-SR; Ethernet: 1000BASE-SX", "Encoding": "0x06 (64B/66B)", "BR,
+        Nominal": "10300MBd", "Rate identifier": "0x00 (unspecified)", "Length (SMF,km)": "0km", "Length (SMF)":
+        "0m", "Length (50um)": "80m", "Length (62.5um)": "30m", "Length (Copper)": "0m", "Length (OM3)": "300m",
+        "Laser wavelength": "850nm", "Vendor name": "Intel Corp", "Vendor OUI": "00:1b:21", "Vendor PN":
+        "AFBR-703SDZ-IN2", "Vendor rev": "G2.3", "Option values": "0x00 0x3a", "Option": "RX_LOS implemented;
+        TX_FAULT implemented; TX_DISABLE implemented; RATE_SELECT implemented", "BR margin, max": "0%", "BR margin,
+        min": "0%", "Vendor SN": "AD1345A04JR", "Date code": "131108", "Optical diagnostics support": "Yes", "Laser
+        bias current": "5.942 mA", "Laser output power": "0.6703 mW / -1.74 dBm", "Receiver signal average optical
+        power": "0.8002 mW / -0.97 dBm", "Module temperature": "38.50 degrees C / 101.30 degrees F", "Module
+        voltage": "3.3960 V", "Alarm/warning flags implemented": "Yes", "Laser bias current high alarm": "Off",
+        "Laser bias current low alarm": "Off", "Laser bias current high warning": "Off", "Laser bias current low
+        warning": "Off", "Laser output power high alarm": "Off", "Laser output power low alarm": "Off", "Laser output
+        power high warning": "Off", "Laser output power low warning": "Off", "Module temperature high alarm": "Off",
+        "Module temperature low alarm": "Off", "Module temperature high warning": "Off", "Module temperature low
+        warning": "Off", "Module voltage high alarm": "Off", "Module voltage low alarm": "Off", "Module voltage
+        high warning": "Off", "Module voltage low warning": "Off", "Laser rx power high alarm": "Off", "Laser rx
+        power low alarm": "Off", "Laser rx power high warning": "On", "Laser rx power low warning": "Off", "Laser
+        bias current high alarm threshold": "10.500 mA", "Laser bias current low alarm threshold": "2.500 mA",
+        "Laser bias current high warning threshold": "10.500 mA", "Laser bias current low warning threshold": "2
+        .500 mA", "Laser output power high alarm threshold": "2.0000 mW / 3.01 dBm", "Laser output power low alarm
+        threshold": "0.0600 mW / -12.22 dBm", "Laser output power high warning threshold": "0.7900 mW / -1.02 dBm",
+        "Laser output power low warning threshold": "0.0850 mW / -10.71 dBm", "Module temperature high alarm
+        threshold": "85.00 degrees C / 185.00 degrees F", "Module temperature low alarm threshold": "-5.00 degrees
+        C / 23.00 degrees F", "Module temperature high warning threshold": "80.00 degrees C / 176.00 degrees F",
+        "Module temperature low warning threshold": "0.00 degrees C / 32.00 degrees F", "Module voltage high
+        alarm threshold": "3.6000 V", "Module voltage low alarm threshold": "3.1300 V", "Module voltage high
+        warning threshold": "3.4600 V", "Laser rx power high alarm threshold": "2.0000 mW / 3.01 dBm", "Laser rx
+        power low alarm threshold": "0.0000 mW / -inf dBm", "Laser rx power high warning threshold": "0.7900 mW /
+        -1.02 dBm", "Laser rx power low warning threshold": "0.0200 mW / -16.99 dBm"}}
+
+5.check the testpmd and telemetry show info same as 'ethtool -m'::
+
+      ethtool -m ens25f1 | grep 'Laser output power'
+      Laser output power                        : 0.6703 mW / -1.74 dBm
+
+.. note::
+
+   refer to command 'ethtool -m' of ethtool v5.4
+
+Test case: check Laser Power in different optical modules
+=========================================================
+
+1.set port 0 and port 1 with diffent optical modules
+
+2.Launch the dpdk testpmd with teltmetry::
+
+      ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd --telemetry  -- -i
+
+3.Launch the telemetry client::
+
+      python ./usertools/dpdk-telemetry.py
+
+4.Excute command in telemtry client::
+
+      --> /ethdev/module_eeprom,0
+      --> /ethdev/module_eeprom,1
+
+5.check port 0 and port 1 have different Laser Power
+
+Test case: check Laser Power in same optical modules
+====================================================
+
+1.set port 0 and port 1 with same optical modules
+
+2.Launch the dpdk testpmd with teltmetry::
+
+      ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd --telemetry  -- -i
+
+3.Launch the telemetry client::
+
+      python ./usertools/dpdk-telemetry.py
+
+4.Excute command in telemtry client::
+
+      --> /ethdev/module_eeprom,0
+      --> /ethdev/module_eeprom,1
+
+5.check port 0 and port 1 have same Laser Power
+
+.. note::
+
+   the laser power will change slightly with the voltage and temperature