* [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature
@ 2022-08-04 16:58 Zhimin Huang
2022-08-04 16:58 ` [dts][PATCH V2 2/2] tests/telemetry:add " Zhimin Huang
2022-08-12 6:22 ` [dts][PATCH V2 1/2] test_plans/telemetry:add " Peng, Yuan
0 siblings, 2 replies; 5+ messages in thread
From: Zhimin Huang @ 2022-08-04 16:58 UTC (permalink / raw)
To: dts; +Cc: Zhimin Huang
add 22.07 new feature, support get laser power value in telemetry client.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
test_plans/telemetry_test_plan.rst | 70 +++++++++++++++++++++++++++++-
1 file changed, 69 insertions(+), 1 deletion(-)
diff --git a/test_plans/telemetry_test_plan.rst b/test_plans/telemetry_test_plan.rst
index 16568cd3..4034a541 100644
--- a/test_plans/telemetry_test_plan.rst
+++ b/test_plans/telemetry_test_plan.rst
@@ -200,4 +200,72 @@ 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 88:00.0 88: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>
+
+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
+
+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
--
2.17.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dts][PATCH V2 2/2] tests/telemetry:add 22.07 new feature
2022-08-04 16:58 [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature Zhimin Huang
@ 2022-08-04 16:58 ` Zhimin Huang
2022-08-08 1:21 ` Jiale, SongX
2022-09-20 11:10 ` Tu, Lijuan
2022-08-12 6:22 ` [dts][PATCH V2 1/2] test_plans/telemetry:add " Peng, Yuan
1 sibling, 2 replies; 5+ messages in thread
From: Zhimin Huang @ 2022-08-04 16:58 UTC (permalink / raw)
To: dts; +Cc: Zhimin Huang
add 22.07 new feature, support get laser power value in telemetry client.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
tests/TestSuite_telemetry.py | 184 ++++++++++++++++++++++++++++++++++-
1 file changed, 183 insertions(+), 1 deletion(-)
diff --git a/tests/TestSuite_telemetry.py b/tests/TestSuite_telemetry.py
index 97c1c748..1dda5502 100644
--- a/tests/TestSuite_telemetry.py
+++ b/tests/TestSuite_telemetry.py
@@ -539,6 +539,127 @@ class TestTelemetry(TestCase):
self.close_telemetry_server()
raise Exception(e)
+ def start_telemetry_server_and_get_module_eeprom(self, port_id):
+ try:
+ self.change_flag = True
+ self.dut.bind_interfaces_linux("vfio-pci")
+ out = self.start_telemetry_server()
+ self.tester.is_interface_up(self.tester_iface0)
+ p = re.search("socket /var/run/dpdk/(.+?)/", out)
+ self.start_dpdk_telemetry(p.group(1))
+ module_eeprom_output = self.dut_telemetry.send_expect(
+ "/ethdev/module_eeprom,{}".format(port_id), "--> "
+ )
+ self.close_telemetry_server()
+ return module_eeprom_output
+ except Exception as e:
+ self.close_telemetry_server()
+ raise Exception(e)
+
+ def start_dpdk_telemetry(self, *args):
+ self.dut_telemetry = self.dut.new_session()
+ dpdk_tool = os.path.join(self.target_dir, "usertools/dpdk-telemetry.py")
+ self.dut_telemetry.send_expect(
+ "python3 " + dpdk_tool + " -f {}".format(args[0]), "--> ", 5
+ )
+
+ def verify_nic_laser_power_via_dpdk(self, laser_powers, *ports):
+ if isinstance(laser_powers, str):
+ laser_powers = [laser_powers]
+ for laser_power, port in zip(laser_powers, ports):
+ laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(port)
+ dpdk_float_values = self.get_float_laser_power_values(laser_power_via_dpdk)
+ eth_float_values = self.get_float_laser_power_values(laser_power)
+ test_flag = [
+ abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
+ ]
+ self.logger.info(
+ "dpdk:{} eth:{}".format(dpdk_float_values, eth_float_values)
+ )
+ self.verify(
+ [flag <= 0.1 for flag in test_flag],
+ "dpdk:{} eth:{},get the incorrect laser power values".format(
+ dpdk_float_values, eth_float_values
+ ),
+ )
+
+ def verify_laser_Power_in_different_optical_modules(self, laser_powers, *ports):
+ laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(ports[-1])
+ dpdk_float_values = self.get_float_laser_power_values(laser_power_via_dpdk)
+ eth_float_values = self.get_float_laser_power_values(laser_powers[0])
+ self.logger.info(
+ "dpdk port 1: {} eth port 0: {}".format(
+ dpdk_float_values, eth_float_values
+ )
+ )
+ test_flag = [
+ abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
+ ]
+ self.verify(
+ [flag > 0.1 for flag in test_flag],
+ "different optical modules should have different laser power values",
+ )
+
+ def verify_laser_Power_in_same_optical_modules(self, laser_powers, *ports):
+ laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(ports[-1])
+ dpdk_float_values = self.get_float_laser_power_values(laser_power_via_dpdk)
+ eth_float_values = self.get_float_laser_power_values(laser_powers[0])
+ self.logger.info(
+ "dpdk port 1: {} eth port 0: {}".format(
+ dpdk_float_values, eth_float_values
+ )
+ )
+ test_flag = [
+ abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
+ ]
+ self.verify(
+ [flag <= 0.1 for flag in test_flag],
+ "same optical modules should have same laser power values",
+ )
+
+ def get_float_laser_power_values(self, output):
+ p = re.findall(r"(\d+\.\d+.)", output)
+ float_list = list(map(float, p))
+ return float_list
+
+ def get_nic_laser_power_via_ethtool(self, intf):
+ output = self.d_a_console(
+ "ethtool -m {} | grep 'Laser output power'".format(intf)
+ )
+ rex_output = re.search(r"Laser output power\s+:.*", output)
+ if not rex_output:
+ return False
+ return rex_output.group()
+
+ def get_nic_laser_power_via_dpdk(self, port):
+ out = self.start_telemetry_server_and_get_module_eeprom(port)
+ laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk_rex(out)
+ return laser_power_via_dpdk
+
+ def get_nic_laser_power_via_dpdk_rex(self, output):
+ rex_output = re.search(r'"Laser output power":.*?dBm"', output)
+ if not rex_output:
+ return False
+ return rex_output.group()
+
+ def check_interface_link_up(self, intf):
+ try:
+ link = self.dut.is_interface_up(intf)
+ self.verify(link, "link is down")
+ except Exception as e:
+ self.d_a_console("ifconfig {} up".format(intf))
+ finally:
+ time.sleep(3)
+
+ def skip_unsupported_get_laser_power(self, *intfs):
+ laser_power_list = []
+ for intf in intfs:
+ output = self.get_nic_laser_power_via_ethtool(intf)
+ if not output:
+ return False
+ laser_power_list.append(output)
+ return laser_power_list
+
#
# Test cases.
#
@@ -550,6 +671,11 @@ class TestTelemetry(TestCase):
# get ports information
self.dut_ports = self.dut.get_ports()
self.verify(len(self.dut_ports) >= 2, "Insufficient ports")
+ self.pf0_intf = self.dut.ports_info[self.dut_ports[0]]["intf"]
+ self.pf1_intf = self.dut.ports_info[self.dut_ports[1]]["intf"]
+ self.tester_iface0 = self.tester.get_interface(
+ self.tester.get_local_port(self.dut_ports[0])
+ )
self.init_test_binary_files()
self.nic_grp = self.get_ports_by_nic_type()
self.used_ports = []
@@ -559,7 +685,7 @@ class TestTelemetry(TestCase):
"""
Run before each test case.
"""
- pass
+ self.dut.bind_interfaces_linux("vfio-pci")
def tear_down(self):
"""
@@ -585,3 +711,59 @@ class TestTelemetry(TestCase):
Stats of 2 ports for testpmd and telemetry with same type nic
"""
self.verify_same_nic_with_2ports()
+
+ def test_read_nic_laser_power_via_dpdk(self):
+ """
+ read laser power, check testpmd show correct laser power
+ """
+ self.dut.bind_interfaces_linux(self.kdriver)
+ self.check_interface_link_up(self.pf0_intf)
+ laser_power_list = self.skip_unsupported_get_laser_power(self.pf0_intf)
+ self.skip_case(laser_power_list, "The test need Optical module to support")
+ self.verify_nic_laser_power_via_dpdk(laser_power_list, self.dut_ports[0])
+
+ def test_check_laser_power_in_different_optical_modules(self):
+ """
+ set different optical modules in two ports and check the testpmd show different laser power
+ """
+ self.dut.bind_interfaces_linux(self.kdriver)
+ [self.check_interface_link_up(i) for i in [self.pf0_intf, self.pf1_intf]]
+ laser_power_list = self.skip_unsupported_get_laser_power(
+ self.pf0_intf, self.pf1_intf
+ )
+ self.skip_case(laser_power_list, "The test need Optical module to support")
+ float_list = [
+ self.get_float_laser_power_values(laser_power)
+ for laser_power in laser_power_list
+ ]
+ self.skip_case(
+ abs(float_list[0][0] - float_list[1][0]) > 0.1
+ and abs(float_list[0][1] - float_list[1][1]) > 0.1,
+ "The test need different optical module in two ports",
+ )
+ self.verify_laser_Power_in_different_optical_modules(
+ laser_power_list, self.dut_ports[0], self.dut_ports[1]
+ )
+
+ def test_check_laser_power_in_same_optical_modules(self):
+ """
+ set same optical modules in two ports and check the testpmd show same laser power
+ """
+ self.dut.bind_interfaces_linux(self.kdriver)
+ [self.check_interface_link_up(i) for i in [self.pf0_intf, self.pf1_intf]]
+ laser_power_list = self.skip_unsupported_get_laser_power(
+ self.pf0_intf, self.pf1_intf
+ )
+ self.skip_case(laser_power_list, "The test need Optical module to support")
+ float_list = [
+ self.get_float_laser_power_values(laser_power)
+ for laser_power in laser_power_list
+ ]
+ self.skip_case(
+ abs(float_list[0][0] - float_list[1][0]) <= 0.1
+ and abs(float_list[0][1] - float_list[1][1]) <= 0.1,
+ "The test need same optical module in two ports",
+ )
+ self.verify_laser_Power_in_same_optical_modules(
+ laser_power_list, self.dut_ports[0], self.dut_ports[1]
+ )
--
2.17.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [dts][PATCH V2 2/2] tests/telemetry:add 22.07 new feature
2022-08-04 16:58 ` [dts][PATCH V2 2/2] tests/telemetry:add " Zhimin Huang
@ 2022-08-08 1:21 ` Jiale, SongX
2022-09-20 11:10 ` Tu, Lijuan
1 sibling, 0 replies; 5+ messages in thread
From: Jiale, SongX @ 2022-08-08 1:21 UTC (permalink / raw)
To: Huang, ZhiminX, dts; +Cc: Huang, ZhiminX
> -----Original Message-----
> From: Zhimin Huang <zhiminx.huang@intel.com>
> Sent: Friday, August 5, 2022 12:59 AM
> To: dts@dpdk.org
> Cc: Huang, ZhiminX <zhiminx.huang@intel.com>
> Subject: [dts][PATCH V2 2/2] tests/telemetry:add 22.07 new feature
>
> add 22.07 new feature, support get laser power value in telemetry client.
>
> Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
> ---
Tested-by: Jiale Song < songx.jiale@intel.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature
2022-08-04 16:58 [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature Zhimin Huang
2022-08-04 16:58 ` [dts][PATCH V2 2/2] tests/telemetry:add " Zhimin Huang
@ 2022-08-12 6:22 ` Peng, Yuan
1 sibling, 0 replies; 5+ messages in thread
From: Peng, Yuan @ 2022-08-12 6:22 UTC (permalink / raw)
To: Huang, ZhiminX, dts; +Cc: Huang, ZhiminX
Acked-by: Peng, Yuan <yuan.peng@intel.com>
-----Original Message-----
From: Zhimin Huang <zhiminx.huang@intel.com>
Sent: Friday, August 5, 2022 12:59 AM
To: dts@dpdk.org
Cc: Huang, ZhiminX <zhiminx.huang@intel.com>
Subject: [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature
add 22.07 new feature, support get laser power value in telemetry client.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [dts][PATCH V2 2/2] tests/telemetry:add 22.07 new feature
2022-08-04 16:58 ` [dts][PATCH V2 2/2] tests/telemetry:add " Zhimin Huang
2022-08-08 1:21 ` Jiale, SongX
@ 2022-09-20 11:10 ` Tu, Lijuan
1 sibling, 0 replies; 5+ messages in thread
From: Tu, Lijuan @ 2022-09-20 11:10 UTC (permalink / raw)
To: Huang, ZhiminX, dts; +Cc: Huang, ZhiminX
> -----Original Message-----
> From: Zhimin Huang <zhiminx.huang@intel.com>
> Sent: Friday, August 5, 2022 12:59 AM
> To: dts@dpdk.org
> Cc: Huang, ZhiminX <zhiminx.huang@intel.com>
> Subject: [dts][PATCH V2 2/2] tests/telemetry:add 22.07 new feature
Please revise your subject. 22.07 is not the key message to get what patch do.
>
> add 22.07 new feature, support get laser power value in telemetry client.
>
> Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
> ---
> tests/TestSuite_telemetry.py | 184 ++++++++++++++++++++++++++++++++++-
> 1 file changed, 183 insertions(+), 1 deletion(-)
>
> diff --git a/tests/TestSuite_telemetry.py b/tests/TestSuite_telemetry.py index
> 97c1c748..1dda5502 100644
> --- a/tests/TestSuite_telemetry.py
> +++ b/tests/TestSuite_telemetry.py
> @@ -539,6 +539,127 @@ class TestTelemetry(TestCase):
> self.close_telemetry_server()
> raise Exception(e)
>
> + def start_telemetry_server_and_get_module_eeprom(self, port_id):
> + try:
> + self.change_flag = True
> + self.dut.bind_interfaces_linux("vfio-pci")
It's not a good idea to use hardcode, please use self. drivername instead.
> + out = self.start_telemetry_server()
> + self.tester.is_interface_up(self.tester_iface0)
> + p = re.search("socket /var/run/dpdk/(.+?)/", out)
> + self.start_dpdk_telemetry(p.group(1))
> + module_eeprom_output = self.dut_telemetry.send_expect(
> + "/ethdev/module_eeprom,{}".format(port_id), "--> "
> + )
> + self.close_telemetry_server()
> + return module_eeprom_output
> + except Exception as e:
> + self.close_telemetry_server()
> + raise Exception(e)
> +
> + def start_dpdk_telemetry(self, *args):
> + self.dut_telemetry = self.dut.new_session()
> + dpdk_tool = os.path.join(self.target_dir, "usertools/dpdk-telemetry.py")
> + self.dut_telemetry.send_expect(
> + "python3 " + dpdk_tool + " -f {}".format(args[0]), "--> ", 5
> + )
> +
> + def verify_nic_laser_power_via_dpdk(self, laser_powers, *ports):
> + if isinstance(laser_powers, str):
> + laser_powers = [laser_powers]
> + for laser_power, port in zip(laser_powers, ports):
> + laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(port)
> + dpdk_float_values =
> self.get_float_laser_power_values(laser_power_via_dpdk)
> + eth_float_values = self.get_float_laser_power_values(laser_power)
> + test_flag = [
> + abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
> + ]
> + self.logger.info(
> + "dpdk:{} eth:{}".format(dpdk_float_values, eth_float_values)
> + )
> + self.verify(
> + [flag <= 0.1 for flag in test_flag],
> + "dpdk:{} eth:{},get the incorrect laser power values".format(
> + dpdk_float_values, eth_float_values
> + ),
> + )
> +
> + def verify_laser_Power_in_different_optical_modules(self, laser_powers,
> *ports):
> + laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(ports[-1])
> + dpdk_float_values =
> self.get_float_laser_power_values(laser_power_via_dpdk)
> + eth_float_values = self.get_float_laser_power_values(laser_powers[0])
> + self.logger.info(
> + "dpdk port 1: {} eth port 0: {}".format(
> + dpdk_float_values, eth_float_values
> + )
> + )
> + test_flag = [
> + abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
> + ]
> + self.verify(
> + [flag > 0.1 for flag in test_flag],
> + "different optical modules should have different laser power values",
> + )
> +
> + def verify_laser_Power_in_same_optical_modules(self, laser_powers,
> *ports):
> + laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk(ports[-1])
> + dpdk_float_values =
> self.get_float_laser_power_values(laser_power_via_dpdk)
> + eth_float_values = self.get_float_laser_power_values(laser_powers[0])
> + self.logger.info(
> + "dpdk port 1: {} eth port 0: {}".format(
> + dpdk_float_values, eth_float_values
> + )
> + )
> + test_flag = [
> + abs(v_d - v_e) for v_d, v_e in zip(dpdk_float_values, eth_float_values)
> + ]
> + self.verify(
> + [flag <= 0.1 for flag in test_flag],
> + "same optical modules should have same laser power values",
> + )
> +
> + def get_float_laser_power_values(self, output):
> + p = re.findall(r"(\d+\.\d+.)", output)
> + float_list = list(map(float, p))
> + return float_list
> +
> + def get_nic_laser_power_via_ethtool(self, intf):
> + output = self.d_a_console(
> + "ethtool -m {} | grep 'Laser output power'".format(intf)
> + )
> + rex_output = re.search(r"Laser output power\s+:.*", output)
> + if not rex_output:
> + return False
> + return rex_output.group()
Mixed use with bool and string. And the value will finally goes to:
+ def get_float_laser_power_values(self, output):
+ p = re.findall(r"(\d+\.\d+.)", output)
+ float_list = list(map(float, p))
+ return float_list
If it is False, exception will happen.
> +
> + def get_nic_laser_power_via_dpdk(self, port):
> + out = self.start_telemetry_server_and_get_module_eeprom(port)
> + laser_power_via_dpdk = self.get_nic_laser_power_via_dpdk_rex(out)
> + return laser_power_via_dpdk
> +
> + def get_nic_laser_power_via_dpdk_rex(self, output):
> + rex_output = re.search(r'"Laser output power":.*?dBm"', output)
> + if not rex_output:
> + return False
> + return rex_output.group()
> +
> + def check_interface_link_up(self, intf):
> + try:
> + link = self.dut.is_interface_up(intf)
> + self.verify(link, "link is down")
> + except Exception as e:
> + self.d_a_console("ifconfig {} up".format(intf))
> + finally:
> + time.sleep(3)
> +
> + def skip_unsupported_get_laser_power(self, *intfs):
> + laser_power_list = []
> + for intf in intfs:
> + output = self.get_nic_laser_power_via_ethtool(intf)
> + if not output:
> + return False
> + laser_power_list.append(output)
> + return laser_power_list
> +
> #
> # Test cases.
> #
> @@ -550,6 +671,11 @@ class TestTelemetry(TestCase):
> # get ports information
> self.dut_ports = self.dut.get_ports()
> self.verify(len(self.dut_ports) >= 2, "Insufficient ports")
> + self.pf0_intf = self.dut.ports_info[self.dut_ports[0]]["intf"]
> + self.pf1_intf = self.dut.ports_info[self.dut_ports[1]]["intf"]
> + self.tester_iface0 = self.tester.get_interface(
> + self.tester.get_local_port(self.dut_ports[0])
> + )
> self.init_test_binary_files()
> self.nic_grp = self.get_ports_by_nic_type()
> self.used_ports = []
> @@ -559,7 +685,7 @@ class TestTelemetry(TestCase):
> """
> Run before each test case.
> """
> - pass
> + self.dut.bind_interfaces_linux("vfio-pci")
Hardcode with above.
>
> def tear_down(self):
> """
> @@ -585,3 +711,59 @@ class TestTelemetry(TestCase):
> Stats of 2 ports for testpmd and telemetry with same type nic
> """
> self.verify_same_nic_with_2ports()
> +
> + def test_read_nic_laser_power_via_dpdk(self):
> + """
> + read laser power, check testpmd show correct laser power
> + """
> + self.dut.bind_interfaces_linux(self.kdriver)
If skip case, the interface bound to kdriver, please restore to self.drivername, else impact other suites.
> + self.check_interface_link_up(self.pf0_intf)
> + laser_power_list = self.skip_unsupported_get_laser_power(self.pf0_intf)
> + self.skip_case(laser_power_list, "The test need Optical module to support")
> + self.verify_nic_laser_power_via_dpdk(laser_power_list,
> + self.dut_ports[0])
> +
> + def test_check_laser_power_in_different_optical_modules(self):
> + """
> + set different optical modules in two ports and check the testpmd show
> different laser power
> + """
> + self.dut.bind_interfaces_linux(self.kdriver)
> + [self.check_interface_link_up(i) for i in [self.pf0_intf, self.pf1_intf]]
> + laser_power_list = self.skip_unsupported_get_laser_power(
> + self.pf0_intf, self.pf1_intf
> + )
> + self.skip_case(laser_power_list, "The test need Optical module to support")
> + float_list = [
> + self.get_float_laser_power_values(laser_power)
> + for laser_power in laser_power_list
> + ]
> + self.skip_case(
> + abs(float_list[0][0] - float_list[1][0]) > 0.1
> + and abs(float_list[0][1] - float_list[1][1]) > 0.1,
> + "The test need different optical module in two ports",
> + )
> + self.verify_laser_Power_in_different_optical_modules(
> + laser_power_list, self.dut_ports[0], self.dut_ports[1]
> + )
> +
> + def test_check_laser_power_in_same_optical_modules(self):
> + """
> + set same optical modules in two ports and check the testpmd show same
> laser power
> + """
> + self.dut.bind_interfaces_linux(self.kdriver)
> + [self.check_interface_link_up(i) for i in [self.pf0_intf, self.pf1_intf]]
> + laser_power_list = self.skip_unsupported_get_laser_power(
> + self.pf0_intf, self.pf1_intf
> + )
> + self.skip_case(laser_power_list, "The test need Optical module to support")
> + float_list = [
> + self.get_float_laser_power_values(laser_power)
> + for laser_power in laser_power_list
> + ]
> + self.skip_case(
> + abs(float_list[0][0] - float_list[1][0]) <= 0.1
> + and abs(float_list[0][1] - float_list[1][1]) <= 0.1,
> + "The test need same optical module in two ports",
> + )
> + self.verify_laser_Power_in_same_optical_modules(
> + laser_power_list, self.dut_ports[0], self.dut_ports[1]
> + )
> --
> 2.17.1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-09-20 11:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-04 16:58 [dts][PATCH V2 1/2] test_plans/telemetry:add 22.07 new feature Zhimin Huang
2022-08-04 16:58 ` [dts][PATCH V2 2/2] tests/telemetry:add " Zhimin Huang
2022-08-08 1:21 ` Jiale, SongX
2022-09-20 11:10 ` Tu, Lijuan
2022-08-12 6:22 ` [dts][PATCH V2 1/2] test_plans/telemetry:add " Peng, Yuan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).