From b21890de3e7d1b876539e2ec74c1141987c30379 Mon Sep 17 00:00:00 2001 From: jitendra-kushavah Date: Fri, 4 Apr 2025 23:55:14 +0530 Subject: [PATCH] Modified dataplane test and fixed the dual band wifi capacity issue Signed-off-by: jitendra-kushavah --- lf_libs/lf_tests.py | 47 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/lf_libs/lf_tests.py b/lf_libs/lf_tests.py index 83de170b..7a5cadfe 100644 --- a/lf_libs/lf_tests.py +++ b/lf_libs/lf_tests.py @@ -1257,7 +1257,8 @@ class lf_tests(lf_libs): ' bssid=' + str(dut_data[identifier]["ssid_data"][idx_]["bssid"]).upper()]) self.update_duts(identifier=identifier, ssid_data=ssid_data) - def add_stations(self, is_wifi7=False, is_bw320=False, band="2G", num_stations=9, ssid_name="", dut_data={}, identifier=None): + def add_stations(self, is_wifi7=False, is_bw320=False, band="2G", num_stations=9, ssid_name="", dut_data={}, + identifier=None, dual_band_flag=1, temp_radio_data={}): dut_name = [] # for index in range(0, len(self.dut_data)): # dut_name.append(self.dut_data[index]["identifier"]) @@ -1311,9 +1312,15 @@ class lf_tests(lf_libs): max_station_per_radio = {"wave2_2g_radios": 64, "wave2_5g_radios": 64, "wave1_radios": 64, "mtk_radios": 19, "ax200_radios": 1, "ax210_radios": 1, "be200_radios": 1} + if dual_band_flag > 1: + logging.info("dual_band_flag is True, fetched 2g radio data") + logging.info(f"temp_radio_data:{temp_radio_data}") + temp_radio_data = temp_radio_data + radio_data = {} sniff_radio = "" + for dut in dut_data: for idx_ in dut_data[dut]["ssid_data"]: temp_band = dut_data[dut]["ssid_data"][idx_]["band"] @@ -1367,6 +1374,8 @@ class lf_tests(lf_libs): if len(dict_all_radios_5g[j]) > 0: diff = max_station - stations for i in dict_all_radios_5g[j]: + if dual_band_flag > 1 and (i in temp_radio_data): + continue # Skip this radio if diff >= 0: radio_data[i] = stations stations = 0 @@ -1376,6 +1385,7 @@ class lf_tests(lf_libs): stations = stations - max_station diff = max_station - stations + if band == "6G": stations = None if num_stations != "max": @@ -1528,7 +1538,13 @@ class lf_tests(lf_libs): if add_stations: '''SINGLE WIFI CAPACITY using lf_wifi_capacity.py''' self.temp_raw_lines = self.default_scenario_raw_lines.copy() + dual_band_flag = 0 for band_ in num_stations: + dual_band_flag = dual_band_flag+1 + logging.info(f"dual_band_flag value:{dual_band_flag}") + temp_radio_data = {} + if dual_band_flag > 1: + temp_radio_data = radio_data if band_ not in ["2G", "5G", "6G"]: logging.error("Band is missing") pytest.fail("band is missing") @@ -1555,9 +1571,11 @@ class lf_tests(lf_libs): temp_band = "sixg" if temp_band == dut_data[i]["ssid_data"][j]["band"]: ssid_name = dut_data[i]["ssid_data"][j]["ssid"] + radio_data = self.add_stations(band=band_, num_stations=num_stations[band_], ssid_name=ssid_name, dut_data=dut_data, - identifier=identifier, is_wifi7=is_wifi7, is_bw320=is_bw320) + identifier=identifier, is_wifi7=is_wifi7, is_bw320=is_bw320, + dual_band_flag = dual_band_flag, temp_radio_data=temp_radio_data) if vlan_raw_lines is not None: for i in vlan_raw_lines: self.temp_raw_lines.append(i) @@ -1816,9 +1834,9 @@ class lf_tests(lf_libs): return wificapacity_obj_list def dataplane_throughput_test(self, ssid="[BLANK]", passkey="[BLANK]", security="wpa2", num_sta=1, mode="BRIDGE", - vlan_id=[None], + vlan_id=[None], ap_mode ="wifi6", download_rate="85%", band="twog", scan_ssid=True, - upload_rate="0", duration="15s", instance_name="test_demo", raw_lines=None, + upload_rate="0", duration="15s", path_loss=10, instance_name="test_demo", raw_lines=None, influx_tags="", move_to_influx=False, station_data=["4way time (us)", "channel", "cx time (us)", "dhcp (ms)", "ip", @@ -1826,6 +1844,7 @@ class lf_tests(lf_libs): allure_attach=True, allure_name="station data", client_type=0, dut_data={}): instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=12)) dataplane_obj_list = [] + radio_mode = "" for dut in self.dut_data: identifier = dut["identifier"] if mode == "BRIDGE": @@ -1853,9 +1872,25 @@ class lf_tests(lf_libs): station_data=station_data, allure_attach=allure_attach, identifier=identifier, allure_name=allure_name, client_type=client_type, dut_data=dut_data) + if ap_mode=="wifi7": + if band=="twog": + radio_mode = "802.11bgn-BE" + if band=="fiveg": + radio_mode = "802.11an-BE" + if band=="sixg": + radio_mode = "802.11a-BE" + else: + if band=="twog": + radio_mode = "802.11bgn-AX" + if band=="fiveg": + radio_mode = "802.11an-AX" + if band=="sixg": + radio_mode = "802.11a-AX" + + logging.info(f"radio_mode {radio_mode}") if raw_lines is None: - raw_lines = [['pkts: 142;256;512;1024;MTU;4000'], ['directions: DUT Transmit;DUT Receive'], + raw_lines = [['pkts: 142;256;512;1024;MTU;4000'], ['directions: DUT Transmit'], ['modes: ' + str(radio_mode)], ['traffic_types: UDP;TCP'], ["show_3s: 1"], ["show_ll_graphs: 1"], ["show_log: 1"]] sets = [['Maximize Unused Attenuators', '0']] @@ -1874,6 +1909,7 @@ class lf_tests(lf_libs): download_speed=download_rate, upload_speed=upload_rate, duration=duration, + path_loss=path_loss, dut=identifier, station=list(station_data.keys())[0], test_tag=influx_tags, @@ -2975,6 +3011,7 @@ class lf_tests(lf_libs): -1] + "/" self.attach_report_graphs(report_name=report_name, pdf_name="Multi Band Performance Test") result = self.read_kpi_file(column_name=["pass/fail"], dir_name=report_name) + logging.info(f"result of pass/fail:{result}") allure.attach.file(source="../reports/" + report_name + "/kpi.csv", name=f"Multi_band_CSV", attachment_type="CSV")