wifi capacity test- added
wifi capacity upload dual band wifi capacity download dual band bidirectional dual band all above scenarios in bridge nat and vlan mode, and in 5g and 2.4g modes
@@ -200,13 +200,14 @@ class RunTest:
 | 
				
			|||||||
        self.eap_connect.cleanup(station_name)
 | 
					        self.eap_connect.cleanup(station_name)
 | 
				
			||||||
        return self.eap_connect.passes()
 | 
					        return self.eap_connect.passes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def wifi_capacity(self, mode="BRIDGE", vlan_id=100, instance_name="wct_instance", stations=None):
 | 
					    def wifi_capacity(self, mode="BRIDGE", vlan_id=100, instance_name="wct_instance", download_rate="1Gbps",
 | 
				
			||||||
 | 
					                      upload_rate="1Gbps", protocol="TCP-IPv4", duration="60000"):
 | 
				
			||||||
        if mode == "BRIDGE":
 | 
					        if mode == "BRIDGE":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port
 | 
					            upstream_port = self.upstream_port
 | 
				
			||||||
        elif mode == "NAT":
 | 
					        elif mode == "NAT":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port
 | 
					            upstream_port = self.upstream_port
 | 
				
			||||||
        elif mode == "VLAN":
 | 
					        elif mode == "VLAN":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
 | 
					            upstream_port = self.upstream_port + "." + str(vlan_id)
 | 
				
			||||||
        '''SINGLE WIFI CAPACITY using lf_wifi_capacity.py'''
 | 
					        '''SINGLE WIFI CAPACITY using lf_wifi_capacity.py'''
 | 
				
			||||||
        wificapacity_obj = WiFiCapacityTest(lfclient_host=self.lanforge_ip,
 | 
					        wificapacity_obj = WiFiCapacityTest(lfclient_host=self.lanforge_ip,
 | 
				
			||||||
                                            lf_port=self.lanforge_port,
 | 
					                                            lf_port=self.lanforge_port,
 | 
				
			||||||
@@ -215,18 +216,18 @@ class RunTest:
 | 
				
			|||||||
                                            local_lf_report_dir=self.local_report_path,
 | 
					                                            local_lf_report_dir=self.local_report_path,
 | 
				
			||||||
                                            instance_name=instance_name,
 | 
					                                            instance_name=instance_name,
 | 
				
			||||||
                                            config_name="wifi_config",
 | 
					                                            config_name="wifi_config",
 | 
				
			||||||
                                                 upstream="1.1." + self.upstream_port,
 | 
					                                            upstream="1.1." + upstream_port,
 | 
				
			||||||
                                                 batch_size="1",
 | 
					                                            batch_size="1,5,10,20,40,64",
 | 
				
			||||||
                                            loop_iter="1",
 | 
					                                            loop_iter="1",
 | 
				
			||||||
                                                 protocol="UDP-IPv4",
 | 
					                                            protocol=protocol,
 | 
				
			||||||
                                                 duration="3000",
 | 
					                                            duration=duration,
 | 
				
			||||||
                                            pull_report=True,
 | 
					                                            pull_report=True,
 | 
				
			||||||
                                            load_old_cfg=False,
 | 
					                                            load_old_cfg=False,
 | 
				
			||||||
                                                 upload_rate="10Mbps",
 | 
					                                            upload_rate=upload_rate,
 | 
				
			||||||
                                                 download_rate="1Gbps",
 | 
					                                            download_rate=download_rate,
 | 
				
			||||||
                                            sort="interleave",
 | 
					                                            sort="interleave",
 | 
				
			||||||
                                                 stations=stations,
 | 
					                                            # stations=stations,
 | 
				
			||||||
                                                 create_stations=False,
 | 
					                                            create_stations=True,
 | 
				
			||||||
                                            radio=None,
 | 
					                                            radio=None,
 | 
				
			||||||
                                            security=None,
 | 
					                                            security=None,
 | 
				
			||||||
                                            paswd=None,
 | 
					                                            paswd=None,
 | 
				
			||||||
@@ -282,14 +283,18 @@ class RunTest:
 | 
				
			|||||||
        return True
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def dataplane(self, station_name=None, mode="BRIDGE", vlan_id=100, download_rate="85%", dut_name="TIP",
 | 
					    def dataplane(self, station_name=None, mode="BRIDGE", vlan_id=100, download_rate="85%", dut_name="TIP",
 | 
				
			||||||
                  upload_rate="85%", duration="1m", instance_name="test_demo"):
 | 
					                  upload_rate="85%", duration="1m", instance_name="test_demo", raw_lines=None):
 | 
				
			||||||
        if mode == "BRIDGE":
 | 
					        if mode == "BRIDGE":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port
 | 
					            self.client_connect.upstream_port = self.upstream_port
 | 
				
			||||||
        elif mode == "NAT":
 | 
					        elif mode == "NAT":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port
 | 
					            self.client_connect.upstream_port = self.upstream_port
 | 
				
			||||||
        else:
 | 
					        elif mode == "VLAN":
 | 
				
			||||||
            self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
 | 
					            self.client_connect.upstream_port = self.upstream_port + "." + str(vlan_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if raw_lines is None:
 | 
				
			||||||
 | 
					            raw_lines = [['pkts: MTU'], ['directions: DUT Transmit;DUT Receive'], ['traffic_types: UDP;TCP'],
 | 
				
			||||||
 | 
					                         ["show_3s: 1"], ["show_ll_graphs: 1"], ["show_log: 1"]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.dataplane_obj = DataplaneTest(lf_host=self.lanforge_ip,
 | 
					        self.dataplane_obj = DataplaneTest(lf_host=self.lanforge_ip,
 | 
				
			||||||
                                           lf_port=self.lanforge_port,
 | 
					                                           lf_port=self.lanforge_port,
 | 
				
			||||||
                                           ssh_port=self.lf_ssh_port,
 | 
					                                           ssh_port=self.lf_ssh_port,
 | 
				
			||||||
@@ -306,18 +311,15 @@ class RunTest:
 | 
				
			|||||||
                                           duration=duration,
 | 
					                                           duration=duration,
 | 
				
			||||||
                                           dut=dut_name,
 | 
					                                           dut=dut_name,
 | 
				
			||||||
                                           station="1.1." + station_name[0],
 | 
					                                           station="1.1." + station_name[0],
 | 
				
			||||||
                                           raw_lines=[['pkts: Custom;60;142;256;512;1024;MTU'],
 | 
					                                           raw_lines=raw_lines)
 | 
				
			||||||
                                                      ['directions: DUT Transmit;DUT Receive'],
 | 
					
 | 
				
			||||||
                                                      ['traffic_types: UDP;TCP'], ["show_3s: 1"],
 | 
					 | 
				
			||||||
                                                      ["show_ll_graphs: 1"], ["show_log: 1"]],
 | 
					 | 
				
			||||||
                                           )
 | 
					 | 
				
			||||||
        self.dataplane_obj.setup()
 | 
					        self.dataplane_obj.setup()
 | 
				
			||||||
        self.dataplane_obj.run()
 | 
					        self.dataplane_obj.run()
 | 
				
			||||||
        report_name = self.dataplane_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					        report_name = self.dataplane_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
        influx = CSVtoInflux(influxdb=self.influxdb,
 | 
					        influx = CSVtoInflux(influxdb=self.influxdb, _influx_tag=self.influx_params["influx_tag"],
 | 
				
			||||||
                             _influx_tag=self.influx_params["influx_tag"],
 | 
					 | 
				
			||||||
                             target_csv=self.local_report_path + report_name + "/kpi.csv")
 | 
					                             target_csv=self.local_report_path + report_name + "/kpi.csv")
 | 
				
			||||||
        influx.post_to_influx()
 | 
					        influx.post_to_influx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return self.dataplane_obj
 | 
					        return self.dataplane_obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def dualbandperformancetest(self, ssid_5G="[BLANK]", ssid_2G="[BLANK]", mode="BRIDGE", vlan_id=100, dut_name="TIP",
 | 
					    def dualbandperformancetest(self, ssid_5G="[BLANK]", ssid_2G="[BLANK]", mode="BRIDGE", vlan_id=100, dut_name="TIP",
 | 
				
			||||||
@@ -346,7 +348,8 @@ class RunTest:
 | 
				
			|||||||
                                            radio2=[["1.1.wiphy0"]],
 | 
					                                            radio2=[["1.1.wiphy0"]],
 | 
				
			||||||
                                            radio5=[["1.1.wiphy1"]],
 | 
					                                            radio5=[["1.1.wiphy1"]],
 | 
				
			||||||
                                            sets=[['Basic Client Connectivity', '0'], ['Multi Band Performance', '1'],
 | 
					                                            sets=[['Basic Client Connectivity', '0'], ['Multi Band Performance', '1'],
 | 
				
			||||||
                                               ['Throughput vs Pkt Size', '0'], ['Capacity', '0'], ['Stability', '0'],
 | 
					                                                  ['Throughput vs Pkt Size', '0'], ['Capacity', '0'],
 | 
				
			||||||
 | 
					                                                  ['Stability', '0'],
 | 
				
			||||||
                                                  ['Band-Steering', '0'], ['Multi-Station Throughput vs Pkt Size', '0'],
 | 
					                                                  ['Band-Steering', '0'], ['Multi-Station Throughput vs Pkt Size', '0'],
 | 
				
			||||||
                                                  ['Long-Term', '0']]
 | 
					                                                  ['Long-Term', '0']]
 | 
				
			||||||
                                            )
 | 
					                                            )
 | 
				
			||||||
@@ -360,7 +363,6 @@ class RunTest:
 | 
				
			|||||||
        return self.dualbandptest_obj
 | 
					        return self.dualbandptest_obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    lanforge_data = {
 | 
					    lanforge_data = {
 | 
				
			||||||
        "ip": "localhost",
 | 
					        "ip": "localhost",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import json
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
import pandas as pd
 | 
					import pandas as pd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ChamberView:
 | 
					class ChamberView:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, lanforge_data=None, access_point_data=None, debug=True, testbed=None):
 | 
					    def __init__(self, lanforge_data=None, access_point_data=None, debug=True, testbed=None):
 | 
				
			||||||
@@ -57,6 +58,15 @@ class ChamberView:
 | 
				
			|||||||
                                 )
 | 
					                                 )
 | 
				
			||||||
            self.CreateDut.ssid = []
 | 
					            self.CreateDut.ssid = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def reset_scenario(self):
 | 
				
			||||||
 | 
					        self.raw_line = [
 | 
				
			||||||
 | 
					            ["profile_link " + self.upstream_resources + " upstream-dhcp 1 NA NA " + self.upstream_port.split(".")
 | 
				
			||||||
 | 
					            [2] + ",AUTO -1 NA"],
 | 
				
			||||||
 | 
					            ["profile_link " + self.uplink_resources + " uplink-nat 1 'DUT: upstream LAN " + self.upstream_subnet
 | 
				
			||||||
 | 
					             + "' NA " + self.uplink_port.split(".")[2] + "," + self.upstream_port.split(".")[2] + " -1 NA"]
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        self.Chamber_View()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def Chamber_View(self):
 | 
					    def Chamber_View(self):
 | 
				
			||||||
        if self.delete_old_scenario:
 | 
					        if self.delete_old_scenario:
 | 
				
			||||||
            self.CreateChamberview.clean_cv_scenario(type="Network-Connectivity", scenario_name=self.scenario_name)
 | 
					            self.CreateChamberview.clean_cv_scenario(type="Network-Connectivity", scenario_name=self.scenario_name)
 | 
				
			||||||
@@ -70,6 +80,23 @@ class ChamberView:
 | 
				
			|||||||
        self.CreateChamberview.sync_cv()
 | 
					        self.CreateChamberview.sync_cv()
 | 
				
			||||||
        return self.CreateChamberview, self.scenario_name
 | 
					        return self.CreateChamberview, self.scenario_name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def add_stations(self, band="twog", num_stations=50, dut="NA"):
 | 
				
			||||||
 | 
					        if band == "twog":
 | 
				
			||||||
 | 
					            radio = ",".join(self.twog_radios)
 | 
				
			||||||
 | 
					            if len(self.twog_radios) == 1:
 | 
				
			||||||
 | 
					                radio = radio + ",AUTO"
 | 
				
			||||||
 | 
					            # self.eap_connect.sta_prefix = self.twog_prefix
 | 
				
			||||||
 | 
					        if band == "fiveg":
 | 
				
			||||||
 | 
					            radio = ",".join(self.fiveg_radios)
 | 
				
			||||||
 | 
					            if len(self.fiveg_radios) == 1:
 | 
				
			||||||
 | 
					                radio = radio + ",AUTO"
 | 
				
			||||||
 | 
					            # self.eap_connect.sta_prefix = self.fiveg_prefix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        station_data = ["profile_link 1.1 STA-AUTO " + str(num_stations) + " 'DUT: " + dut + " Radio-1'" + " NA " + radio]
 | 
				
			||||||
 | 
					        self.raw_line.append(station_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def Create_Dut(self):
 | 
					    def Create_Dut(self):
 | 
				
			||||||
        self.CreateDut.setup()
 | 
					        self.CreateDut.setup()
 | 
				
			||||||
        self.CreateDut.add_ssids()
 | 
					        self.CreateDut.add_ssids()
 | 
				
			||||||
@@ -114,14 +141,9 @@ class ChamberView:
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
                return df
 | 
					                return df
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name, engine='python')
 | 
					            df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name,
 | 
				
			||||||
 | 
					                             engine='python')
 | 
				
			||||||
            if df.empty == True:
 | 
					            if df.empty == True:
 | 
				
			||||||
                return "empty"
 | 
					                return "empty"
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                return df
 | 
					                return df
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 Before Width: | Height: | Size: 8.9 KiB  | 
| 
		 Before Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 766 B  | 
| 
		 Before Width: | Height: | Size: 35 KiB  | 
@@ -1,157 +0,0 @@
 | 
				
			|||||||
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",Date,"UDP UL + DL Sum/RX (Mbps)",Date,"UDP DL/RX (Mbps)",Date,"UDP UL/RX (Mbps)",
 | 
					 | 
				
			||||||
"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:13.767 UTC",0,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:15.123 UTC",0,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:16.379 UTC",0,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:17.516 UTC",0,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:18.635 UTC",0,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:20.559 UTC",0,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:21.762 UTC",0,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:22.906 UTC",0,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:24.083 UTC",0,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:26.051 UTC",0,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:27.409 UTC",0,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:28.559 UTC",0,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:29.682 UTC",0,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:31.459 UTC",0,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:32.753 UTC",0,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:33.899 UTC",0,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:35.326 UTC",0,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:37.613 UTC",0,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:39.945 UTC",0,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:41.012 UTC",0,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:42.019 UTC",0,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:43.939 UTC",0,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:45.014 UTC",0,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:46.089 UTC",0,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:47.111 UTC",0,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:48.151 UTC",0,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:49.485 UTC",0,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:50.565 UTC",0,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:51.569 UTC",0,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:52.572 UTC",0,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:53.580 UTC",0,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:55.086 UTC",0,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:56.099 UTC",0,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:57.105 UTC",0,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:58.109 UTC",0,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:05:59.127 UTC",0,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:00.761 UTC",0,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:01.986 UTC",0,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:04.029 UTC",0,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:05.032 UTC",0,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:06.764 UTC",0,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:08.019 UTC",0,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:09.031 UTC",0,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:10.052 UTC",0,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:11.141 UTC",0,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:12.961 UTC",0,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:13.985 UTC",0,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:14.991 UTC",0,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:15.996 UTC",0,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:17.000 UTC",0,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:18.016 UTC",0,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:19.074 UTC",0,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:20.078 UTC",0,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:21.126 UTC",0,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:22.175 UTC",0,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:24.014 UTC",0,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:25.138 UTC",0,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:26.153 UTC",0,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:27.458 UTC",0,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:30.313 UTC",0,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,
 | 
					 | 
				
			||||||
"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,
 | 
					 | 
				
			||||||
		
		
			
  | 
@@ -1,4 +0,0 @@
 | 
				
			|||||||
"Throughput for different bands",
 | 
					 | 
				
			||||||
"2.4Ghz","5Ghz","Combined-2","Dual",
 | 
					 | 
				
			||||||
45.93387,167.48692,213.42079,169.00617
 | 
					 | 
				
			||||||
145.23156,128.71492,273.94648,179.92017
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 2. 
		
	 | 
@@ -1,11 +0,0 @@
 | 
				
			|||||||
/* file reserved for customer styling of reports */
 | 
					 | 
				
			||||||
/* rename to custom.css to take effect */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFont {}
 | 
					 | 
				
			||||||
.HeaderFont {}
 | 
					 | 
				
			||||||
.TableFont {}
 | 
					 | 
				
			||||||
.TableBorder {}
 | 
					 | 
				
			||||||
.ImgStyle {}
 | 
					 | 
				
			||||||
.HeaderStyle {}
 | 
					 | 
				
			||||||
.FooterStyle {}
 | 
					 | 
				
			||||||
/* eof */
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Date	test-rig	dut-hw-version	dut-sw-version	dut-model-num	dut-serial-num	test-priority	test-id	short-description	pass/fail	numeric-score	test details	Units	Graph-Group	Subtest-Pass	Subtest-Fail
 | 
					 | 
				
			||||||
1624540068480		ecw5410	ecw5410-2021-06-16-pending-e8418c0.tar.	ecw5410	903cb3944817	100	AP Auto	Multi Band Performance Score	FAIL	80.48127866945252	Dual-Concurrent vs 90% of Sum: 169.01 Mbps / 192.08 Mbps Dual-Concurrent vs 90% of Sum: 179.92 Mbps / 246.55 Mbps	Score	Score	0	2
 | 
					 | 
				
			||||||
		
		
			
  | 
| 
		 Before Width: | Height: | Size: 8.9 KiB  | 
@@ -1,256 +0,0 @@
 | 
				
			|||||||
html, body,div {
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
  padding:0;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
h1,h2,h3,h4 {
 | 
					 | 
				
			||||||
   padding: 0em;
 | 
					 | 
				
			||||||
   line-height: 1.5;
 | 
					 | 
				
			||||||
   text-align: left;
 | 
					 | 
				
			||||||
   color: rgb(42,91,41);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@font-face {
 | 
					 | 
				
			||||||
   font-family: CenturyGothic;
 | 
					 | 
				
			||||||
   src: url("CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("images/CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("/images/CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("http://www.candelatech.com/images/CenturyGothic.woff");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
body,h1,h2,h3,h4 {
 | 
					 | 
				
			||||||
   font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
h1 { font-size: 30px;}
 | 
					 | 
				
			||||||
h2 { font-size: 24px;}
 | 
					 | 
				
			||||||
h3 { font-size: 18px;}
 | 
					 | 
				
			||||||
h4 { font-size: 14px;}
 | 
					 | 
				
			||||||
li,pre,tt {
 | 
					 | 
				
			||||||
  text-align: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
pre {
 | 
					 | 
				
			||||||
  font-size: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table {
 | 
					 | 
				
			||||||
   border-collapse: collapse;
 | 
					 | 
				
			||||||
   background: #e0e0e0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table, td, th {
 | 
					 | 
				
			||||||
   border: 1px solid gray;
 | 
					 | 
				
			||||||
   padding 4px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table.noborder, table.noborder td, table.noborder th  {
 | 
					 | 
				
			||||||
   border: 0 none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
td {
 | 
					 | 
				
			||||||
   background: white;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
td.ar {
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
th {
 | 
					 | 
				
			||||||
   color: rgb(42,91,41);
 | 
					 | 
				
			||||||
   text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#lf_title {
 | 
					 | 
				
			||||||
   text-align:          center;
 | 
					 | 
				
			||||||
   background-image:    url(candela_swirl_small-72h.png);
 | 
					 | 
				
			||||||
   background-position: right;
 | 
					 | 
				
			||||||
   background-repeat:   no-repeat;
 | 
					 | 
				
			||||||
   height:              90px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#new_chart {
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   height:        250px;
 | 
					 | 
				
			||||||
   min-width:     200px;
 | 
					 | 
				
			||||||
   width:         80%;
 | 
					 | 
				
			||||||
   border:        1px solid black;
 | 
					 | 
				
			||||||
   margin:        14px auto;
 | 
					 | 
				
			||||||
   padding:       14px;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.lf_chart {
 | 
					 | 
				
			||||||
    margin: 1em;
 | 
					 | 
				
			||||||
    padding: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#error_types ul {
 | 
					 | 
				
			||||||
  background: #f0f0f0;
 | 
					 | 
				
			||||||
  font-size: 12px;
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
  margin: 1em;
 | 
					 | 
				
			||||||
  padding: 0.25em inherit 0.25em inherit;
 | 
					 | 
				
			||||||
  max-height: 8em;
 | 
					 | 
				
			||||||
  overflow: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
li {
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.contentDiv {
 | 
					 | 
				
			||||||
   margin: 1em 0.25in;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.ct-point {
 | 
					 | 
				
			||||||
  stroke-width: 6px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.o_el {
 | 
					 | 
				
			||||||
   display:       inline-block;
 | 
					 | 
				
			||||||
   width:         100px;
 | 
					 | 
				
			||||||
   height:        230px;
 | 
					 | 
				
			||||||
   border:        none;
 | 
					 | 
				
			||||||
   margin:        1px  1px 16px 1px;
 | 
					 | 
				
			||||||
   padding:       10px 10px 0 10px;
 | 
					 | 
				
			||||||
   background:    #eee;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.bar_el {
 | 
					 | 
				
			||||||
   display:    block;
 | 
					 | 
				
			||||||
   background: green;
 | 
					 | 
				
			||||||
   border:     none;
 | 
					 | 
				
			||||||
   min-height: 1px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   margin:     0 0 5px 0;
 | 
					 | 
				
			||||||
   padding:    0;
 | 
					 | 
				
			||||||
   text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.label_el {
 | 
					 | 
				
			||||||
   color:         black;
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   font-size:     14px;
 | 
					 | 
				
			||||||
   font-family:   Arial,Helvetica,sans-serif,mono;
 | 
					 | 
				
			||||||
   margin:        1px;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   width:         inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.value_el {
 | 
					 | 
				
			||||||
   font-family:   Arial,Helvetica,sans-serif,mono;
 | 
					 | 
				
			||||||
   color:         black;
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   font-size:     14px;
 | 
					 | 
				
			||||||
   margin:        0 auto;
 | 
					 | 
				
			||||||
   padding:       none;
 | 
					 | 
				
			||||||
   border:        none;
 | 
					 | 
				
			||||||
   background:    white;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   width:         auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.value_el>span {
 | 
					 | 
				
			||||||
  background: #f0f0f0a0;
 | 
					 | 
				
			||||||
  border: 1px solid #f0f0f0a0;
 | 
					 | 
				
			||||||
  border-radius: 5px;
 | 
					 | 
				
			||||||
  padding: 1px;
 | 
					 | 
				
			||||||
  min-width: 2em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.error {
 | 
					 | 
				
			||||||
   color: red;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media only screen {
 | 
					 | 
				
			||||||
.hideFromPrint { }
 | 
					 | 
				
			||||||
.hideFromScreen { display:none; }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@media only print {
 | 
					 | 
				
			||||||
.hideFromScreen { }
 | 
					 | 
				
			||||||
.hideFromPrint { display:none; }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* these styles will get overridden by custom.css */
 | 
					 | 
				
			||||||
.TitleFontScreen {
 | 
					 | 
				
			||||||
   margin-left:auto;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   font-size: 50px;
 | 
					 | 
				
			||||||
   padding-top: 1em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFontPrint {
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   margin-left:0px;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   font-size: 50px;
 | 
					 | 
				
			||||||
   padding-top: 20px;
 | 
					 | 
				
			||||||
   padding-left: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFontPrintSub {
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   margin-left:0px;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   /*font-size: 20px; Let 'h3', etc control this */
 | 
					 | 
				
			||||||
   padding-top: 0px;
 | 
					 | 
				
			||||||
   padding-left: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.HeaderFont {}
 | 
					 | 
				
			||||||
.TableFont {}
 | 
					 | 
				
			||||||
.TableBorder {}
 | 
					 | 
				
			||||||
.ImgStyle {}
 | 
					 | 
				
			||||||
div.Section h1, div.Section h2 {
 | 
					 | 
				
			||||||
   margin: 0 0 0 0em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.HeaderStyle h1, div.HeaderStyle h2 {
 | 
					 | 
				
			||||||
   text-align: left;
 | 
					 | 
				
			||||||
   margin: 0 0 0 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.Section {
 | 
					 | 
				
			||||||
   padding 5px;
 | 
					 | 
				
			||||||
   position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.Section img {
 | 
					 | 
				
			||||||
   margin: 0;
 | 
					 | 
				
			||||||
   padding: 0;
 | 
					 | 
				
			||||||
   position: relative;
 | 
					 | 
				
			||||||
   top: 50%;
 | 
					 | 
				
			||||||
   transform: translateY(-50%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle {
 | 
					 | 
				
			||||||
   width: 100%;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
   border: 0 none;
 | 
					 | 
				
			||||||
   border-top: 2px solid #2A5B29;
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   font-size: 12px;
 | 
					 | 
				
			||||||
   margin-top: 2em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle img {
 | 
					 | 
				
			||||||
   width: auto;
 | 
					 | 
				
			||||||
   height: auto;
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle span.Gradient {
 | 
					 | 
				
			||||||
   background: white;
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   display: inline-block;  
 | 
					 | 
				
			||||||
   height: 30px;
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   padding-top: 22px;
 | 
					 | 
				
			||||||
   padding-bottom: 20px;
 | 
					 | 
				
			||||||
   padding-left: 2em;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
   max-width:80%;
 | 
					 | 
				
			||||||
   float:left;
 | 
					 | 
				
			||||||
   width:50%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.FooterStyle a, .FooterStyle a:visited {
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   font-size: 12px;
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   height: 30px;
 | 
					 | 
				
			||||||
   margin: 0;
 | 
					 | 
				
			||||||
   padding: 0;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle a.LogoImgLink {
 | 
					 | 
				
			||||||
   display: inline-block;
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
   float: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
a .LogoImgLink {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
a.LogoImgLink img {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 30 KiB  | 
| 
		 Before Width: | Height: | Size: 8.9 KiB  | 
| 
		 Before Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 766 B  | 
| 
		 Before Width: | Height: | Size: 9.5 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB  | 
| 
		 Before Width: | Height: | Size: 9.0 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 26 KiB  | 
| 
		 Before Width: | Height: | Size: 28 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB  | 
@@ -1,48 +0,0 @@
 | 
				
			|||||||
"Endpoint RX Packet Loss Percentage",
 | 
					 | 
				
			||||||
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 2. 
		
	 | 
@@ -1,3 +0,0 @@
 | 
				
			|||||||
"Latency vs Loops",
 | 
					 | 
				
			||||||
"loop-1",
 | 
					 | 
				
			||||||
12902
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 3. 
		
	 | 
@@ -1,3 +0,0 @@
 | 
				
			|||||||
"RX Pps vs Loops",
 | 
					 | 
				
			||||||
"loop-1",
 | 
					 | 
				
			||||||
9.54248
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 3. 
		
	 | 
@@ -1,59 +0,0 @@
 | 
				
			|||||||
"Realtime Throughput",
 | 
					 | 
				
			||||||
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",
 | 
					 | 
				
			||||||
"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:29.442 UTC",1.75003,"2021-06-14T06:18:29.442 UTC",0,"2021-06-14T06:18:29.442 UTC",1.75003,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:31.174 UTC",1.75003,"2021-06-14T06:18:31.174 UTC",1.80106,"2021-06-14T06:18:31.174 UTC",3.55109,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:32.316 UTC",2.87806,"2021-06-14T06:18:32.316 UTC",5.20833,"2021-06-14T06:18:32.316 UTC",8.08638,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:33.426 UTC",3.2864,"2021-06-14T06:18:33.426 UTC",3.45554,"2021-06-14T06:18:33.426 UTC",6.74194,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:34.560 UTC",4.04095,"2021-06-14T06:18:34.560 UTC",1.26318,"2021-06-14T06:18:34.560 UTC",5.30413,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:36.404 UTC",4.73456,"2021-06-14T06:18:36.404 UTC",0.31271,"2021-06-14T06:18:36.404 UTC",5.04727,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:37.534 UTC",3.89843,"2021-06-14T06:18:37.534 UTC",4.1251,"2021-06-14T06:18:37.534 UTC",8.02353,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:38.614 UTC",4.17425,"2021-06-14T06:18:38.614 UTC",7.22493,"2021-06-14T06:18:38.614 UTC",11.39918,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:39.720 UTC",4.03886,"2021-06-14T06:18:39.720 UTC",4.27919,"2021-06-14T06:18:39.720 UTC",8.31805,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:40.835 UTC",4.41466,"2021-06-14T06:18:40.835 UTC",4.67455,"2021-06-14T06:18:40.835 UTC",9.0892,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:41.944 UTC",3.85986,"2021-06-14T06:18:41.944 UTC",1.21643,"2021-06-14T06:18:41.944 UTC",5.07629,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:43.911 UTC",6.43784,"2021-06-14T06:18:43.911 UTC",0.68502,"2021-06-14T06:18:43.911 UTC",7.12286,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:45.104 UTC",10.06896,"2021-06-14T06:18:45.104 UTC",2.25064,"2021-06-14T06:18:45.104 UTC",12.3196,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:46.305 UTC",19.0978,"2021-06-14T06:18:46.305 UTC",4.0045,"2021-06-14T06:18:46.305 UTC",23.1023,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:48.754 UTC",36.90406,"2021-06-14T06:18:48.754 UTC",4.86103,"2021-06-14T06:18:48.754 UTC",41.76509,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:49.929 UTC",53.73509,"2021-06-14T06:18:49.929 UTC",5.78265,"2021-06-14T06:18:49.929 UTC",59.51774,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:51.049 UTC",66.41366,"2021-06-14T06:18:51.049 UTC",7.63314,"2021-06-14T06:18:51.049 UTC",74.0468,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:52.194 UTC",84.9243,"2021-06-14T06:18:52.194 UTC",9.92113,"2021-06-14T06:18:52.194 UTC",94.84543,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:54.399 UTC",96.77401,"2021-06-14T06:18:54.399 UTC",9.92113,"2021-06-14T06:18:54.399 UTC",106.69514,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:55.568 UTC",94.12947,"2021-06-14T06:18:55.568 UTC",7.71467,"2021-06-14T06:18:55.568 UTC",101.84414,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:56.709 UTC",96.54569,"2021-06-14T06:18:56.709 UTC",8.34182,"2021-06-14T06:18:56.709 UTC",104.8875,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:57.866 UTC",98.07408,"2021-06-14T06:18:57.866 UTC",8.86503,"2021-06-14T06:18:57.866 UTC",106.93911,
 | 
					 | 
				
			||||||
"2021-06-14T06:18:59.826 UTC",94.74527,"2021-06-14T06:18:59.826 UTC",7.48923,"2021-06-14T06:18:59.826 UTC",102.2345,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:01.015 UTC",94.41135,"2021-06-14T06:19:01.015 UTC",7.34423,"2021-06-14T06:19:01.015 UTC",101.75558,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:02.206 UTC",95.25536,"2021-06-14T06:19:02.206 UTC",8.33255,"2021-06-14T06:19:02.206 UTC",103.58791,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:03.387 UTC",97.57287,"2021-06-14T06:19:03.387 UTC",8.50956,"2021-06-14T06:19:03.387 UTC",106.08243,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:05.376 UTC",99.95112,"2021-06-14T06:19:05.376 UTC",5.75767,"2021-06-14T06:19:05.376 UTC",105.70879,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:06.590 UTC",92.26879,"2021-06-14T06:19:06.590 UTC",4.72484,"2021-06-14T06:19:06.590 UTC",96.99363,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:07.743 UTC",86.53777,"2021-06-14T06:19:07.743 UTC",4.7272,"2021-06-14T06:19:07.743 UTC",91.26497,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:08.978 UTC",84.74502,"2021-06-14T06:19:08.978 UTC",4.58302,"2021-06-14T06:19:08.978 UTC",89.32804,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:10.756 UTC",87.24463,"2021-06-14T06:19:10.756 UTC",4.58302,"2021-06-14T06:19:10.756 UTC",91.82764,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:11.916 UTC",92.16941,"2021-06-14T06:19:11.916 UTC",3.65123,"2021-06-14T06:19:11.916 UTC",95.82064,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:13.041 UTC",91.02048,"2021-06-14T06:19:13.041 UTC",3.49271,"2021-06-14T06:19:13.041 UTC",94.51319,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:14.173 UTC",87.2426,"2021-06-14T06:19:14.173 UTC",2.12289,"2021-06-14T06:19:14.173 UTC",89.36549,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:16.022 UTC",86.80179,"2021-06-14T06:19:16.022 UTC",1.62499,"2021-06-14T06:19:16.022 UTC",88.42678,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:17.204 UTC",86.8341,"2021-06-14T06:19:17.204 UTC",1.67498,"2021-06-14T06:19:17.204 UTC",88.50908,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:18.409 UTC",86.3232,"2021-06-14T06:19:18.409 UTC",1.92374,"2021-06-14T06:19:18.409 UTC",88.24694,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:19.624 UTC",84.41218,"2021-06-14T06:19:19.624 UTC",2.04373,"2021-06-14T06:19:19.624 UTC",86.45591,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:21.316 UTC",86.27471,"2021-06-14T06:19:21.316 UTC",2.71882,"2021-06-14T06:19:21.316 UTC",88.99353,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:22.478 UTC",83.51591,"2021-06-14T06:19:22.478 UTC",2.0343,"2021-06-14T06:19:22.478 UTC",85.55021,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:23.613 UTC",84.26147,"2021-06-14T06:19:23.613 UTC",0.70839,"2021-06-14T06:19:23.613 UTC",84.96986,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:24.737 UTC",87.03975,"2021-06-14T06:19:24.737 UTC",0.80498,"2021-06-14T06:19:24.737 UTC",87.84473,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:26.585 UTC",86.71005,"2021-06-14T06:19:26.585 UTC",0.80498,"2021-06-14T06:19:26.585 UTC",87.51503,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:27.763 UTC",86.6069,"2021-06-14T06:19:27.763 UTC",1.32252,"2021-06-14T06:19:27.763 UTC",87.92942,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:28.944 UTC",84.86319,"2021-06-14T06:19:28.944 UTC",2.06289,"2021-06-14T06:19:28.944 UTC",86.92608,
 | 
					 | 
				
			||||||
"2021-06-14T06:19:30.067 UTC",82.69794,"2021-06-14T06:19:30.067 UTC",2.44029,"2021-06-14T06:19:30.067 UTC",85.13823,
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 2. 
		
	 | 
@@ -1,48 +0,0 @@
 | 
				
			|||||||
"Rx Errors",
 | 
					 | 
				
			||||||
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Errors",
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
 | 
					 | 
				
			||||||
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 2. 
		
	 | 
@@ -1,3 +0,0 @@
 | 
				
			|||||||
"Throughput vs Loops",
 | 
					 | 
				
			||||||
"loop-1",
 | 
					 | 
				
			||||||
71.56142
 | 
					 | 
				
			||||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 3. 
		
	 | 
@@ -1,11 +0,0 @@
 | 
				
			|||||||
/* file reserved for customer styling of reports */
 | 
					 | 
				
			||||||
/* rename to custom.css to take effect */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFont {}
 | 
					 | 
				
			||||||
.HeaderFont {}
 | 
					 | 
				
			||||||
.TableFont {}
 | 
					 | 
				
			||||||
.TableBorder {}
 | 
					 | 
				
			||||||
.ImgStyle {}
 | 
					 | 
				
			||||||
.HeaderStyle {}
 | 
					 | 
				
			||||||
.FooterStyle {}
 | 
					 | 
				
			||||||
/* eof */
 | 
					 | 
				
			||||||
@@ -1,495 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
  <head>
 | 
					 | 
				
			||||||
    <meta charset='utf-8' />
 | 
					 | 
				
			||||||
    <meta name='viewport' content='width=device-width, initial-scale=1' />
 | 
					 | 
				
			||||||
    <title>Dataplane Test</title>    <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
 | 
					 | 
				
			||||||
    <link rel='stylesheet' href='report.css' />
 | 
					 | 
				
			||||||
    <link rel='stylesheet' href='custom.css' />
 | 
					 | 
				
			||||||
    <style>
 | 
					 | 
				
			||||||
     pre {
 | 
					 | 
				
			||||||
        overflow: auto;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
     img {
 | 
					 | 
				
			||||||
        width: 100%;
 | 
					 | 
				
			||||||
        max-width: 8in;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
    </style>
 | 
					 | 
				
			||||||
  </head>
 | 
					 | 
				
			||||||
  <body>
 | 
					 | 
				
			||||||
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
 | 
					 | 
				
			||||||
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
 | 
					 | 
				
			||||||
<div class='HeaderStyle'>
 | 
					 | 
				
			||||||
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:35 PDT 2021</h4></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</div><!-- end section -->
 | 
					 | 
				
			||||||
<div class='contentDiv'>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th colspan="2">
 | 
					 | 
				
			||||||
          Test Setup Information
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Device Under Test
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          <table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Name
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                basic-ext-03-03
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Software Version
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410-1.1.0.tar.gz
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Hardware Version
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Model Number
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Serial Number
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                903cb3944857
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                SSIDs
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>ssid_wpa2_2g </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Passwords
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>something </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                BSSIDs
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>90:3c:b3:94:48:58 </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Notes
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                [BLANK]
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
          </table>
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <h2 align="left">
 | 
					 | 
				
			||||||
      Objective
 | 
					 | 
				
			||||||
    </h2>
 | 
					 | 
				
			||||||
    <p align="left" width="900">
 | 
					 | 
				
			||||||
      The Candela WiFi data plane test is designed to conduct an automatic 
 | 
					 | 
				
			||||||
      testing of all combinations of station types, MIMO types, Channel 
 | 
					 | 
				
			||||||
      Bandwidths, Traffic types, Traffic direction, Frame sizes etc… It will 
 | 
					 | 
				
			||||||
      run a quick throughput test at every combination of these test variables 
 | 
					 | 
				
			||||||
      and plot all the results in a set of charts to compare performance. The 
 | 
					 | 
				
			||||||
      user is allowed to define an intended load as a percentage of the max 
 | 
					 | 
				
			||||||
      theoretical PHY rate for every test combination. The expected behavior 
 | 
					 | 
				
			||||||
      is that for every test combination the achieved throughput should be at 
 | 
					 | 
				
			||||||
      least 70% of the theoretical max PHY rate under ideal test conditions. 
 | 
					 | 
				
			||||||
      This test provides a way to go through hundreds of combinations in a 
 | 
					 | 
				
			||||||
      fully automated fashion and very easily find patterns and problem areas 
 | 
					 | 
				
			||||||
      which can be further debugged using more specific testing.
 | 
					 | 
				
			||||||
    </p>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Throughput for each different traffic type.  Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation.  For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble.  Other datasets report 'goodput' for the protocol.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='kpi-chart-0-print.png' alt='Throughput vs Loops'><br/>
 | 
					 | 
				
			||||||
<img src='chart-1-print.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Pps throughput for each different traffic type.  The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-2-print.png' alt='RX Pps vs Loops'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Latency for each different traffic type.  If opposite-direction traffic is non-zero, then round-trip time will be reported.  Otherwise, one-way latency will be reported.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-3-print.png' alt='Latency vs Loops'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test.  Goodput does not include Ethernet, IP, UDP/TCP header overhead.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-4-print.png' alt='Realtime Throughput'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <h3>
 | 
					 | 
				
			||||||
      Test Information
 | 
					 | 
				
			||||||
    </h3>
 | 
					 | 
				
			||||||
    <table>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th>
 | 
					 | 
				
			||||||
          Message
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Starting dataplane test with: 1 iterations.
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><br/><table border='1' style='font-size:8px'>
 | 
					 | 
				
			||||||
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
 | 
					 | 
				
			||||||
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Brief csv report, may be imported into third-party tools.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><br/><table border='1' >
 | 
					 | 
				
			||||||
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
 | 
					 | 
				
			||||||
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps.  If there is full packet loss, then this will not report any loss since there will be no gap to detect.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-5-print.png' alt='Endpoint RX Packet Loss Percentage'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Error Graph shows occurances of packet errors.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-6-print.png' alt='Rx Errors'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th colspan="2">
 | 
					 | 
				
			||||||
          Test configuration and LANforge software version
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Path Loss
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          10
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Requested Speed
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          85%
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Requested Opposite Speed
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          85%
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Multi-Conn
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Armageddon Multi-Pkt
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1000
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          ToS
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Duration:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1 min (1 m)
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Settle Time:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1 sec (1 s)
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Send Buffer Size:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          OS Default
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Receive Buffer Size:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          OS Default
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Channels
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Spatial Streams
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Bandwidth
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuator-1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuation-1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+50..950
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuator-2
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuation-2
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+50..950
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Turntable Chamber
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Turntable Angles
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+45..359
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Modes
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Auto
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Packet Size
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1024
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Security
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Traffic Type
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          TCP
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Direction
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          DUT Transmit
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Upstream Port
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          WiFi Port
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource: 
 | 
					 | 
				
			||||||
          lf0350-9540
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Outer Loop is Attenuation
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          false
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Show Events
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          true
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Auto Save Report
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          true
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Build Date
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Wed 26 May 2021 11:06:38 AM PDT
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Build Version
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          5.4.3
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Git Version
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
 | 
					 | 
				
			||||||
</div><!-- end content-div -->
 | 
					 | 
				
			||||||
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
 | 
					 | 
				
			||||||
  <a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
 | 
					 | 
				
			||||||
</span>
 | 
					 | 
				
			||||||
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
 | 
					 | 
				
			||||||
</div><br/>
 | 
					 | 
				
			||||||
  </body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,500 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
  <head>
 | 
					 | 
				
			||||||
    <meta charset='utf-8' />
 | 
					 | 
				
			||||||
    <meta name='viewport' content='width=device-width, initial-scale=1' />
 | 
					 | 
				
			||||||
    <title>Dataplane Test</title>    <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
 | 
					 | 
				
			||||||
    <link rel='stylesheet' href='report.css' />
 | 
					 | 
				
			||||||
    <link rel='stylesheet' href='custom.css' />
 | 
					 | 
				
			||||||
    <style>
 | 
					 | 
				
			||||||
     pre {
 | 
					 | 
				
			||||||
        overflow: auto;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
     img {
 | 
					 | 
				
			||||||
        width: 100%;
 | 
					 | 
				
			||||||
        max-width: 8in;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
    </style>
 | 
					 | 
				
			||||||
  </head>
 | 
					 | 
				
			||||||
  <body>
 | 
					 | 
				
			||||||
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
 | 
					 | 
				
			||||||
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
 | 
					 | 
				
			||||||
<div class='HeaderStyle'>
 | 
					 | 
				
			||||||
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:31 PDT 2021</h4></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</div><!-- end section -->
 | 
					 | 
				
			||||||
<div class='contentDiv'>
 | 
					 | 
				
			||||||
<a href='dataplane-report-2021-06-13-11-18-08.pdf'>PDF Report</a><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th colspan="2">
 | 
					 | 
				
			||||||
          Test Setup Information
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Device Under Test
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          <table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Name
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                basic-ext-03-03
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Software Version
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410-1.1.0.tar.gz
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Hardware Version
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Model Number
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                ecw5410
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Serial Number
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                903cb3944857
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                SSIDs
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>ssid_wpa2_2g </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Passwords
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>something </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                BSSIDs
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                <pre>90:3c:b3:94:48:58 </pre>
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
            <tr>
 | 
					 | 
				
			||||||
              <td>
 | 
					 | 
				
			||||||
                Notes
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
              <td colspan="3">
 | 
					 | 
				
			||||||
                [BLANK]
 | 
					 | 
				
			||||||
              </td>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
          </table>
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <h2 align="left">
 | 
					 | 
				
			||||||
      Objective
 | 
					 | 
				
			||||||
    </h2>
 | 
					 | 
				
			||||||
    <p align="left" width="900">
 | 
					 | 
				
			||||||
      The Candela WiFi data plane test is designed to conduct an automatic 
 | 
					 | 
				
			||||||
      testing of all combinations of station types, MIMO types, Channel 
 | 
					 | 
				
			||||||
      Bandwidths, Traffic types, Traffic direction, Frame sizes etc… It will 
 | 
					 | 
				
			||||||
      run a quick throughput test at every combination of these test variables 
 | 
					 | 
				
			||||||
      and plot all the results in a set of charts to compare performance. The 
 | 
					 | 
				
			||||||
      user is allowed to define an intended load as a percentage of the max 
 | 
					 | 
				
			||||||
      theoretical PHY rate for every test combination. The expected behavior 
 | 
					 | 
				
			||||||
      is that for every test combination the achieved throughput should be at 
 | 
					 | 
				
			||||||
      least 70% of the theoretical max PHY rate under ideal test conditions. 
 | 
					 | 
				
			||||||
      This test provides a way to go through hundreds of combinations in a 
 | 
					 | 
				
			||||||
      fully automated fashion and very easily find patterns and problem areas 
 | 
					 | 
				
			||||||
      which can be further debugged using more specific testing.
 | 
					 | 
				
			||||||
    </p>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Throughput for each different traffic type.  Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation.  For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble.  Other datasets report 'goodput' for the protocol.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='kpi-chart-0.png' alt='Throughput vs Loops'><br/>
 | 
					 | 
				
			||||||
<img src='chart-1.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Pps throughput for each different traffic type.  The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-2.png' alt='RX Pps vs Loops'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Latency for each different traffic type.  If opposite-direction traffic is non-zero, then round-trip time will be reported.  Otherwise, one-way latency will be reported.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-3.png' alt='Latency vs Loops'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test.  Goodput does not include Ethernet, IP, UDP/TCP header overhead.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-4.png' alt='Realtime Throughput'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <h3>
 | 
					 | 
				
			||||||
      Test Information
 | 
					 | 
				
			||||||
    </h3>
 | 
					 | 
				
			||||||
    <table>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th>
 | 
					 | 
				
			||||||
          Message
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Starting dataplane test with: 1 iterations.
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><br/><table border='1' style='font-size:8px'>
 | 
					 | 
				
			||||||
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
 | 
					 | 
				
			||||||
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
<br/><a href='text-tab-0.csv'>TAB Delineated Data for Table Above</a>
 | 
					 | 
				
			||||||
<br/><a href='text-csv-0.csv'>CSV Data for Table Above</a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Brief csv report, may be imported into third-party tools.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><br/><table border='1' >
 | 
					 | 
				
			||||||
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
 | 
					 | 
				
			||||||
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
<br/><a href='text-tab-1.csv'>TAB Delineated Data for Table Above</a>
 | 
					 | 
				
			||||||
<br/><a href='text-csv-1.csv'>CSV Data for Table Above</a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps.  If there is full packet loss, then this will not report any loss since there will be no gap to detect.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-5.png' alt='Endpoint RX Packet Loss Percentage'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/><br/>Error Graph shows occurances of packet errors.
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
 | 
					 | 
				
			||||||
<img src='chart-6.png' alt='Rx Errors'><br/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <th colspan="2">
 | 
					 | 
				
			||||||
          Test configuration and LANforge software version
 | 
					 | 
				
			||||||
        </th>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Path Loss
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          10
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Requested Speed
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          85%
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Requested Opposite Speed
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          85%
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Multi-Conn
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Armageddon Multi-Pkt
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1000
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          ToS
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Duration:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1 min (1 m)
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Settle Time:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1 sec (1 s)
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Send Buffer Size:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          OS Default
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Receive Buffer Size:
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          OS Default
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Channels
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Spatial Streams
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Bandwidth
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuator-1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuation-1
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+50..950
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuator-2
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Attenuation-2
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+50..950
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Turntable Chamber
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Turntable Angles
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          0..+45..359
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Modes
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Auto
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Packet Size
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1024
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Security
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          AUTO
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Traffic Type
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          TCP
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Direction
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          DUT Transmit
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Upstream Port
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          WiFi Port
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource: 
 | 
					 | 
				
			||||||
          lf0350-9540
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Outer Loop is Attenuation
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          false
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Show Events
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          true
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Auto Save Report
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          true
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Build Date
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Wed 26 May 2021 11:06:38 AM PDT
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Build Version
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          5.4.3
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
      <tr>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          Git Version
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td>
 | 
					 | 
				
			||||||
          899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
      </tr>
 | 
					 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br/>
 | 
					 | 
				
			||||||
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
 | 
					 | 
				
			||||||
</div><!-- end content-div -->
 | 
					 | 
				
			||||||
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
 | 
					 | 
				
			||||||
  <a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
 | 
					 | 
				
			||||||
</span>
 | 
					 | 
				
			||||||
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
 | 
					 | 
				
			||||||
</div><br/>
 | 
					 | 
				
			||||||
  </body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 8.6 KiB  | 
| 
		 Before Width: | Height: | Size: 9.5 KiB  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Date	test-rig	dut-hw-version	dut-sw-version	dut-model-num	dut-serial-num	test-priority	test-id	short-description	pass/fail	numeric-score	test details	Units	Graph-Group	Subtest-Pass	Subtest-Fail
 | 
					 | 
				
			||||||
1623651570763		ecw5410	ecw5410-1.1.0.tar.gz	ecw5410	903cb3944857	90	Dataplane	TCP-DUT-TX-1024pkt-sz		69.90298	Throughput at specified settings.	Mbps	Throughput	0	0
 | 
					 | 
				
			||||||
		
		
			
  | 
| 
		 Before Width: | Height: | Size: 8.9 KiB  | 
@@ -1,256 +0,0 @@
 | 
				
			|||||||
html, body,div {
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
  padding:0;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
h1,h2,h3,h4 {
 | 
					 | 
				
			||||||
   padding: 0em;
 | 
					 | 
				
			||||||
   line-height: 1.5;
 | 
					 | 
				
			||||||
   text-align: left;
 | 
					 | 
				
			||||||
   color: rgb(42,91,41);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@font-face {
 | 
					 | 
				
			||||||
   font-family: CenturyGothic;
 | 
					 | 
				
			||||||
   src: url("CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("images/CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("/images/CenturyGothic.woff"),
 | 
					 | 
				
			||||||
        url("http://www.candelatech.com/images/CenturyGothic.woff");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
body,h1,h2,h3,h4 {
 | 
					 | 
				
			||||||
   font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
h1 { font-size: 30px;}
 | 
					 | 
				
			||||||
h2 { font-size: 24px;}
 | 
					 | 
				
			||||||
h3 { font-size: 18px;}
 | 
					 | 
				
			||||||
h4 { font-size: 14px;}
 | 
					 | 
				
			||||||
li,pre,tt {
 | 
					 | 
				
			||||||
  text-align: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
pre {
 | 
					 | 
				
			||||||
  font-size: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table {
 | 
					 | 
				
			||||||
   border-collapse: collapse;
 | 
					 | 
				
			||||||
   background: #e0e0e0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table, td, th {
 | 
					 | 
				
			||||||
   border: 1px solid gray;
 | 
					 | 
				
			||||||
   padding 4px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
table.noborder, table.noborder td, table.noborder th  {
 | 
					 | 
				
			||||||
   border: 0 none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
td {
 | 
					 | 
				
			||||||
   background: white;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
td.ar {
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
th {
 | 
					 | 
				
			||||||
   color: rgb(42,91,41);
 | 
					 | 
				
			||||||
   text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#lf_title {
 | 
					 | 
				
			||||||
   text-align:          center;
 | 
					 | 
				
			||||||
   background-image:    url(candela_swirl_small-72h.png);
 | 
					 | 
				
			||||||
   background-position: right;
 | 
					 | 
				
			||||||
   background-repeat:   no-repeat;
 | 
					 | 
				
			||||||
   height:              90px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#new_chart {
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   height:        250px;
 | 
					 | 
				
			||||||
   min-width:     200px;
 | 
					 | 
				
			||||||
   width:         80%;
 | 
					 | 
				
			||||||
   border:        1px solid black;
 | 
					 | 
				
			||||||
   margin:        14px auto;
 | 
					 | 
				
			||||||
   padding:       14px;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.lf_chart {
 | 
					 | 
				
			||||||
    margin: 1em;
 | 
					 | 
				
			||||||
    padding: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#error_types ul {
 | 
					 | 
				
			||||||
  background: #f0f0f0;
 | 
					 | 
				
			||||||
  font-size: 12px;
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
  margin: 1em;
 | 
					 | 
				
			||||||
  padding: 0.25em inherit 0.25em inherit;
 | 
					 | 
				
			||||||
  max-height: 8em;
 | 
					 | 
				
			||||||
  overflow: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
li {
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.contentDiv {
 | 
					 | 
				
			||||||
   margin: 1em 0.25in;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.ct-point {
 | 
					 | 
				
			||||||
  stroke-width: 6px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.o_el {
 | 
					 | 
				
			||||||
   display:       inline-block;
 | 
					 | 
				
			||||||
   width:         100px;
 | 
					 | 
				
			||||||
   height:        230px;
 | 
					 | 
				
			||||||
   border:        none;
 | 
					 | 
				
			||||||
   margin:        1px  1px 16px 1px;
 | 
					 | 
				
			||||||
   padding:       10px 10px 0 10px;
 | 
					 | 
				
			||||||
   background:    #eee;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.bar_el {
 | 
					 | 
				
			||||||
   display:    block;
 | 
					 | 
				
			||||||
   background: green;
 | 
					 | 
				
			||||||
   border:     none;
 | 
					 | 
				
			||||||
   min-height: 1px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   margin:     0 0 5px 0;
 | 
					 | 
				
			||||||
   padding:    0;
 | 
					 | 
				
			||||||
   text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.label_el {
 | 
					 | 
				
			||||||
   color:         black;
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   font-size:     14px;
 | 
					 | 
				
			||||||
   font-family:   Arial,Helvetica,sans-serif,mono;
 | 
					 | 
				
			||||||
   margin:        1px;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   width:         inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.value_el {
 | 
					 | 
				
			||||||
   font-family:   Arial,Helvetica,sans-serif,mono;
 | 
					 | 
				
			||||||
   color:         black;
 | 
					 | 
				
			||||||
   display:       block;
 | 
					 | 
				
			||||||
   font-size:     14px;
 | 
					 | 
				
			||||||
   margin:        0 auto;
 | 
					 | 
				
			||||||
   padding:       none;
 | 
					 | 
				
			||||||
   border:        none;
 | 
					 | 
				
			||||||
   background:    white;
 | 
					 | 
				
			||||||
   text-align:    center;
 | 
					 | 
				
			||||||
   vertical-align: bottom;
 | 
					 | 
				
			||||||
   width:         auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.value_el>span {
 | 
					 | 
				
			||||||
  background: #f0f0f0a0;
 | 
					 | 
				
			||||||
  border: 1px solid #f0f0f0a0;
 | 
					 | 
				
			||||||
  border-radius: 5px;
 | 
					 | 
				
			||||||
  padding: 1px;
 | 
					 | 
				
			||||||
  min-width: 2em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.error {
 | 
					 | 
				
			||||||
   color: red;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media only screen {
 | 
					 | 
				
			||||||
.hideFromPrint { }
 | 
					 | 
				
			||||||
.hideFromScreen { display:none; }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@media only print {
 | 
					 | 
				
			||||||
.hideFromScreen { }
 | 
					 | 
				
			||||||
.hideFromPrint { display:none; }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* these styles will get overridden by custom.css */
 | 
					 | 
				
			||||||
.TitleFontScreen {
 | 
					 | 
				
			||||||
   margin-left:auto;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   font-size: 50px;
 | 
					 | 
				
			||||||
   padding-top: 1em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFontPrint {
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   margin-left:0px;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   font-size: 50px;
 | 
					 | 
				
			||||||
   padding-top: 20px;
 | 
					 | 
				
			||||||
   padding-left: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.TitleFontPrintSub {
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   margin-left:0px;
 | 
					 | 
				
			||||||
   margin-right:auto;
 | 
					 | 
				
			||||||
   margin-top: 0;
 | 
					 | 
				
			||||||
   margin-bottom: 0;
 | 
					 | 
				
			||||||
   /*font-size: 20px; Let 'h3', etc control this */
 | 
					 | 
				
			||||||
   padding-top: 0px;
 | 
					 | 
				
			||||||
   padding-left: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.HeaderFont {}
 | 
					 | 
				
			||||||
.TableFont {}
 | 
					 | 
				
			||||||
.TableBorder {}
 | 
					 | 
				
			||||||
.ImgStyle {}
 | 
					 | 
				
			||||||
div.Section h1, div.Section h2 {
 | 
					 | 
				
			||||||
   margin: 0 0 0 0em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.HeaderStyle h1, div.HeaderStyle h2 {
 | 
					 | 
				
			||||||
   text-align: left;
 | 
					 | 
				
			||||||
   margin: 0 0 0 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.Section {
 | 
					 | 
				
			||||||
   padding 5px;
 | 
					 | 
				
			||||||
   position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.Section img {
 | 
					 | 
				
			||||||
   margin: 0;
 | 
					 | 
				
			||||||
   padding: 0;
 | 
					 | 
				
			||||||
   position: relative;
 | 
					 | 
				
			||||||
   top: 50%;
 | 
					 | 
				
			||||||
   transform: translateY(-50%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle {
 | 
					 | 
				
			||||||
   width: 100%;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
   border: 0 none;
 | 
					 | 
				
			||||||
   border-top: 2px solid #2A5B29;
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   font-size: 12px;
 | 
					 | 
				
			||||||
   margin-top: 2em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle img {
 | 
					 | 
				
			||||||
   width: auto;
 | 
					 | 
				
			||||||
   height: auto;
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle span.Gradient {
 | 
					 | 
				
			||||||
   background: white;
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   display: inline-block;  
 | 
					 | 
				
			||||||
   height: 30px;
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   padding-top: 22px;
 | 
					 | 
				
			||||||
   padding-bottom: 20px;
 | 
					 | 
				
			||||||
   padding-left: 2em;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
   max-width:80%;
 | 
					 | 
				
			||||||
   float:left;
 | 
					 | 
				
			||||||
   width:50%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.FooterStyle a, .FooterStyle a:visited {
 | 
					 | 
				
			||||||
   color: #2A5B29;
 | 
					 | 
				
			||||||
   font-size: 12px;
 | 
					 | 
				
			||||||
   line-height: 1;
 | 
					 | 
				
			||||||
   height: 30px;
 | 
					 | 
				
			||||||
   margin: 0;
 | 
					 | 
				
			||||||
   padding: 0;
 | 
					 | 
				
			||||||
   vertical-align: middle;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
div.FooterStyle a.LogoImgLink {
 | 
					 | 
				
			||||||
   display: inline-block;
 | 
					 | 
				
			||||||
   text-align: right;
 | 
					 | 
				
			||||||
   float: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
a .LogoImgLink {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
a.LogoImgLink img {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 30 KiB  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Channel,Frequency,Security,NSS,Cfg-Mode,Bandwidth,Pkt,Traffic-Type,Direction,Atten,Rotation,Duration,Offered-1m,Rx-Bps,Rx-Bps-1m,Rx-Bps-LL,Rx-Bps-3s,Phy-Rate,Theoretical,Throughput%,RSSI,Tx-Failed,Tx-Failed%,Tx-Rate,Rx-Rate,Rpt-Mode,Rpt-Mode-Brief
 | 
					 | 
				
			||||||
6,2437,WPA2,3,AUTO,20,1024,TCP,DUT-TX,NA,NA,60,75.853 Mbps,69.903 Mbps,71.561 Mbps,75.684 Mbps,83.13 Mbps,1.3 Gbps,NA,NA,-5,0 / 119365,0,156 Mbps,19.5 Mbps,802.11bgn,802.11n
 | 
					 | 
				
			||||||
		
		
			
  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Step Index,Position [Deg],Attenuation [dB],Throughput [Mbps],Beacon RSSI [dBm],Data RSSI [dBm]
 | 
					 | 
				
			||||||
0,NA,0,69.90,0,-5
 | 
					 | 
				
			||||||
		
		
			
  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Channel	Frequency	Security	NSS	Cfg-Mode	Bandwidth	Pkt	Traffic-Type	Direction	Atten	Rotation	Duration	Offered-1m	Rx-Bps	Rx-Bps-1m	Rx-Bps-LL	Rx-Bps-3s	Phy-Rate	Theoretical	Throughput%	RSSI	Tx-Failed	Tx-Failed%	Tx-Rate	Rx-Rate	Rpt-Mode	Rpt-Mode-Brief
 | 
					 | 
				
			||||||
6	2437	WPA2	3	AUTO	20	1024	TCP	DUT-TX	NA	NA	60	75.853 Mbps	69.903 Mbps	71.561 Mbps	75.684 Mbps	83.13 Mbps	1.3 Gbps	NA	NA	-5	0 / 119365	0	156 Mbps	19.5 Mbps	802.11bgn	802.11n
 | 
					 | 
				
			||||||
		
		
			
  | 
@@ -1,2 +0,0 @@
 | 
				
			|||||||
Step Index	Position [Deg]	Attenuation [dB]	Throughput [Mbps]	Beacon RSSI [dBm]	Data RSSI [dBm]
 | 
					 | 
				
			||||||
0	NA	0	69.90	0	-5
 | 
					 | 
				
			||||||
		
		
			
  | 
@@ -1,60 +1,38 @@
 | 
				
			|||||||
"""
 | 
					"""
 | 
				
			||||||
    1.X Testbed Access using ssh tunnel
 | 
					ec420	basic-03
 | 
				
			||||||
    ssh -C -L 8801:lab-ctlr:22 -L 8802:lf1:8080 -L 8803:lf1:22 -L 8804:lf2:8080 -L 8805:lf2:22 -L 3389:lf1:3389 -L 3390:lf2:3389 ubuntu@orch
 | 
					ecw5410	basic-04
 | 
				
			||||||
 | 
					ecw5211		not available in basic
 | 
				
			||||||
 | 
					wf188n	basic-05
 | 
				
			||||||
 | 
					eap102	basic-06
 | 
				
			||||||
 | 
					eap101	basic-02
 | 
				
			||||||
 | 
					wf194c	baisc-08-02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    2.X Testbed Access using ssh tunnel
 | 
					ssh -C -L 8800:lf1:4002 -L 8801:lf1:5901 -L 8802:lf1:8080 -L 8803:lab-ctlr:22 \	    # basic-01
 | 
				
			||||||
 | 
					-L 8720:lf2:4002 -L 8721:lf2:5901 -L 8722:lf2:8080 -L 8723:lab-ctlr:22 \			# basic-02
 | 
				
			||||||
 | 
					-L 8830:lf3:4002 -L 8831:lf3:5901 -L 8832:lf3:8080 -L 8833:lab-ctlr:22 \			# basic-03
 | 
				
			||||||
 | 
					-L 8810:lf4:4002 -L 8811:lf4:5901 -L 8812:lf4:8080 -L 8813:lab-ctlr:22 \			# basic-04
 | 
				
			||||||
 | 
					-L 8850:lf12:4002 -L 8851:lf12:5901 -L 8852:lf12:8080 -L 8853:lab-ctlr4:22 \		# basic-05
 | 
				
			||||||
 | 
					-L 8860:lf13:4002 -L 8861:lf13:5901 -L 8862:lf13:8080 -L 8863:lab-ctlr4:22 \		# basic-06
 | 
				
			||||||
 | 
					-L 8870:lf14:4002 -L 8871:lf14:5901 -L 8872:lf14:8080 -L 8873:lab-ctlr4:22 \		# basic-07
 | 
				
			||||||
 | 
					-L 8880:lf15:4002 -L 8881:lf15:5901 -L 8882:lf15:8080 -L 8883:lab-ctlr4:22 \		# basic-08
 | 
				
			||||||
 | 
					ubuntu@3.130.51.163
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ssh -C -L 8800:lf1:4002 -L 8801:lf1:5901 -L 8802:lf1:8080 -L 8803:lab-ctlr:22 \
 | 
				
			||||||
 | 
					-L 8720:lf2:4002 -L 8721:lf2:5901 -L 8722:lf2:8080 -L 8723:lab-ctlr:22 \
 | 
				
			||||||
 | 
					-L 8830:lf3:4002 -L 8831:lf3:5901 -L 8832:lf3:8080 -L 8833:lab-ctlr:22 \
 | 
				
			||||||
 | 
					-L 8810:lf4:4002 -L 8811:lf4:5901 -L 8812:lf4:8080 -L 8813:lab-ctlr:22 \
 | 
				
			||||||
 | 
					-L 8850:lf12:4002 -L 8851:lf12:5901 -L 8852:lf12:8080 -L 8853:lab-ctlr4:22 \
 | 
				
			||||||
 | 
					-L 8860:lf13:4002 -L 8861:lf13:5901 -L 8862:lf13:8080 -L 8863:lab-ctlr4:22 \
 | 
				
			||||||
 | 
					-L 8870:lf14:4002 -L 8871:lf14:5901 -L 8872:lf14:8080 -L 8873:lab-ctlr4:22 \
 | 
				
			||||||
 | 
					-L 8880:lf15:4002 -L 8881:lf15:5901 -L 8882:lf15:8080 -L 8883:lab-ctlr4:22 \
 | 
				
			||||||
 | 
					ubuntu@3.130.51.163
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONFIGURATION = {
 | 
					CONFIGURATION = {
 | 
				
			||||||
    "advanced-02": {
 | 
					 | 
				
			||||||
        "controller": {
 | 
					 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					 | 
				
			||||||
            'username': 'support@example.com',  # cloud controller Login
 | 
					 | 
				
			||||||
            'password': 'support',  # Cloud Controller Login Password
 | 
					 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',  # Controller version
 | 
					 | 
				
			||||||
            'commit_date': "2021-04-27"  # Controller version sdk, commit date
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        'access_point': [
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                'model': 'eap102',  # AP Model, can be found in ap console using "node" command
 | 
					 | 
				
			||||||
                'mode': 'wifi6',  # wifi5/wifi6   can be found on AP Hardware page on Confluence
 | 
					 | 
				
			||||||
                'serial': '903cb39d6959',  # "node" command has serial_number information
 | 
					 | 
				
			||||||
                'jumphost': True,
 | 
					 | 
				
			||||||
                # True, if you have AP On serial console and not ssh access, False, if you have AP ssh access from the machine
 | 
					 | 
				
			||||||
                'ip': "localhost",
 | 
					 | 
				
			||||||
                # IP Address of System, which has AP Connected to serial cable (if jumphost is True), else -  AP IP Address
 | 
					 | 
				
			||||||
                'username': "lanforge",  # ssh username of system (lab-ctlr/ap)
 | 
					 | 
				
			||||||
                'password': "pumpkin77",  # ssh password for system (lab-ctlr/ap)
 | 
					 | 
				
			||||||
                'port': 8803,  # 22,        # ssh port for system (lab-ctlr/ap)
 | 
					 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP3',  # if jumphost is True, enter the serial console device name
 | 
					 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/dev/eap102-2021-06-25-pending-b6743c3.tar.gz"
 | 
					 | 
				
			||||||
                # Enter the Target AP Version URL for Testing
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        # Traffic generator
 | 
					 | 
				
			||||||
        "traffic_generator": {
 | 
					 | 
				
			||||||
            "name": "lanforge",  # ( lanforge/ perfecto)
 | 
					 | 
				
			||||||
            # Details for LANforge system
 | 
					 | 
				
			||||||
            "details": {
 | 
					 | 
				
			||||||
                "ip": "localhost",  # localhost,
 | 
					 | 
				
			||||||
                "port": 8802,  # 8802,
 | 
					 | 
				
			||||||
                "ssh_port": 8804,
 | 
					 | 
				
			||||||
                "2.4G-Radio": ["wiphy2", "wiphy4"],
 | 
					 | 
				
			||||||
                "5G-Radio": ["wiphy5", "wiphy3"],
 | 
					 | 
				
			||||||
                "AX-Radio": [],
 | 
					 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					 | 
				
			||||||
                "upstream_subnet": "10.28.2.1/24",
 | 
					 | 
				
			||||||
                "uplink": "1.1.eth3",
 | 
					 | 
				
			||||||
                "2.4G-Station-Name": "wlan0",
 | 
					 | 
				
			||||||
                "5G-Station-Name": "wlan0",
 | 
					 | 
				
			||||||
                "AX-Station-Name": "ax"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    "basic-01": {
 | 
					    "basic-01": {
 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
@@ -69,32 +47,32 @@ CONFIGURATION = {
 | 
				
			|||||||
                'mode': 'wifi5',
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
                'serial': '3c2c99f44e77',
 | 
					                'serial': '3c2c99f44e77',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "localhost",  # localhost
 | 
					                'ip': "10.28.3.100",
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "pumpkin77",
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
                'port': 8801,  # 22,
 | 
					                'port': 22,
 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					                'jumphost_tty': '/dev/ttyAP1',
 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/dev/ecw5410-2021-06-16-pending-e8418c0.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/dev/ecw5410-2021-06-25-pending-b6743c3.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
            "name": "lanforge",
 | 
					            "name": "lanforge",
 | 
				
			||||||
            "details": {
 | 
					            "details": {
 | 
				
			||||||
                "ip": "localhost",  # localhost,
 | 
					                "ip": "10.28.3.6",
 | 
				
			||||||
                "port": 8802,  # 8802,
 | 
					                "port": 8080,
 | 
				
			||||||
                "ssh_port": 8803,
 | 
					                "ssh_port": 22,
 | 
				
			||||||
                "2.4G-Radio": ["wiphy0", "wiphy4"],
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
                "5G-Radio": ["wiphy0", "wiphy5"],
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
                "upstream": "1.1.eth2",
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
                "upstream_subnet": "10.28.2.1/24",
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
                "uplink": "1.1.eth3",
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
                "AX-Station-Name": "ax"
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },  # 1.X wifi-5 basic-01
 | 
					    },  # checked   deployed
 | 
				
			||||||
    "basic-02": {
 | 
					    "basic-02": {
 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
@@ -109,35 +87,233 @@ CONFIGURATION = {
 | 
				
			|||||||
                'mode': 'wifi6',
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
                'serial': '34efb6af48db',
 | 
					                'serial': '34efb6af48db',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "localhost",
 | 
					                'ip': "10.28.3.100",
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "pumpkin77",
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
                'port': 8801,
 | 
					                'port': 22,
 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP2',
 | 
					                'jumphost_tty': '/dev/ttyAP2',
 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/eap101/dev/eap101-2021-06-15-pending-39bd8f3.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/eap101/dev/eap101-2021-06-25-pending-b6743c3.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
            "name": "lanforge",
 | 
					            "name": "lanforge",
 | 
				
			||||||
            "details": {
 | 
					            "details": {
 | 
				
			||||||
                "ip": "localhost",
 | 
					                "ip": "10.28.3.8",
 | 
				
			||||||
                "port": 8804,
 | 
					                "port": 8080,
 | 
				
			||||||
                "ssh_port": 8805,
 | 
					                "ssh_port": 22,
 | 
				
			||||||
                "2.4G-Radio": ["wiphy0", "wiphy4"],
 | 
					                "2.4G-Radio": ["wiphy0", "wiphy4"],
 | 
				
			||||||
                "5G-Radio": ["wiphy0", "wiphy5"],
 | 
					                "5G-Radio": ["wiphy0", "wiphy5"],
 | 
				
			||||||
                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
                "upstream": "1.1.eth2",
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
                "upstream_subnet": "10.28.2.1/24",
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
                "uplink": "1.1.eth3",
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
                "2.4G-Station-Name": "sta0",
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
                "5G-Station-Name": "sta1",
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
                "AX-Station-Name": "ax"
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },  # 1.x wifi-6 basic-02
 | 
					    },  # checked   deployed
 | 
				
			||||||
    "ext-03-01": {
 | 
					    "basic-03": {
 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-ext-04.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
 | 
					            'password': 'support',
 | 
				
			||||||
 | 
					            'version': '1.0.0-SNAPSHOT',
 | 
				
			||||||
 | 
					            'commit_date': '2021-03-23'
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'ec420',
 | 
				
			||||||
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
 | 
					                'serial': '001122090801',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "10.28.3.100",
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 22,
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP3',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ec420/trunk/ec420-1.1.0.tar.gz"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "10.28.3.10",
 | 
				
			||||||
 | 
					                "port": 8080,
 | 
				
			||||||
 | 
					                "ssh_port": 22,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked   ---
 | 
				
			||||||
 | 
					    "basic-04": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
 | 
					            'password': 'support',
 | 
				
			||||||
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
 | 
					            'commit_date': "2021-06-01"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'ecw5211',
 | 
				
			||||||
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
 | 
					                'serial': '68215f9d0c1a',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "10.28.3.100",
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 22,
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP5',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5211/trunk/ecw5211-1.1.0.tar.gz"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "10.28.3.12",
 | 
				
			||||||
 | 
					                "port": 8080,
 | 
				
			||||||
 | 
					                "ssh_port": 22,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked   uci
 | 
				
			||||||
 | 
					    "basic-05": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
 | 
					            'password': 'support',
 | 
				
			||||||
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
 | 
					            'commit_date': "2021-06-01"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'wf188n',
 | 
				
			||||||
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
 | 
					                'serial': '0000c1018812',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "10.28.3.103",
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 22,
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP1',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/wf188n/trunk/wf188n-1.1.0.tar.gz"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "10.28.3.28",
 | 
				
			||||||
 | 
					                "port": 8080,
 | 
				
			||||||
 | 
					                "ssh_port": 22,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked   uci
 | 
				
			||||||
 | 
					    "basic-06": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': 'https://sdk-ucentral-2.cicd.lab.wlan.tip.build:16001/api/v1/oauth2',  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': "tip@ucentral.com",
 | 
				
			||||||
 | 
					            'password': 'openwifi',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'eap102',
 | 
				
			||||||
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
 | 
					                'serial': '903cb39d6918',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "localhost",  # 10.28.3.103
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 8863,  # 22
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP2',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/uCentral/edgecore_eap102/20210625-edgecore_eap102-uCentral-trunk-4225122-upgrade.bin"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "localhost",  # 10.28.3.30
 | 
				
			||||||
 | 
					                "port": 8862,  # 8080
 | 
				
			||||||
 | 
					                "ssh_port": 8864,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked   uci
 | 
				
			||||||
 | 
					    "basic-07": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
 | 
					            'password': 'support',
 | 
				
			||||||
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
 | 
					            'commit_date': "2021-06-01"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'eap102',
 | 
				
			||||||
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
 | 
					                'serial': '00037f102014',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "localhost",  # 10.28.3.103
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 8873,  # 22
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP3',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/eap102/trunk/eap102-1.1.0.tar.gz"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "localhost",  # 10.28.3.32
 | 
				
			||||||
 | 
					                "port": 8872,  # 8080
 | 
				
			||||||
 | 
					                "ssh_port": 22,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked   uci
 | 
				
			||||||
 | 
					    "basic-08-01": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
            'username': 'support@example.com',
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
            'password': 'support',
 | 
					            'password': 'support',
 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
@@ -147,37 +323,37 @@ CONFIGURATION = {
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                'model': 'ecw5410',
 | 
					                'model': 'ecw5410',
 | 
				
			||||||
                'mode': 'wifi5',
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
                'serial': '903cb3944857',
 | 
					                'serial': '68215fd2f724',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "192.168.200.80",  # localhost
 | 
					                'ip': "localhost",  # 10.28.3.103
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "lanforge",
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
                'port': 22,  # 22,
 | 
					                'port': 8883,  # 22
 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					                'jumphost_tty': '/dev/ttyAP4',
 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
            "name": "lanforge",
 | 
					            "name": "lanforge",
 | 
				
			||||||
            "details": {
 | 
					            "details": {
 | 
				
			||||||
                "ip": "192.168.200.80",  # localhost,
 | 
					                "ip": "localhost",  # 10.28.3.34
 | 
				
			||||||
                "port": 8080,  # 8802,
 | 
					                "port": 8882,  # 8080
 | 
				
			||||||
                "ssh_port": 22,
 | 
					                "ssh_port": 22,
 | 
				
			||||||
                "2.4G-Radio": ["wiphy0"],
 | 
					                "2.4G-Radio": ["wiphy4"],
 | 
				
			||||||
                "5G-Radio": ["wiphy5"],
 | 
					                "5G-Radio": ["wiphy5"],
 | 
				
			||||||
                "AX-Radio": [],
 | 
					                "AX-Radio": ["wiphy0", "wiphy1", "wiphy2", "wiphy3"],
 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
                "upstream_subnet": "192.168.200.1/24",
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
                "uplink": "1.1.eth2",
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
                "AX-Station-Name": "ax0"
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },  # Anjali    192.168.200.80
 | 
					    },  # checked
 | 
				
			||||||
    "ext-03-02": {
 | 
					    "basic-08-02": {
 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
            'username': 'support@example.com',
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
            'password': 'support',
 | 
					            'password': 'support',
 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
@@ -185,39 +361,80 @@ CONFIGURATION = {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        'access_point': [
 | 
					        'access_point': [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                'model': 'ecw5410',
 | 
					                'model': 'wf194c',
 | 
				
			||||||
                'mode': 'wifi5',
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
                'serial': '903cb394486f',
 | 
					                'serial': '089B4BB2F10C',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "192.168.200.81",  # localhost
 | 
					                'ip': "localhost",  # 10.28.3.103
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "lanforge",
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
                'port': 22,  # 22,
 | 
					                'port': 8883,  # 22
 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					                'jumphost_tty': '/dev/ttyAP5',
 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/wf194c/trunk/wf194c-1.1.0.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
            "name": "lanforge",
 | 
					            "name": "lanforge",
 | 
				
			||||||
            "details": {
 | 
					            "details": {
 | 
				
			||||||
                "ip": "192.168.200.81",  # localhost,
 | 
					                "ip": "localhost",  # 10.28.3.34
 | 
				
			||||||
                "port": 8080,  # 8802,
 | 
					                "port": 8882,  # 8080
 | 
				
			||||||
                "ssh_port": 22,
 | 
					                "ssh_port": 22,
 | 
				
			||||||
                "2.4G-Radio": ["wiphy0"],
 | 
					                "2.4G-Radio": ["wiphy0", "wiphy2"],
 | 
				
			||||||
                "5G-Radio": ["wiphy5"],
 | 
					                "5G-Radio": ["wiphy1", "wiphy3"],
 | 
				
			||||||
                "AX-Radio": [],
 | 
					                "AX-Radio": ["wiphy4", "wiphy5", "wiphy6", "wiphy7"],
 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
                "upstream_subnet": "192.168.200.1/24",
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
                "uplink": "1.1.eth2",
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
                "AX-Station-Name": "ax0"
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "mesh": {
 | 
				
			||||||
 | 
					        "controller": {
 | 
				
			||||||
 | 
					            'url': "http://wlan-portal-svc-digicert.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
 | 
					            'password': 'support',
 | 
				
			||||||
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
 | 
					            'commit_date': "2021-06-01"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        'access_point': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'model': 'eap101',
 | 
				
			||||||
 | 
					                'mode': 'wifi6',
 | 
				
			||||||
 | 
					                'serial': '34efb6af4a7a',
 | 
				
			||||||
 | 
					                'jumphost': True,
 | 
				
			||||||
 | 
					                'ip': "10.28.3.101",  # 10.28.3.103
 | 
				
			||||||
 | 
					                'username': "lanforge",
 | 
				
			||||||
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
 | 
					                'port': 22,  # 22
 | 
				
			||||||
 | 
					                'jumphost_tty': '/dev/ttyAP2',
 | 
				
			||||||
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/eap101/trunk/eap101-1.1.0.tar.gz"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "traffic_generator": {
 | 
				
			||||||
 | 
					            "name": "lanforge",
 | 
				
			||||||
 | 
					            "details": {
 | 
				
			||||||
 | 
					                "ip": "10.28.3.14",  # 10.28.3.34
 | 
				
			||||||
 | 
					                "port": 8080,  # 8080
 | 
				
			||||||
 | 
					                "ssh_port": 22,
 | 
				
			||||||
 | 
					                "2.4G-Radio": ["wiphy0", "wiphy2"],
 | 
				
			||||||
 | 
					                "5G-Radio": ["wiphy1", "wiphy3"],
 | 
				
			||||||
 | 
					                "AX-Radio": ["wiphy4", "wiphy5", "wiphy6", "wiphy7"],
 | 
				
			||||||
 | 
					                "upstream": "1.1.eth2",
 | 
				
			||||||
 | 
					                "upstream_subnet": "10.28.2.1/24",
 | 
				
			||||||
 | 
					                "uplink": "1.1.eth3",
 | 
				
			||||||
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },  # checked
 | 
				
			||||||
    "interop": {
 | 
					    "interop": {
 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
                'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
            'username': 'support@example.com',
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
            'password': 'support',
 | 
					            'password': 'support',
 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					            'version': '1.1.0-SNAPSHOT',
 | 
				
			||||||
@@ -227,14 +444,14 @@ CONFIGURATION = {
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                'model': 'ecw5410',
 | 
					                'model': 'ecw5410',
 | 
				
			||||||
                'mode': 'wifi5',
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
                    'serial': '3c2c99f44e53',
 | 
					                'serial': '68215fd2f78c',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "localhost",
 | 
					                'ip': "localhost",
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "pumpkin77",
 | 
					                'password': "pumpkin77",
 | 
				
			||||||
                    'port': 8803,
 | 
					                'port': 22,
 | 
				
			||||||
                    'jumphost_tty': '/dev/ttyAP4',
 | 
					                'jumphost_tty': '/dev/ttyAP1',
 | 
				
			||||||
                    'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0-rc3.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
@@ -243,94 +460,16 @@ CONFIGURATION = {
 | 
				
			|||||||
                "securityToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw",
 | 
					                "securityToken": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3NzkzZGM0Ni1jZmU4LTQ4ODMtYjhiOS02ZWFlZGU2OTc2MDkifQ.eyJqdGkiOiJjYjRjYjQzYi05Y2FiLTQxNzQtOTYxYi04MDEwNTZkNDM2MzgiLCJleHAiOjAsIm5iZiI6MCwiaWF0IjoxNjExNTk0NzcxLCJpc3MiOiJodHRwczovL2F1dGgyLnBlcmZlY3RvbW9iaWxlLmNvbS9hdXRoL3JlYWxtcy90aXAtcGVyZmVjdG9tb2JpbGUtY29tIiwiYXVkIjoiaHR0cHM6Ly9hdXRoMi5wZXJmZWN0b21vYmlsZS5jb20vYXV0aC9yZWFsbXMvdGlwLXBlcmZlY3RvbW9iaWxlLWNvbSIsInN1YiI6IjdiNTMwYWUwLTg4MTgtNDdiOS04M2YzLTdmYTBmYjBkZGI0ZSIsInR5cCI6Ik9mZmxpbmUiLCJhenAiOiJvZmZsaW5lLXRva2VuLWdlbmVyYXRvciIsIm5vbmNlIjoiZTRmOTY4NjYtZTE3NS00YzM2LWEyODMtZTQwMmI3M2U5NzhlIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYWNkNTQ3MTctNzJhZC00MGU3LWI0ZDctZjlkMTAyNDRkNWZlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJyZXBvcnRpdW0iOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCJ9.SOL-wlZiQ4BoLLfaeIW8QoxJ6xzrgxBjwSiSzkLBPYw",
 | 
				
			||||||
                "perfectoURL": "tip"
 | 
					                "perfectoURL": "tip"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
    },  # Nikita    192.168.200.81
 | 
					        }
 | 
				
			||||||
    "ext-03-03": {
 | 
					 | 
				
			||||||
        "controller": {
 | 
					 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					 | 
				
			||||||
            'username': 'support@example.com',
 | 
					 | 
				
			||||||
            'password': 'support',
 | 
					 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					 | 
				
			||||||
            'commit_date': "2021-06-01"
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
        'access_point': [
 | 
					
 | 
				
			||||||
            {
 | 
					    "basic-ext-03-03": {
 | 
				
			||||||
                'model': 'ecw5410',
 | 
					 | 
				
			||||||
                'mode': 'wifi5',
 | 
					 | 
				
			||||||
                'serial': '903cb3944817',
 | 
					 | 
				
			||||||
                'jumphost': True,
 | 
					 | 
				
			||||||
                'ip': "192.168.200.82",  # localhost
 | 
					 | 
				
			||||||
                'username': "lanforge",
 | 
					 | 
				
			||||||
                'password': "lanforge",
 | 
					 | 
				
			||||||
                'port': 22,  # 22,
 | 
					 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "traffic_generator": {
 | 
					 | 
				
			||||||
            "name": "lanforge",
 | 
					 | 
				
			||||||
            "details": {
 | 
					 | 
				
			||||||
                "ip": "192.168.200.82",  # localhost,
 | 
					 | 
				
			||||||
                "port": 8080,  # 8802,
 | 
					 | 
				
			||||||
                "ssh_port": 22,
 | 
					 | 
				
			||||||
                "2.4G-Radio": ["wiphy0"],
 | 
					 | 
				
			||||||
                "5G-Radio": ["wiphy5"],
 | 
					 | 
				
			||||||
                "AX-Radio": [],
 | 
					 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					 | 
				
			||||||
                "upstream_subnet": "192.168.200.1/24",
 | 
					 | 
				
			||||||
                "uplink": "1.1.eth2",
 | 
					 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					 | 
				
			||||||
                "AX-Station-Name": "ax0"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },  # Mahesh    192.168.200.82
 | 
					 | 
				
			||||||
    "ext-03-04": {
 | 
					 | 
				
			||||||
        "controller": {
 | 
					        "controller": {
 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
				
			||||||
            'username': 'support@example.com',
 | 
					            'username': 'support@example.com',
 | 
				
			||||||
            'password': 'support',
 | 
					            'password': 'support',
 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					            'version': "1.1.0-SNAPSHOT",
 | 
				
			||||||
            'commit_date': "2021-06-01"
 | 
					            'commit_date': "2021-04-27"
 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        'access_point': [
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                'model': 'ecw5410',
 | 
					 | 
				
			||||||
                'mode': 'wifi5',
 | 
					 | 
				
			||||||
                'serial': '903cb3944873',
 | 
					 | 
				
			||||||
                'jumphost': True,
 | 
					 | 
				
			||||||
                'ip': "192.168.200.52",  # localhost
 | 
					 | 
				
			||||||
                'username': "lanforge",
 | 
					 | 
				
			||||||
                'password': "lanforge",
 | 
					 | 
				
			||||||
                'port': 22,  # 22,
 | 
					 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "traffic_generator": {
 | 
					 | 
				
			||||||
            "name": "lanforge",
 | 
					 | 
				
			||||||
            "details": {
 | 
					 | 
				
			||||||
                "ip": "192.168.52.100",  # localhost,
 | 
					 | 
				
			||||||
                "port": 8080,  # 8802,
 | 
					 | 
				
			||||||
                "ssh_port": 22,
 | 
					 | 
				
			||||||
                "2.4G-Radio": ["wiphy0"],
 | 
					 | 
				
			||||||
                "5G-Radio": ["wiphy5"],
 | 
					 | 
				
			||||||
                "AX-Radio": [],
 | 
					 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					 | 
				
			||||||
                "upstream_subnet": "192.168.52.1/24",
 | 
					 | 
				
			||||||
                "uplink": "1.1.eth2",
 | 
					 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					 | 
				
			||||||
                "AX-Station-Name": "ax0"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },  # Shivam    192.168.52.100
 | 
					 | 
				
			||||||
    "ext-03-05": {
 | 
					 | 
				
			||||||
        "controller": {
 | 
					 | 
				
			||||||
            'url': "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build",  # API base url for the controller
 | 
					 | 
				
			||||||
            'username': 'support@example.com',
 | 
					 | 
				
			||||||
            'password': 'support',
 | 
					 | 
				
			||||||
            'version': '1.1.0-SNAPSHOT',
 | 
					 | 
				
			||||||
            'commit_date': "2021-06-01"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        'access_point': [
 | 
					        'access_point': [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -338,10 +477,10 @@ CONFIGURATION = {
 | 
				
			|||||||
                'mode': 'wifi5',
 | 
					                'mode': 'wifi5',
 | 
				
			||||||
                'serial': '903cb3944857',
 | 
					                'serial': '903cb3944857',
 | 
				
			||||||
                'jumphost': True,
 | 
					                'jumphost': True,
 | 
				
			||||||
                'ip': "192.168.200.80",  # localhost
 | 
					                'ip': "192.168.200.80",
 | 
				
			||||||
                'username': "lanforge",
 | 
					                'username': "lanforge",
 | 
				
			||||||
                'password': "lanforge",
 | 
					                'password': "lanforge",
 | 
				
			||||||
                'port': 22,  # 22,
 | 
					                'port': 22,
 | 
				
			||||||
                'jumphost_tty': '/dev/ttyAP1',
 | 
					                'jumphost_tty': '/dev/ttyAP1',
 | 
				
			||||||
                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
					                'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/trunk/ecw5410-1.1.0.tar.gz"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -349,32 +488,29 @@ CONFIGURATION = {
 | 
				
			|||||||
        "traffic_generator": {
 | 
					        "traffic_generator": {
 | 
				
			||||||
            "name": "lanforge",
 | 
					            "name": "lanforge",
 | 
				
			||||||
            "details": {
 | 
					            "details": {
 | 
				
			||||||
                "ip": "192.168.200.80",  # localhost,
 | 
					                "ip": "192.168.200.80",
 | 
				
			||||||
                "port": 8080,  # 8802,
 | 
					                "port": 8080,
 | 
				
			||||||
                "ssh_port": 22,
 | 
					                "ssh_port": 22,
 | 
				
			||||||
                "2.4G-Radio": ["wiphy0"],
 | 
					                "2.4G-Radio": ["wiphy0"],
 | 
				
			||||||
                "5G-Radio": ["wiphy5"],
 | 
					                "5G-Radio": ["wiphy1"],
 | 
				
			||||||
                "AX-Radio": [],
 | 
					                "AX-Radio": ["wiphy2"],
 | 
				
			||||||
                "upstream": "1.1.eth1",
 | 
					                "upstream": "1.1.eth1",
 | 
				
			||||||
                "upstream_subnet": "192.168.200.1/24",
 | 
					                "upstream_subnet": "192.168.200.1/24",
 | 
				
			||||||
                "uplink": "1.1.eth2",
 | 
					                "uplink": "1.1.eth2",
 | 
				
			||||||
                "2.4G-Station-Name": "twog0",
 | 
					                "2.4G-Station-Name": "wlan0",
 | 
				
			||||||
                "5G-Station-Name": "fiveg0",
 | 
					                "5G-Station-Name": "wlan0",
 | 
				
			||||||
                "AX-Station-Name": "ax0"
 | 
					                "AX-Station-Name": "ax"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },  # Sushant   192.168.51.___
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
RADIUS_SERVER_DATA = {
 | 
					RADIUS_SERVER_DATA = {
 | 
				
			||||||
    "ip": "192.168.200.75",
 | 
					    "ip": "10.10.10.72",
 | 
				
			||||||
    "port": 1812,
 | 
					    "port": 1812,
 | 
				
			||||||
    "secret": "testing123",
 | 
					    "secret": "testing123",
 | 
				
			||||||
    "user": "nolaradius",
 | 
					    "user": "user",
 | 
				
			||||||
    "password": "nolastart",
 | 
					    "password": "password",
 | 
				
			||||||
    "pk_password": "whatever"
 | 
					    "pk_password": "whatever"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -452,6 +588,7 @@ PASSPOINT_PROFILE_INFO = {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASES = {
 | 
					TEST_CASES = {
 | 
				
			||||||
    "ap_upgrade": 2233,
 | 
					    "ap_upgrade": 2233,
 | 
				
			||||||
    "5g_wpa2_bridge": 2236,
 | 
					    "5g_wpa2_bridge": 2236,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,16 +8,16 @@ import os
 | 
				
			|||||||
import pytest
 | 
					import pytest
 | 
				
			||||||
import allure
 | 
					import allure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pytestmark = [pytest.mark.wifi_capacity_test, pytest.mark.bridge,
 | 
					pytestmark = [pytest.mark.performance, pytest.mark.wifi_capacity_test, pytest.mark.bridge]
 | 
				
			||||||
              pytest.mark.usefixtures("setup_test_run")]
 | 
					# """pytest.mark.usefixtures("setup_test_run")"""]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setup_params_general = {
 | 
					setup_params_general_dual_band = {
 | 
				
			||||||
    "mode": "BRIDGE",
 | 
					    "mode": "BRIDGE",
 | 
				
			||||||
    "ssid_modes": {
 | 
					    "ssid_modes": {
 | 
				
			||||||
        "wpa2_personal": [
 | 
					        "wpa2_personal": [
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
 | 
					        ]
 | 
				
			||||||
             "security_key": "something"}]},
 | 
					    },
 | 
				
			||||||
    "rf": {},
 | 
					    "rf": {},
 | 
				
			||||||
    "radius": False
 | 
					    "radius": False
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -26,25 +26,94 @@ setup_params_general = {
 | 
				
			|||||||
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
 | 
					@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
@pytest.mark.parametrize(
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
    'setup_profiles',
 | 
					    'setup_profiles',
 | 
				
			||||||
    [setup_params_general],
 | 
					    [setup_params_general_dual_band],
 | 
				
			||||||
    indirect=True,
 | 
					    indirect=True,
 | 
				
			||||||
    scope="class"
 | 
					    scope="class"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@pytest.mark.usefixtures("setup_profiles")
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
class TestWifiCapacityBridgeMode(object):
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.dual_band
 | 
				
			||||||
 | 
					class TestWifiCapacityBridgeModeDualBand(object):
 | 
				
			||||||
    """ Wifi Capacity Test Bridge mode
 | 
					    """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
           pytest -m "wifi_capacity_test and bridge"
 | 
					           pytest -m "wifi_capacity_test and bridge"
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.wpa2_personal
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
    @pytest.mark.twog
 | 
					    def test_client_wpa2_bridge_tcp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
    def test_client_wpa2_bridge_2g(self, get_vif_state,
 | 
					 | 
				
			||||||
                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                       get_configuration):
 | 
					                                       get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test Bridge mode
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                        instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					        report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					        entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					        pdf = False
 | 
				
			||||||
 | 
					        for i in entries:
 | 
				
			||||||
 | 
					            if ".pdf" in i:
 | 
				
			||||||
 | 
					                pdf = i
 | 
				
			||||||
 | 
					        if pdf:
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined Received Bytes",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Station Maximums",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "RF Stats for Station",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Link Rate for Stations",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					        print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					        lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					        assert True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "BRIDGE"
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
@@ -59,7 +128,7 @@ class TestWifiCapacityBridgeMode(object):
 | 
				
			|||||||
                                         station_name=station_names_twog, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_bridge", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -69,36 +138,68 @@ class TestWifiCapacityBridgeMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.wpa2_personal
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
    @pytest.mark.fiveg
 | 
					    def test_client_wpa2_bridge_tcp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
    def test_client_wpa2_bridge_5gg(self, get_vif_state,
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                   lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
 | 
					 | 
				
			||||||
                                                  get_configuration):
 | 
					                                                  get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test Bridge mode
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and bridge and wpa2_personal and fiveg"
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "BRIDGE"
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
        security_key = profile_data["security_key"]
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
        band = "fiveg"
 | 
					        band = "twog"
 | 
				
			||||||
        vlan = 1
 | 
					        vlan = 1
 | 
				
			||||||
        if ssid_name not in get_vif_state:
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
                                         mode=mode, band=band,
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
                                         station_name=station_names_fiveg, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_fiveg[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_bridge", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -108,8 +209,740 @@ class TestWifiCapacityBridgeMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_fiveg)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_2G = {
 | 
				
			||||||
 | 
					    "mode": "BRIDGE",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_2G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.fiveg_band
 | 
				
			||||||
 | 
					class TestWifiCapacityBridgeMode2G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and bridge"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_5G = {
 | 
				
			||||||
 | 
					    "mode": "BRIDGE",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_5G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.twog_band
 | 
				
			||||||
 | 
					class TestWifiCapacityBridgeMode5G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and bridge"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_bridge_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test Bridge mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and bridge and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "BRIDGE"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_bridge_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,23 @@
 | 
				
			|||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Performance Test: Wifi Capacity Test : Bridge Mode
 | 
					    Performance Test: Wifi Capacity Test : NAT Mode
 | 
				
			||||||
    pytest -m "wifi_capacity_test and bridge"
 | 
					    pytest -m "wifi_capacity_test and NAT"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import pytest
 | 
					import pytest
 | 
				
			||||||
import allure
 | 
					import allure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pytestmark = [pytest.mark.wifi_capacity_test, pytest.mark.nat,
 | 
					pytestmark = [pytest.mark.performance, pytest.mark.wifi_capacity_test, pytest.mark.nat]
 | 
				
			||||||
              pytest.mark.usefixtures("setup_test_run")]
 | 
					# """pytest.mark.usefixtures("setup_test_run")"""]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setup_params_general = {
 | 
					setup_params_general_dual_band = {
 | 
				
			||||||
    "mode": "NAT",
 | 
					    "mode": "NAT",
 | 
				
			||||||
    "ssid_modes": {
 | 
					    "ssid_modes": {
 | 
				
			||||||
        "wpa2_personal": [
 | 
					        "wpa2_personal": [
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
 | 
					        ]
 | 
				
			||||||
             "security_key": "something"}]},
 | 
					    },
 | 
				
			||||||
    "rf": {},
 | 
					    "rf": {},
 | 
				
			||||||
    "radius": False
 | 
					    "radius": False
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -26,25 +26,94 @@ setup_params_general = {
 | 
				
			|||||||
@allure.feature("NAT MODE CLIENT CONNECTIVITY")
 | 
					@allure.feature("NAT MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
@pytest.mark.parametrize(
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
    'setup_profiles',
 | 
					    'setup_profiles',
 | 
				
			||||||
    [setup_params_general],
 | 
					    [setup_params_general_dual_band],
 | 
				
			||||||
    indirect=True,
 | 
					    indirect=True,
 | 
				
			||||||
    scope="class"
 | 
					    scope="class"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@pytest.mark.usefixtures("setup_profiles")
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
class TestWifiCapacityNATMode(object):
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.dual_band
 | 
				
			||||||
 | 
					class TestWifiCapacityNATModeDualBand(object):
 | 
				
			||||||
    """ Wifi Capacity Test NAT mode
 | 
					    """ Wifi Capacity Test NAT mode
 | 
				
			||||||
           pytest -m "wifi_capacity_test and NAT"
 | 
					           pytest -m "wifi_capacity_test and NAT"
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.wpa2_personal
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
    @pytest.mark.twog
 | 
					    def test_client_wpa2_NAT_tcp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
    def test_client_wpa2_NAT_2g(self, get_vif_state,
 | 
					 | 
				
			||||||
                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                       get_configuration):
 | 
					                                       get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test NAT mode
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                        instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					        report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					        entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					        pdf = False
 | 
				
			||||||
 | 
					        for i in entries:
 | 
				
			||||||
 | 
					            if ".pdf" in i:
 | 
				
			||||||
 | 
					                pdf = i
 | 
				
			||||||
 | 
					        if pdf:
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined Received Bytes",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Station Maximums",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "RF Stats for Station",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Link Rate for Stations",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					        print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					        lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					        assert True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "NAT"
 | 
					        mode = "NAT"
 | 
				
			||||||
@@ -59,7 +128,7 @@ class TestWifiCapacityNATMode(object):
 | 
				
			|||||||
                                         station_name=station_names_twog, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_NAT", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -69,36 +138,68 @@ class TestWifiCapacityNATMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.wpa2_personal
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
    @pytest.mark.fiveg
 | 
					    def test_client_wpa2_NAT_tcp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
    def test_client_wpa2_NAT_5gg(self, get_vif_state,
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                   lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
 | 
					 | 
				
			||||||
                                                  get_configuration):
 | 
					                                                  get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test NAT mode
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and NAT and wpa2_personal and fiveg"
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "NAT"
 | 
					        mode = "NAT"
 | 
				
			||||||
        security_key = profile_data["security_key"]
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
        band = "fiveg"
 | 
					        band = "twog"
 | 
				
			||||||
        vlan = 1
 | 
					        vlan = 1
 | 
				
			||||||
        if ssid_name not in get_vif_state:
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
                                         mode=mode, band=band,
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
                                         station_name=station_names_fiveg, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_fiveg[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_NAT", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -108,8 +209,740 @@ class TestWifiCapacityNATMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_fiveg)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_2G = {
 | 
				
			||||||
 | 
					    "mode": "NAT",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("NAT MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_2G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.fiveg_band
 | 
				
			||||||
 | 
					class TestWifiCapacityNATMode2G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and NAT"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_5G = {
 | 
				
			||||||
 | 
					    "mode": "NAT",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("NAT MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_5G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.twog_band
 | 
				
			||||||
 | 
					class TestWifiCapacityNATMode5G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and NAT"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_NAT_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test NAT mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and NAT and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "NAT"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_NAT_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,16 +8,16 @@ import os
 | 
				
			|||||||
import pytest
 | 
					import pytest
 | 
				
			||||||
import allure
 | 
					import allure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pytestmark = [pytest.mark.wifi_capacity_test, pytest.mark.vlan,
 | 
					pytestmark = [pytest.mark.performance, pytest.mark.wifi_capacity_test, pytest.mark.vlan]
 | 
				
			||||||
              pytest.mark.usefixtures("setup_test_run")]
 | 
					# """pytest.mark.usefixtures("setup_test_run")"""]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setup_params_general = {
 | 
					setup_params_general_dual_band = {
 | 
				
			||||||
    "mode": "VLAN",
 | 
					    "mode": "VLAN",
 | 
				
			||||||
    "ssid_modes": {
 | 
					    "ssid_modes": {
 | 
				
			||||||
        "wpa2_personal": [
 | 
					        "wpa2_personal": [
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
            {"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
 | 
					        ]
 | 
				
			||||||
             "security_key": "something"}]},
 | 
					    },
 | 
				
			||||||
    "rf": {},
 | 
					    "rf": {},
 | 
				
			||||||
    "radius": False
 | 
					    "radius": False
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -26,25 +26,94 @@ setup_params_general = {
 | 
				
			|||||||
@allure.feature("VLAN MODE CLIENT CONNECTIVITY")
 | 
					@allure.feature("VLAN MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
@pytest.mark.parametrize(
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
    'setup_profiles',
 | 
					    'setup_profiles',
 | 
				
			||||||
    [setup_params_general],
 | 
					    [setup_params_general_dual_band],
 | 
				
			||||||
    indirect=True,
 | 
					    indirect=True,
 | 
				
			||||||
    scope="class"
 | 
					    scope="class"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@pytest.mark.usefixtures("setup_profiles")
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
class TestWifiCapacityVLANMode(object):
 | 
					 | 
				
			||||||
    """ Wifi Capacity Test vlan mode
 | 
					 | 
				
			||||||
           pytest -m "wifi_capacity_test and vlan"
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@pytest.mark.wpa2_personal
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
@pytest.mark.twog
 | 
					@pytest.mark.twog
 | 
				
			||||||
    def test_client_wpa2_VLAN_2g(self, get_vif_state,
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.dual_band
 | 
				
			||||||
 | 
					class TestWifiCapacityVLANModeDualBand(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and VLAN"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_tcp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                       get_configuration):
 | 
					                                       get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test vlan mode
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and vlan and wpa2_personal and twog"
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                        instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					        report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					        entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					        pdf = False
 | 
				
			||||||
 | 
					        for i in entries:
 | 
				
			||||||
 | 
					            if ".pdf" in i:
 | 
				
			||||||
 | 
					                pdf = i
 | 
				
			||||||
 | 
					        if pdf:
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Combined Received Bytes",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Station Maximums",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "RF Stats for Station",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                               name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                    "Link Rate for Stations",
 | 
				
			||||||
 | 
					                               attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					        print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					        lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					        assert True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_dl(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "VLAN"
 | 
					        mode = "VLAN"
 | 
				
			||||||
@@ -59,7 +128,7 @@ class TestWifiCapacityVLANMode(object):
 | 
				
			|||||||
                                         station_name=station_names_twog, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_vlan", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -69,36 +138,68 @@ class TestWifiCapacityVLANMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.wpa2_personal
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
    @pytest.mark.fiveg
 | 
					    def test_client_wpa2_VLAN_tcp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
    def test_client_wpa2_vlan_5gg(self, get_vif_state,
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
                                   lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
 | 
					 | 
				
			||||||
                                                  get_configuration):
 | 
					                                                  get_configuration):
 | 
				
			||||||
        """ Wifi Capacity Test vlan mode
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
            pytest -m "wifi_capacity_test and vlan and wpa2_personal and fiveg"
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
        ssid_name = profile_data["ssid_name"]
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
        security = "wpa2"
 | 
					        security = "wpa2"
 | 
				
			||||||
        mode = "VLAN"
 | 
					        mode = "VLAN"
 | 
				
			||||||
        security_key = profile_data["security_key"]
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
        band = "fiveg"
 | 
					        band = "twog"
 | 
				
			||||||
        vlan = 1
 | 
					        vlan = 1
 | 
				
			||||||
        if ssid_name not in get_vif_state:
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
                                         mode=mode, band=band,
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
                                         station_name=station_names_fiveg, vlan_id=vlan)
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
        if station:
 | 
					        if station:
 | 
				
			||||||
            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_fiveg[0],
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
                                            instance_name="test_wct_wpa2_vlan", mode=mode, vlan_id=vlan)
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
            entries = os.listdir("../reports/" + report_name + '/')
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
            pdf = False
 | 
					            pdf = False
 | 
				
			||||||
@@ -108,8 +209,740 @@ class TestWifiCapacityVLANMode(object):
 | 
				
			|||||||
            if pdf:
 | 
					            if pdf:
 | 
				
			||||||
                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
            print("Test Completed... Cleaning up Stations")
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
            lf_test.Client_disconnect(station_name=station_names_fiveg)
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_bidirectional(self, get_vif_state, lf_tools,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_dual_band["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_2G = {
 | 
				
			||||||
 | 
					    "mode": "VLAN",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("VLAN MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_2G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.fiveg_band
 | 
				
			||||||
 | 
					class TestWifiCapacityVLANMode2G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and VLAN"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_2G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_params_general_5G = {
 | 
				
			||||||
 | 
					    "mode": "VLAN",
 | 
				
			||||||
 | 
					    "ssid_modes": {
 | 
				
			||||||
 | 
					        "wpa2_personal": [
 | 
				
			||||||
 | 
					            {"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz", "is5GHz"], "security_key": "something"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rf": {},
 | 
				
			||||||
 | 
					    "radius": False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@allure.feature("VLAN MODE CLIENT CONNECTIVITY")
 | 
				
			||||||
 | 
					@pytest.mark.parametrize(
 | 
				
			||||||
 | 
					    'setup_profiles',
 | 
				
			||||||
 | 
					    [setup_params_general_5G],
 | 
				
			||||||
 | 
					    indirect=True,
 | 
				
			||||||
 | 
					    scope="class"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					@pytest.mark.usefixtures("setup_profiles")
 | 
				
			||||||
 | 
					@pytest.mark.wpa2_personal
 | 
				
			||||||
 | 
					@pytest.mark.twog
 | 
				
			||||||
 | 
					@pytest.mark.fiveg
 | 
				
			||||||
 | 
					@pytest.mark.twog_band
 | 
				
			||||||
 | 
					class TestWifiCapacityVLANMode5G(object):
 | 
				
			||||||
 | 
					    """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					           pytest -m "wifi_capacity_test and VLAN"
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_tcp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_download
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_dl(self, get_vif_state,
 | 
				
			||||||
 | 
					                                       lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                       get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.tcp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_tcp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
 | 
					            assert station
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            assert False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.udp_bidirectional
 | 
				
			||||||
 | 
					    def test_client_wpa2_VLAN_udp_bidirectional(self, get_vif_state,
 | 
				
			||||||
 | 
					                                                  lf_test, station_names_twog, create_lanforge_chamberview_dut,
 | 
				
			||||||
 | 
					                                                  get_configuration):
 | 
				
			||||||
 | 
					        """ Wifi Capacity Test VLAN mode
 | 
				
			||||||
 | 
					            pytest -m "wifi_capacity_test and VLAN and wpa2_personal and twog"
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        profile_data = setup_params_general_5G["ssid_modes"]["wpa2_personal"][0]
 | 
				
			||||||
 | 
					        ssid_name = profile_data["ssid_name"]
 | 
				
			||||||
 | 
					        security = "wpa2"
 | 
				
			||||||
 | 
					        mode = "VLAN"
 | 
				
			||||||
 | 
					        security_key = profile_data["security_key"]
 | 
				
			||||||
 | 
					        band = "twog"
 | 
				
			||||||
 | 
					        vlan = 1
 | 
				
			||||||
 | 
					        if ssid_name not in get_vif_state:
 | 
				
			||||||
 | 
					            allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
 | 
				
			||||||
 | 
					            pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
 | 
				
			||||||
 | 
					        station = lf_test.Client_Connect(ssid=ssid_name, security=security, passkey=security_key,
 | 
				
			||||||
 | 
					                                         mode=mode, band=band,
 | 
				
			||||||
 | 
					                                         station_name=station_names_twog, vlan_id=vlan)
 | 
				
			||||||
 | 
					        if station:
 | 
				
			||||||
 | 
					            wct_obj = lf_test.wifi_capacity(stations="1.1.%s" % station_names_twog[0],
 | 
				
			||||||
 | 
					                                            instance_name="test_wct_wpa2_VLAN_2g", mode=mode, vlan_id=vlan)
 | 
				
			||||||
 | 
					            report_name = wct_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
 | 
				
			||||||
 | 
					            entries = os.listdir("../reports/" + report_name + '/')
 | 
				
			||||||
 | 
					            pdf = False
 | 
				
			||||||
 | 
					            for i in entries:
 | 
				
			||||||
 | 
					                if ".pdf" in i:
 | 
				
			||||||
 | 
					                    pdf = i
 | 
				
			||||||
 | 
					            if pdf:
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/" + pdf,
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "_wifi_capacity_test")
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-0.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Realtime bps",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-2.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Total PDU Received vs NUmber of Stations Active",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-3.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Port Reset Totals",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-4.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + "Station Connect Time",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-5.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined bps - 60 Second Running Average",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-6.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Combined Received Bytes",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-7.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Station Maximums",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-8.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "RF Stats for Station",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					                allure.attach.file(source="../reports/" + report_name + "/chart-9.png",
 | 
				
			||||||
 | 
					                                   name=get_configuration["access_point"][0]["model"] + \
 | 
				
			||||||
 | 
					                                        "Link Rate for Stations",
 | 
				
			||||||
 | 
					                                   attachment_type="image/png", extension=None)
 | 
				
			||||||
 | 
					            print("Test Completed... Cleaning up Stations")
 | 
				
			||||||
 | 
					            lf_test.Client_disconnect(station_name=station_names_twog)
 | 
				
			||||||
            assert station
 | 
					            assert station
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False
 | 
					            assert False
 | 
				
			||||||
 
 | 
				
			|||||||