mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 19:28:00 +00:00
Revert "Fix test_l3_longevity regressions and pending problems"
This reverts commit cbe5286f83.
This commit is contained in:
@@ -73,7 +73,6 @@ Realm = realm.Realm
|
|||||||
csv_to_influx = importlib.import_module("py-scripts.csv_to_influx")
|
csv_to_influx = importlib.import_module("py-scripts.csv_to_influx")
|
||||||
InfluxRequest = importlib.import_module("py-dashboard.InfluxRequest")
|
InfluxRequest = importlib.import_module("py-dashboard.InfluxRequest")
|
||||||
influx_add_parser_args = InfluxRequest.influx_add_parser_args
|
influx_add_parser_args = InfluxRequest.influx_add_parser_args
|
||||||
RecordInflux = InfluxRequest.RecordInflux
|
|
||||||
|
|
||||||
|
|
||||||
# This class handles running the test and generating reports.
|
# This class handles running the test and generating reports.
|
||||||
@@ -95,19 +94,19 @@ class L3VariableTime(Realm):
|
|||||||
reset_port_enable_list,
|
reset_port_enable_list,
|
||||||
reset_port_time_min_list,
|
reset_port_time_min_list,
|
||||||
reset_port_time_max_list,
|
reset_port_time_max_list,
|
||||||
side_a_min_rate=None,
|
side_a_min_rate=[56000],
|
||||||
side_a_max_rate=None,
|
side_a_max_rate=[0],
|
||||||
side_b_min_rate=None,
|
side_b_min_rate=[56000],
|
||||||
side_b_max_rate=None,
|
side_b_max_rate=[0],
|
||||||
side_a_min_pdu=None,
|
side_a_min_pdu=["MTU"],
|
||||||
side_a_max_pdu=None,
|
side_a_max_pdu=[0],
|
||||||
side_b_min_pdu=None,
|
side_b_min_pdu=["MTU"],
|
||||||
side_b_max_pdu=None,
|
side_b_max_pdu=[0],
|
||||||
user_tags=None,
|
user_tags=[],
|
||||||
rates_are_totals=False,
|
rates_are_totals=False,
|
||||||
mconn=1,
|
mconn=1,
|
||||||
attenuators=None,
|
attenuators=[],
|
||||||
atten_vals=None,
|
atten_vals=[],
|
||||||
number_template="00",
|
number_template="00",
|
||||||
test_duration="256s",
|
test_duration="256s",
|
||||||
polling_interval="60s",
|
polling_interval="60s",
|
||||||
@@ -134,34 +133,7 @@ class L3VariableTime(Realm):
|
|||||||
_exit_on_error=False,
|
_exit_on_error=False,
|
||||||
_exit_on_fail=False,
|
_exit_on_fail=False,
|
||||||
_proxy_str=None,
|
_proxy_str=None,
|
||||||
_capture_signal_list=None):
|
_capture_signal_list=[]):
|
||||||
self.eth_endps = []
|
|
||||||
self.total_stas = 0
|
|
||||||
if side_a_min_rate is None:
|
|
||||||
side_a_min_rate = [56000]
|
|
||||||
if side_a_max_rate is None:
|
|
||||||
side_a_max_rate = [0]
|
|
||||||
if side_b_min_rate is None:
|
|
||||||
side_b_min_rate = [56000]
|
|
||||||
if side_b_max_rate is None:
|
|
||||||
side_b_max_rate = [0]
|
|
||||||
if side_a_min_pdu is None:
|
|
||||||
side_a_min_pdu = ["MTU"]
|
|
||||||
if side_a_max_pdu is None:
|
|
||||||
side_a_max_pdu = [0]
|
|
||||||
if side_b_min_pdu is None:
|
|
||||||
side_b_min_pdu = ["MTU"]
|
|
||||||
if side_b_max_pdu is None:
|
|
||||||
side_b_max_pdu = [0]
|
|
||||||
if user_tags is None:
|
|
||||||
user_tags = []
|
|
||||||
if attenuators is None:
|
|
||||||
attenuators = []
|
|
||||||
if atten_vals is None:
|
|
||||||
atten_vals = []
|
|
||||||
if _capture_signal_list is None:
|
|
||||||
_capture_signal_list = []
|
|
||||||
|
|
||||||
super().__init__(lfclient_host=lfclient_host,
|
super().__init__(lfclient_host=lfclient_host,
|
||||||
lfclient_port=lfclient_port,
|
lfclient_port=lfclient_port,
|
||||||
debug_=debug,
|
debug_=debug,
|
||||||
@@ -287,7 +259,7 @@ class L3VariableTime(Realm):
|
|||||||
|
|
||||||
# if it is a dataplane test the side_a is not None and an ethernet port
|
# if it is a dataplane test the side_a is not None and an ethernet port
|
||||||
# if side_a is None then side_a is radios
|
# if side_a is None then side_a is radios
|
||||||
if not self.dataplane:
|
if self.dataplane == False:
|
||||||
for (radio_, ssid_, ssid_password_, ssid_security_,
|
for (radio_, ssid_, ssid_password_, ssid_security_,
|
||||||
reset_port_enable_, reset_port_time_min_, reset_port_time_max_) \
|
reset_port_enable_, reset_port_time_min_, reset_port_time_max_) \
|
||||||
in zip(radio_name_list, ssid_list, ssid_password_list, ssid_security_list,
|
in zip(radio_name_list, ssid_list, ssid_password_list, ssid_security_list,
|
||||||
@@ -315,10 +287,6 @@ class L3VariableTime(Realm):
|
|||||||
self.cx_profile.port = self.lfclient_port
|
self.cx_profile.port = self.lfclient_port
|
||||||
self.cx_profile.name_prefix = self.name_prefix
|
self.cx_profile.name_prefix = self.name_prefix
|
||||||
|
|
||||||
self.lf_endps = None
|
|
||||||
self.udp_endps = None
|
|
||||||
self.tcp_endps = None
|
|
||||||
|
|
||||||
def get_ap_6g_umsched(self):
|
def get_ap_6g_umsched(self):
|
||||||
return self.ap_6g_umsched
|
return self.ap_6g_umsched
|
||||||
|
|
||||||
@@ -436,13 +404,13 @@ class L3VariableTime(Realm):
|
|||||||
our_endps[e] = e
|
our_endps[e] = e
|
||||||
for endp_name in endp_list['endpoint']:
|
for endp_name in endp_list['endpoint']:
|
||||||
if endp_name != 'uri' and endp_name != 'handler':
|
if endp_name != 'uri' and endp_name != 'handler':
|
||||||
for item, endp_value in endp_name.items():
|
for item, value in endp_name.items():
|
||||||
if item in our_endps:
|
if item in our_endps:
|
||||||
endps.append(endp_value)
|
endps.append(value)
|
||||||
print("endpoint: ", item, " value:\n")
|
print("endpoint: ", item, " value:\n")
|
||||||
pprint(endp_value)
|
pprint(value)
|
||||||
|
|
||||||
for value_name, value in endp_value.items():
|
for value_name, value in value.items():
|
||||||
if value_name == 'rx bytes':
|
if value_name == 'rx bytes':
|
||||||
endp_rx_map[item] = value
|
endp_rx_map[item] = value
|
||||||
if value_name == 'rx rate':
|
if value_name == 'rx rate':
|
||||||
@@ -511,6 +479,7 @@ class L3VariableTime(Realm):
|
|||||||
def pre_cleanup(self):
|
def pre_cleanup(self):
|
||||||
self.cx_profile.cleanup_prefix()
|
self.cx_profile.cleanup_prefix()
|
||||||
self.multicast_profile.cleanup_prefix()
|
self.multicast_profile.cleanup_prefix()
|
||||||
|
self.total_stas = 0
|
||||||
for station_list in self.station_lists:
|
for station_list in self.station_lists:
|
||||||
for sta in station_list:
|
for sta in station_list:
|
||||||
self.rm_port(sta, check_exists=True)
|
self.rm_port(sta, check_exists=True)
|
||||||
@@ -545,6 +514,7 @@ class L3VariableTime(Realm):
|
|||||||
self.station_count = 0
|
self.station_count = 0
|
||||||
self.udp_endps = []
|
self.udp_endps = []
|
||||||
self.tcp_endps = []
|
self.tcp_endps = []
|
||||||
|
self.eth_endps = []
|
||||||
|
|
||||||
if rebuild:
|
if rebuild:
|
||||||
# if we are just re-applying new cx values, then no need to rebuild
|
# if we are just re-applying new cx values, then no need to rebuild
|
||||||
@@ -599,7 +569,7 @@ class L3VariableTime(Realm):
|
|||||||
|
|
||||||
self.cx_count = self.cx_profile.get_cx_count()
|
self.cx_count = self.cx_profile.get_cx_count()
|
||||||
|
|
||||||
if self.dataplane is True:
|
if self.dataplane == True:
|
||||||
self._pass("PASS: CX build finished: created/updated: %s connections." % self.cx_count)
|
self._pass("PASS: CX build finished: created/updated: %s connections." % self.cx_count)
|
||||||
else:
|
else:
|
||||||
self._pass("PASS: Stations & CX build finished: created/updated: %s stations and %s connections." % (self.station_count, self.cx_count))
|
self._pass("PASS: Stations & CX build finished: created/updated: %s stations and %s connections." % (self.station_count, self.cx_count))
|
||||||
@@ -774,8 +744,7 @@ class L3VariableTime(Realm):
|
|||||||
|
|
||||||
# provide fake bs_data for testing without AP wl2 is the 6E interface, wl1 5G, wl0 2G
|
# provide fake bs_data for testing without AP wl2 is the 6E interface, wl1 5G, wl0 2G
|
||||||
|
|
||||||
@staticmethod
|
def read_ap_rx_report_test_mode(self):
|
||||||
def read_ap_rx_report_test_mode():
|
|
||||||
ap_rx_report_fake = "{}{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl1 rx_report\n",
|
ap_rx_report_fake = "{}{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl1 rx_report\n",
|
||||||
"Station Address (rssi) tid ampdu mpdu Data Mbps PHY Mbps bw mcs Nss oow holes dup rtries ofdma tones air\n",
|
"Station Address (rssi) tid ampdu mpdu Data Mbps PHY Mbps bw mcs Nss oow holes dup rtries ofdma tones air\n",
|
||||||
"50:E0:85:87:5B:F4 (-43dBm) 0 2062 127078 32.5 571.9 80 11.0 2 0 0 64 0% 100% 483.3 6%\n",
|
"50:E0:85:87:5B:F4 (-43dBm) 0 2062 127078 32.5 571.9 80 11.0 2 0 0 64 0% 100% 483.3 6%\n",
|
||||||
@@ -784,8 +753,7 @@ class L3VariableTime(Realm):
|
|||||||
# Keep commented for testing "(overall) - 6692 413914 105.8 - - - - - - - - - - - -\n"
|
# Keep commented for testing "(overall) - 6692 413914 105.8 - - - - - - - - - - - -\n"
|
||||||
return ap_rx_report_fake
|
return ap_rx_report_fake
|
||||||
|
|
||||||
@staticmethod
|
def read_ap_bs_data_test_mode(self):
|
||||||
def read_ap_bs_data_test_mode():
|
|
||||||
ap_stats_fake = "{}{}{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl2 bs_data\n",
|
ap_stats_fake = "{}{}{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl2 bs_data\n",
|
||||||
"Station Address PHY Mbps Data Mbps Air Use Data Use Retries bw mcs Nss ofdma mu-mimo\n",
|
"Station Address PHY Mbps Data Mbps Air Use Data Use Retries bw mcs Nss ofdma mu-mimo\n",
|
||||||
"04:f0:21:82:2f:d6 1016.6 48.9 6.5% 24.4% 16.6% 80 9.7 2 0.0% 0.0%\n",
|
"04:f0:21:82:2f:d6 1016.6 48.9 6.5% 24.4% 16.6% 80 9.7 2 0.0% 0.0%\n",
|
||||||
@@ -796,8 +764,7 @@ class L3VariableTime(Realm):
|
|||||||
# print("ap_stats_fake {}".format(ap_stats_fake))
|
# print("ap_stats_fake {}".format(ap_stats_fake))
|
||||||
return ap_stats_fake
|
return ap_stats_fake
|
||||||
|
|
||||||
@staticmethod
|
def read_ap_chanim_stats_test_mode(self):
|
||||||
def read_ap_chanim_stats_test_mode():
|
|
||||||
# Create the test data as a continuous string
|
# Create the test data as a continuous string
|
||||||
ap_chanim_stats_fake = "{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl2 chanim_stats\n",
|
ap_chanim_stats_fake = "{}{}{}{}".format("root@Docsis-Gateway:~# wl -i wl2 chanim_stats\n",
|
||||||
"version: 3\n",
|
"version: 3\n",
|
||||||
@@ -808,7 +775,7 @@ class L3VariableTime(Realm):
|
|||||||
return ap_chanim_stats_fake
|
return ap_chanim_stats_fake
|
||||||
|
|
||||||
# Run the main body of the test logic.
|
# Run the main body of the test logic.
|
||||||
def start(self, print_pass=False):
|
def start(self, print_pass=False, print_fail=False):
|
||||||
print("Bringing up stations")
|
print("Bringing up stations")
|
||||||
self.admin_up(self.side_b)
|
self.admin_up(self.side_b)
|
||||||
for station_profile in self.station_profiles:
|
for station_profile in self.station_profiles:
|
||||||
@@ -910,7 +877,7 @@ class L3VariableTime(Realm):
|
|||||||
|
|
||||||
cur_time = datetime.datetime.now()
|
cur_time = datetime.datetime.now()
|
||||||
print("Getting initial values.")
|
print("Getting initial values.")
|
||||||
self.__get_rx_values()
|
old_rx_values, rx_drop_percent, endps, total_dl_bps, total_ul_bps, total_dl_ll_bps, total_ul_ll_bps = self.__get_rx_values()
|
||||||
|
|
||||||
end_time = self.parse_time(self.test_duration) + cur_time
|
end_time = self.parse_time(self.test_duration) + cur_time
|
||||||
|
|
||||||
@@ -923,11 +890,23 @@ class L3VariableTime(Realm):
|
|||||||
total_ul_bps = 0
|
total_ul_bps = 0
|
||||||
total_dl_ll_bps = 0
|
total_dl_ll_bps = 0
|
||||||
total_ul_ll_bps = 0
|
total_ul_ll_bps = 0
|
||||||
|
endps = []
|
||||||
ap_row = []
|
ap_row = []
|
||||||
|
mac_found_ul_6g = False
|
||||||
|
mac_found_ul_5g = False
|
||||||
|
mac_found_ul_2g = False
|
||||||
mac_found_6g = False
|
mac_found_6g = False
|
||||||
mac_found_5g = False
|
mac_found_5g = False
|
||||||
mac_found_2g = False
|
mac_found_2g = False
|
||||||
reset_timer = 0
|
reset_timer = 0
|
||||||
|
latency = 0
|
||||||
|
jitter = 0
|
||||||
|
total_ul_rate = 0
|
||||||
|
total_ul_rate_ll = 0
|
||||||
|
total_ul_pkts_ll = 0
|
||||||
|
total_dl_rate = 0
|
||||||
|
total_dl_rate_ll = 0
|
||||||
|
total_dl_pkts_ll = 0
|
||||||
|
|
||||||
while cur_time < end_time:
|
while cur_time < end_time:
|
||||||
# interval_time = cur_time + datetime.timedelta(seconds=5)
|
# interval_time = cur_time + datetime.timedelta(seconds=5)
|
||||||
@@ -1019,12 +998,12 @@ class L3VariableTime(Realm):
|
|||||||
except BaseException:
|
except BaseException:
|
||||||
print("6g 'No stations are currently associated.'? from AP")
|
print("6g 'No stations are currently associated.'? from AP")
|
||||||
print(" since possibly no stations: excption on compare split_row[0].lower() ")
|
print(" since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
if mac_found_6g is True:
|
if mac_found_6g == True:
|
||||||
mac_found_6g = False
|
mac_found_6g = False
|
||||||
print("6g selected ap_row (from split_row): {}".format(ap_row))
|
print("6g selected ap_row (from split_row): {}".format(ap_row))
|
||||||
|
|
||||||
# Find latency, jitter for connections using this port.
|
# Find latency, jitter for connections using this port.
|
||||||
self.get_endp_stats_for_port(
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
||||||
p["port"], endps)
|
p["port"], endps)
|
||||||
|
|
||||||
# now report the ap_chanim_stats along side of the ap_stats_6g
|
# now report the ap_chanim_stats along side of the ap_stats_6g
|
||||||
@@ -1037,13 +1016,14 @@ class L3VariableTime(Realm):
|
|||||||
try:
|
try:
|
||||||
xtop = split_row[7]
|
xtop = split_row[7]
|
||||||
print("6g xtop {xtop}".format(xtop=xtop))
|
print("6g xtop {xtop}".format(xtop=xtop))
|
||||||
try:
|
|
||||||
channel_utilization = float(100) - float(xtop)
|
|
||||||
print("6g channel_utilization {utilization}".format(utilization=channel_utilization))
|
|
||||||
except BaseException:
|
|
||||||
print("6g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print("6g detected chanspec with reading chanim_stats, exception reading xtop")
|
print("6g detected chanspec with reading chanim_stats, exception reading xtop")
|
||||||
|
|
||||||
|
try:
|
||||||
|
channel_utilization = float(100) - float(xtop)
|
||||||
|
print("6g channel_utilization {utilization}".format(utilization=channel_utilization))
|
||||||
|
except BaseException:
|
||||||
|
print("6g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
||||||
# should be only one channel utilization
|
# should be only one channel utilization
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
@@ -1081,17 +1061,30 @@ class L3VariableTime(Realm):
|
|||||||
if self.ap_test_mode:
|
if self.ap_test_mode:
|
||||||
if split_ul_row[0].lower() != mac.lower():
|
if split_ul_row[0].lower() != mac.lower():
|
||||||
ap_ul_row = split_ul_row
|
ap_ul_row = split_ul_row
|
||||||
print("6g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
mac_found_ul_6g = True
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
# split_ul_row[0].lower() , mac from AP
|
||||||
|
# mac.lower() , mac from LANforge
|
||||||
|
if split_ul_row[0].lower() == mac.lower():
|
||||||
|
ap_ul_row = split_ul_row
|
||||||
|
mac_found_ul_6g = True
|
||||||
|
except BaseException:
|
||||||
|
print("6g ul 'No stations are currently associated.'? from AP")
|
||||||
|
print(" ul since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
|
if mac_found_ul_6g == True:
|
||||||
|
mac_found_ul_6g = False
|
||||||
|
print("6g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
||||||
|
|
||||||
# Find latency, jitter for connections using this port.
|
# Find latency, jitter for connections using this port.
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
||||||
p["port"], endps)
|
p["port"], endps)
|
||||||
|
|
||||||
print("6g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
print("6g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
||||||
|
|
||||||
self.write_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
self.write_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
||||||
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_row)
|
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_row)
|
||||||
#####
|
#####
|
||||||
# 5G test mode
|
# 5G test mode
|
||||||
if self.ap_test_mode:
|
if self.ap_test_mode:
|
||||||
@@ -1155,7 +1148,7 @@ class L3VariableTime(Realm):
|
|||||||
except BaseException:
|
except BaseException:
|
||||||
print("5g 'No stations are currently associated.'? from AP")
|
print("5g 'No stations are currently associated.'? from AP")
|
||||||
print("5g since possibly no stations: excption on compare split_row[0].lower() ")
|
print("5g since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
if mac_found_5g is True:
|
if mac_found_5g == True:
|
||||||
mac_found_5g = False
|
mac_found_5g = False
|
||||||
print("5g selected ap_row (from split_row): {}".format(ap_row))
|
print("5g selected ap_row (from split_row): {}".format(ap_row))
|
||||||
|
|
||||||
@@ -1173,14 +1166,14 @@ class L3VariableTime(Realm):
|
|||||||
try:
|
try:
|
||||||
xtop = split_row[7]
|
xtop = split_row[7]
|
||||||
print("5g xtop {xtop}".format(xtop=xtop))
|
print("5g xtop {xtop}".format(xtop=xtop))
|
||||||
try:
|
|
||||||
channel_utilization = float(100) - float(xtop)
|
|
||||||
print("5g channel_utilization {utilization}".format(utilization=channel_utilization))
|
|
||||||
except BaseException:
|
|
||||||
print("5g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print("5g detected chanspec with reading chanim_stats, exception reading xtop")
|
print("5g detected chanspec with reading chanim_stats, exception reading xtop")
|
||||||
|
|
||||||
|
try:
|
||||||
|
channel_utilization = float(100) - float(xtop)
|
||||||
|
print("5g channel_utilization {utilization}".format(utilization=channel_utilization))
|
||||||
|
except BaseException:
|
||||||
|
print("5g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
||||||
# should be only one channel utilization
|
# should be only one channel utilization
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
@@ -1221,27 +1214,32 @@ class L3VariableTime(Realm):
|
|||||||
split_ul_row = row.split()
|
split_ul_row = row.split()
|
||||||
# print("split_row {}".format(split_row))
|
# print("split_row {}".format(split_row))
|
||||||
# print("split_row[0] {} mac {}".format(split_row[0].lower(),mac.lower()))
|
# print("split_row[0] {} mac {}".format(split_row[0].lower(),mac.lower()))
|
||||||
if not self.ap_test_mode:
|
if self.ap_test_mode:
|
||||||
|
if split_ul_row[0].lower() != mac.lower():
|
||||||
|
ap_ul_row = split_ul_row
|
||||||
|
mac_found_ul_5g = True
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
# split_ul_row[0].lower() , mac from AP
|
# split_ul_row[0].lower() , mac from AP
|
||||||
# mac.lower() , mac from LANforge
|
# mac.lower() , mac from LANforge
|
||||||
if split_ul_row[0].lower() == mac.lower():
|
if split_ul_row[0].lower() == mac.lower():
|
||||||
ap_ul_row = split_ul_row
|
ap_ul_row = split_ul_row
|
||||||
mac_found_ul_5g = True
|
mac_found_ul_5g = True
|
||||||
if mac_found_ul_5g is True:
|
|
||||||
print("5g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
|
||||||
|
|
||||||
# Find latency, jitter for connections using this port.
|
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
|
||||||
p["port"], endps)
|
|
||||||
|
|
||||||
print("5g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
|
||||||
self.write_ul_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
|
||||||
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_ul_row)
|
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print("5g ul 'No stations are currently associated.'? from AP")
|
print("5g ul 'No stations are currently associated.'? from AP")
|
||||||
print("5g ul since possibly no stations: excption on compare split_row[0].lower() ")
|
print("5g ul since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
|
if mac_found_ul_5g == True:
|
||||||
|
mac_found_ul_5g = False
|
||||||
|
print("5g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
||||||
|
|
||||||
|
# Find latency, jitter for connections using this port.
|
||||||
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
||||||
|
p["port"], endps)
|
||||||
|
|
||||||
|
print("5g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
||||||
|
self.write_ul_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
||||||
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
||||||
|
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_ul_row)
|
||||||
|
|
||||||
# 2g test mode
|
# 2g test mode
|
||||||
if self.ap_test_mode:
|
if self.ap_test_mode:
|
||||||
@@ -1304,7 +1302,7 @@ class L3VariableTime(Realm):
|
|||||||
except BaseException:
|
except BaseException:
|
||||||
print("2g 'No stations are currently associated.'? from AP")
|
print("2g 'No stations are currently associated.'? from AP")
|
||||||
print("2g since possibly no stations: excption on compare split_row[0].lower() ")
|
print("2g since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
if mac_found_2g is True:
|
if mac_found_2g == True:
|
||||||
mac_found_2g = False
|
mac_found_2g = False
|
||||||
print("2g selected ap_row (from split_row): {}".format(ap_row))
|
print("2g selected ap_row (from split_row): {}".format(ap_row))
|
||||||
|
|
||||||
@@ -1322,16 +1320,16 @@ class L3VariableTime(Realm):
|
|||||||
try:
|
try:
|
||||||
xtop = split_row[7]
|
xtop = split_row[7]
|
||||||
print("2g xtop {xtop}".format(xtop=xtop))
|
print("2g xtop {xtop}".format(xtop=xtop))
|
||||||
try:
|
|
||||||
channel_utilization = float(100) - float(xtop)
|
|
||||||
print("2g channel_utilization {utilization}".format(utilization=channel_utilization))
|
|
||||||
except BaseException:
|
|
||||||
print("2g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
|
||||||
# should be only one channel utilization
|
|
||||||
break
|
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print("2g detected chanspec with reading chanim_stats, exception reading xtop")
|
print("2g detected chanspec with reading chanim_stats, exception reading xtop")
|
||||||
|
|
||||||
|
try:
|
||||||
|
channel_utilization = float(100) - float(xtop)
|
||||||
|
print("2g channel_utilization {utilization}".format(utilization=channel_utilization))
|
||||||
|
except BaseException:
|
||||||
|
print("2g detected chanspec with reading chanim_stats, failed calcluating channel_utilization from xtop")
|
||||||
|
# should be only one channel utilization
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
if split_row[0].lower() == 'chanspec':
|
if split_row[0].lower() == 'chanspec':
|
||||||
@@ -1369,28 +1367,32 @@ class L3VariableTime(Realm):
|
|||||||
split_ul_row = row.split()
|
split_ul_row = row.split()
|
||||||
# print("split_row {}".format(split_row))
|
# print("split_row {}".format(split_row))
|
||||||
# print("split_row[0] {} mac {}".format(split_row[0].lower(),mac.lower()))
|
# print("split_row[0] {} mac {}".format(split_row[0].lower(),mac.lower()))
|
||||||
if not self.ap_test_mode:
|
if self.ap_test_mode:
|
||||||
|
if split_ul_row[0].lower() != mac.lower():
|
||||||
|
ap_ul_row = split_ul_row
|
||||||
|
mac_found_ul_2g = True
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
# split_ul_row[0].lower() , mac from AP
|
# split_ul_row[0].lower() , mac from AP
|
||||||
# mac.lower() , mac from LANforge
|
# mac.lower() , mac from LANforge
|
||||||
if split_ul_row[0].lower() == mac.lower():
|
if split_ul_row[0].lower() == mac.lower():
|
||||||
ap_ul_row = split_ul_row
|
ap_ul_row = split_ul_row
|
||||||
mac_found_ul_2g = True
|
mac_found_ul_2g = True
|
||||||
if mac_found_ul_2g is True:
|
|
||||||
print("2g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
|
||||||
|
|
||||||
# Find latency, jitter for connections using this port.
|
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
|
||||||
p["port"], endps)
|
|
||||||
|
|
||||||
print("2g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
|
||||||
self.write_ul_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
|
||||||
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
|
||||||
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_ul_row)
|
|
||||||
except BaseException:
|
except BaseException:
|
||||||
print("2g ul 'No stations are currently associated.'? from AP")
|
print("2g ul 'No stations are currently associated.'? from AP")
|
||||||
print("2g ul since possibly no stations: excption on compare split_row[0].lower() ")
|
print("2g ul since possibly no stations: excption on compare split_row[0].lower() ")
|
||||||
|
if mac_found_ul_2g == True:
|
||||||
|
mac_found_ul_2g = False
|
||||||
|
print("2g ul selected ap_ul_row (from split_ul_row): {}".format(ap_ul_row))
|
||||||
|
|
||||||
|
# Find latency, jitter for connections using this port.
|
||||||
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll, total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll = self.get_endp_stats_for_port(
|
||||||
|
p["port"], endps)
|
||||||
|
|
||||||
|
print("2g ap_ul_row {ap_ul_row}".format(ap_ul_row=ap_ul_row))
|
||||||
|
self.write_ul_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
||||||
|
latency, jitter, total_ul_rate, total_ul_rate_ll, total_ul_pkts_ll,
|
||||||
|
total_dl_rate, total_dl_rate_ll, total_dl_pkts_ll, ap_ul_row)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
# Query all of our ports
|
# Query all of our ports
|
||||||
@@ -1469,6 +1471,8 @@ class L3VariableTime(Realm):
|
|||||||
self.cx_profile.stop_cx()
|
self.cx_profile.stop_cx()
|
||||||
self.multicast_profile.stop_mc()
|
self.multicast_profile.stop_mc()
|
||||||
|
|
||||||
|
cur_time = datetime.datetime.now()
|
||||||
|
|
||||||
if passes == expected_passes:
|
if passes == expected_passes:
|
||||||
self._pass("PASS: Requested-Rate: %s <-> %s PDU: %s <-> %s All tests passed" % (ul, dl, ul_pdu, dl_pdu), print_pass)
|
self._pass("PASS: Requested-Rate: %s <-> %s PDU: %s <-> %s All tests passed" % (ul, dl, ul_pdu, dl_pdu), print_pass)
|
||||||
|
|
||||||
@@ -1629,8 +1633,7 @@ class L3VariableTime(Realm):
|
|||||||
for station_profile in self.station_profiles:
|
for station_profile in self.station_profiles:
|
||||||
station_profile.cleanup()
|
station_profile.cleanup()
|
||||||
|
|
||||||
@staticmethod
|
def csv_generate_column_headers(self):
|
||||||
def csv_generate_column_headers():
|
|
||||||
csv_rx_headers = ['Time epoch', 'Time', 'Monitor', 'UL-Min-Requested', 'UL-Max-Requested', 'DL-Min-Requested', 'DL-Max-Requested', 'UL-Min-PDU', 'UL-Max-PDU', 'DL-Min-PDU', 'DL-Max-PDU', "average_rx_data_bytes"]
|
csv_rx_headers = ['Time epoch', 'Time', 'Monitor', 'UL-Min-Requested', 'UL-Max-Requested', 'DL-Min-Requested', 'DL-Max-Requested', 'UL-Min-PDU', 'UL-Max-PDU', 'DL-Min-PDU', 'DL-Max-PDU', "average_rx_data_bytes"]
|
||||||
return csv_rx_headers
|
return csv_rx_headers
|
||||||
|
|
||||||
@@ -1703,14 +1706,12 @@ class L3VariableTime(Realm):
|
|||||||
ul_port_csv_writer.writerow(headers)
|
ul_port_csv_writer.writerow(headers)
|
||||||
pfile.flush()
|
pfile.flush()
|
||||||
|
|
||||||
@staticmethod
|
def csv_validate_list(self, csv_list, length):
|
||||||
def csv_validate_list(csv_list, length):
|
|
||||||
if len(csv_list) < length:
|
if len(csv_list) < length:
|
||||||
csv_list = csv_list + [('no data', 'no data')] * (length - len(csv_list))
|
csv_list = csv_list + [('no data', 'no data')] * (length - len(csv_list))
|
||||||
return csv_list
|
return csv_list
|
||||||
|
|
||||||
@staticmethod
|
def csv_add_row(self, row, writer, csv_file):
|
||||||
def csv_add_row(row, writer, csv_file):
|
|
||||||
if csv_file is not None:
|
if csv_file is not None:
|
||||||
writer.writerow(row)
|
writer.writerow(row)
|
||||||
csv_file.flush()
|
csv_file.flush()
|
||||||
@@ -1736,6 +1737,7 @@ def main():
|
|||||||
lfjson_host = "localhost"
|
lfjson_host = "localhost"
|
||||||
lfjson_port = 8080
|
lfjson_port = 8080
|
||||||
endp_types = "lf_udp"
|
endp_types = "lf_udp"
|
||||||
|
debug = False
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
prog='test_l3_longevity.py',
|
prog='test_l3_longevity.py',
|
||||||
@@ -1863,7 +1865,7 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
parser.add_argument('-t', '--endp_type', help='--endp_type <types of traffic> example --endp_type \"lf_udp lf_tcp mc_udp\" Default: lf_udp , options: lf_udp, lf_udp6, lf_tcp, lf_tcp6, mc_udp, mc_udp6',
|
parser.add_argument('-t', '--endp_type', help='--endp_type <types of traffic> example --endp_type \"lf_udp lf_tcp mc_udp\" Default: lf_udp , options: lf_udp, lf_udp6, lf_tcp, lf_tcp6, mc_udp, mc_udp6',
|
||||||
default='lf_udp', type=valid_endp_types)
|
default='lf_udp', type=valid_endp_types)
|
||||||
parser.add_argument('-u', '--upstream_port', help='--upstream_port <cross connect upstream_port> example: --upstream_port eth1', default='eth1')
|
parser.add_argument('-u', '--upstream_port', help='--upstream_port <cross connect upstream_port> example: --upstream_port eth1', default='eth1')
|
||||||
parser.add_argument('--downstream_port', help='--downstream_port <cross connect downstream_port> example: --downstream_port eth2', default=None)
|
parser.add_argument('--downstream_port', help='--downstream_port <cross connect downstream_port> example: --downstream_port eth2')
|
||||||
parser.add_argument('--polling_interval', help="--polling_interval <seconds>", default='60s')
|
parser.add_argument('--polling_interval', help="--polling_interval <seconds>", default='60s')
|
||||||
|
|
||||||
parser.add_argument('-r', '--radio', action='append', nargs=1, help='--radio\
|
parser.add_argument('-r', '--radio', action='append', nargs=1, help='--radio\
|
||||||
@@ -1935,6 +1937,7 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
dut_hw_version = args.dut_hw_version
|
dut_hw_version = args.dut_hw_version
|
||||||
dut_sw_version = args.dut_sw_version
|
dut_sw_version = args.dut_sw_version
|
||||||
dut_model_num = args.dut_model_num
|
dut_model_num = args.dut_model_num
|
||||||
|
test_priority = args.test_priority # this may need to be set per test
|
||||||
test_id = args.test_id
|
test_id = args.test_id
|
||||||
|
|
||||||
if args.ap_read:
|
if args.ap_read:
|
||||||
@@ -1952,12 +1955,64 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
else:
|
else:
|
||||||
ap_ofdma_stats = False
|
ap_ofdma_stats = False
|
||||||
|
|
||||||
|
if args.ap_test_mode:
|
||||||
|
ap_test_mode = args.ap_test_mode
|
||||||
|
else:
|
||||||
|
ap_test_mode = False
|
||||||
|
|
||||||
|
if args.ap_port:
|
||||||
|
ap_port = args.ap_port
|
||||||
|
|
||||||
|
if args.ap_baud:
|
||||||
|
ap_baud = args.ap_baud
|
||||||
|
|
||||||
|
if args.ap_cmd_6g:
|
||||||
|
ap_cmd_6g = args.ap_cmd_6g
|
||||||
|
|
||||||
|
if args.ap_cmd_5g:
|
||||||
|
ap_cmd_5g = args.ap_cmd_5g
|
||||||
|
|
||||||
|
if args.ap_cmd_2g:
|
||||||
|
ap_cmd_2g = args.ap_cmd_2g
|
||||||
|
|
||||||
|
if args.ap_cmd_ul_6g:
|
||||||
|
ap_cmd_ul_6g = args.ap_cmd_ul_6g
|
||||||
|
|
||||||
|
if args.ap_cmd_ul_5g:
|
||||||
|
ap_cmd_ul_5g = args.ap_cmd_ul_5g
|
||||||
|
|
||||||
|
if args.ap_cmd_ul_2g:
|
||||||
|
ap_cmd_ul_2g = args.ap_cmd_ul_2g
|
||||||
|
|
||||||
|
if args.ap_chanim_cmd_6g:
|
||||||
|
ap_chanim_cmd_6g = args.ap_chanim_cmd_6g
|
||||||
|
|
||||||
|
if args.ap_chanim_cmd_5g:
|
||||||
|
ap_chanim_cmd_5g = args.ap_chanim_cmd_5g
|
||||||
|
|
||||||
|
if args.ap_chanim_cmd_2g:
|
||||||
|
ap_chanim_cmd_2g = args.ap_chanim_cmd_2g
|
||||||
|
|
||||||
|
if args.test_duration:
|
||||||
|
test_duration = args.test_duration
|
||||||
|
|
||||||
|
if args.polling_interval:
|
||||||
|
polling_interval = args.polling_interval
|
||||||
|
|
||||||
if args.endp_type:
|
if args.endp_type:
|
||||||
endp_types = args.endp_type
|
endp_types = args.endp_type
|
||||||
|
|
||||||
if args.lfmgr:
|
if args.lfmgr:
|
||||||
lfjson_host = args.lfmgr
|
lfjson_host = args.lfmgr
|
||||||
|
|
||||||
|
if args.upstream_port:
|
||||||
|
side_b = args.upstream_port
|
||||||
|
|
||||||
|
if args.downstream_port:
|
||||||
|
side_a = args.downstream_port
|
||||||
|
else:
|
||||||
|
side_a = None
|
||||||
|
|
||||||
if args.radio:
|
if args.radio:
|
||||||
radios = args.radio
|
radios = args.radio
|
||||||
else:
|
else:
|
||||||
@@ -1997,6 +2052,7 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
|
|
||||||
influxdb = None
|
influxdb = None
|
||||||
if args.influx_bucket is not None:
|
if args.influx_bucket is not None:
|
||||||
|
from InfluxRequest import RecordInflux
|
||||||
influxdb = RecordInflux(_influx_host=args.influx_host,
|
influxdb = RecordInflux(_influx_host=args.influx_host,
|
||||||
_influx_port=args.influx_port,
|
_influx_port=args.influx_port,
|
||||||
_influx_org=args.influx_org,
|
_influx_org=args.influx_org,
|
||||||
@@ -2090,8 +2146,8 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
endp_types=endp_types,
|
endp_types=endp_types,
|
||||||
args=args,
|
args=args,
|
||||||
tos=args.tos,
|
tos=args.tos,
|
||||||
side_b=args.upstream_port,
|
side_b=side_b,
|
||||||
side_a=args.downstream_port,
|
side_a=side_a,
|
||||||
radio_name_list=radio_name_list,
|
radio_name_list=radio_name_list,
|
||||||
number_of_stations_per_radio_list=number_of_stations_per_radio_list,
|
number_of_stations_per_radio_list=number_of_stations_per_radio_list,
|
||||||
ssid_list=ssid_list,
|
ssid_list=ssid_list,
|
||||||
@@ -2113,8 +2169,8 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
attenuators=attenuators,
|
attenuators=attenuators,
|
||||||
atten_vals=atten_vals,
|
atten_vals=atten_vals,
|
||||||
number_template="00",
|
number_template="00",
|
||||||
test_duration=args.test_duration,
|
test_duration=test_duration,
|
||||||
polling_interval=args.polling_interval,
|
polling_interval=polling_interval,
|
||||||
lfclient_host=lfjson_host,
|
lfclient_host=lfjson_host,
|
||||||
lfclient_port=lfjson_port,
|
lfclient_port=lfjson_port,
|
||||||
debug=debug,
|
debug=debug,
|
||||||
@@ -2123,18 +2179,18 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
ap_scheduler_stats=ap_scheduler_stats,
|
ap_scheduler_stats=ap_scheduler_stats,
|
||||||
ap_ofdma_stats=ap_ofdma_stats,
|
ap_ofdma_stats=ap_ofdma_stats,
|
||||||
ap_read=ap_read,
|
ap_read=ap_read,
|
||||||
ap_port=args.ap_port,
|
ap_port=ap_port,
|
||||||
ap_baud=args.ap_baud,
|
ap_baud=ap_baud,
|
||||||
ap_cmd_6g=args.ap_cmd_6g,
|
ap_cmd_6g=ap_cmd_6g,
|
||||||
ap_cmd_5g=args.ap_cmd_5g,
|
ap_cmd_5g=ap_cmd_5g,
|
||||||
ap_cmd_2g=args.ap_cmd_2g,
|
ap_cmd_2g=ap_cmd_2g,
|
||||||
ap_cmd_ul_6g=args.ap_cmd_ul_6g,
|
ap_cmd_ul_6g=ap_cmd_ul_6g,
|
||||||
ap_cmd_ul_5g=args.ap_cmd_ul_5g,
|
ap_cmd_ul_5g=ap_cmd_ul_5g,
|
||||||
ap_cmd_ul_2g=args.ap_cmd_ul_2g,
|
ap_cmd_ul_2g=ap_cmd_ul_2g,
|
||||||
ap_chanim_cmd_6g=args.ap_chanim_cmd_6g,
|
ap_chanim_cmd_6g=ap_chanim_cmd_6g,
|
||||||
ap_chanim_cmd_5g=args.ap_chanim_cmd_5g,
|
ap_chanim_cmd_5g=ap_chanim_cmd_5g,
|
||||||
ap_chanim_cmd_2g=args.ap_chanim_cmd_2g,
|
ap_chanim_cmd_2g=ap_chanim_cmd_2g,
|
||||||
ap_test_mode=args.ap_test_mode)
|
ap_test_mode=ap_test_mode)
|
||||||
|
|
||||||
ip_var_test.pre_cleanup()
|
ip_var_test.pre_cleanup()
|
||||||
|
|
||||||
@@ -2143,7 +2199,7 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
print("build step failed.")
|
print("build step failed.")
|
||||||
print(ip_var_test.get_fail_message())
|
print(ip_var_test.get_fail_message())
|
||||||
exit(1)
|
exit(1)
|
||||||
ip_var_test.start(False)
|
ip_var_test.start(False, False)
|
||||||
ip_var_test.stop()
|
ip_var_test.stop()
|
||||||
if not ip_var_test.passes():
|
if not ip_var_test.passes():
|
||||||
print("Test Ended: There were Failures")
|
print("Test Ended: There were Failures")
|
||||||
@@ -2219,21 +2275,21 @@ python3 .\\test_l3_longevity.py --test_duration 4m --endp_type \"lf_tcp lf_udp m
|
|||||||
print("getting ofdma ap data and writing to a file")
|
print("getting ofdma ap data and writing to a file")
|
||||||
file_date = report.get_date()
|
file_date = report.get_date()
|
||||||
|
|
||||||
ip_var_test.get_ap_ofdma_6g()
|
ap_ofdma_6g_data = ip_var_test.get_ap_ofdma_6g()
|
||||||
ap_ofdma_6g = "{}-{}".format(file_date, "ap_ofdma_6g_data.txt")
|
ap_ofdma_6g = "{}-{}".format(file_date, "ap_ofdma_6g_data.txt")
|
||||||
ap_ofdma_6g = report.file_add_path(ap_ofdma_6g)
|
ap_ofdma_6g = report.file_add_path(ap_ofdma_6g)
|
||||||
ap_ofdma_6g_data = open(ap_ofdma_6g, "w")
|
ap_ofdma_6g_data = open(ap_ofdma_6g, "w")
|
||||||
ap_ofdma_6g_data.write(str(ap_ofdma_6g_data))
|
ap_ofdma_6g_data.write(str(ap_ofdma_6g_data))
|
||||||
ap_ofdma_6g_data.close()
|
ap_ofdma_6g_data.close()
|
||||||
|
|
||||||
ip_var_test.get_ap_ofdma_5g()
|
ap_ofdma_5g_data = ip_var_test.get_ap_ofdma_5g()
|
||||||
ap_ofdma_5g = "{}-{}".format(file_date, "ap_ofdma_5g_data.txt")
|
ap_ofdma_5g = "{}-{}".format(file_date, "ap_ofdma_5g_data.txt")
|
||||||
ap_ofdma_5g = report.file_add_path(ap_ofdma_5g)
|
ap_ofdma_5g = report.file_add_path(ap_ofdma_5g)
|
||||||
ap_ofdma_5g_data = open(ap_ofdma_5g, "w")
|
ap_ofdma_5g_data = open(ap_ofdma_5g, "w")
|
||||||
ap_ofdma_5g_data.write(str(ap_ofdma_5g_data))
|
ap_ofdma_5g_data.write(str(ap_ofdma_5g_data))
|
||||||
ap_ofdma_5g_data.close()
|
ap_ofdma_5g_data.close()
|
||||||
|
|
||||||
ip_var_test.get_ap_ofdma_24g()
|
ap_ofdma_24g_data = ip_var_test.get_ap_ofdma_24g()
|
||||||
ap_ofdma_24g = "{}-{}".format(file_date, "ap_ofdma_24g_data.txt")
|
ap_ofdma_24g = "{}-{}".format(file_date, "ap_ofdma_24g_data.txt")
|
||||||
ap_ofdma_24g = report.file_add_path(ap_ofdma_24g)
|
ap_ofdma_24g = report.file_add_path(ap_ofdma_24g)
|
||||||
ap_ofdma_24g_data = open(ap_ofdma_24g, "w")
|
ap_ofdma_24g_data = open(ap_ofdma_24g, "w")
|
||||||
|
|||||||
Reference in New Issue
Block a user