mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 11:18:03 +00:00
multiple modes added to test scenario
This commit is contained in:
@@ -158,38 +158,37 @@ class ThroughputQOS(Realm):
|
|||||||
print("cross connections with TOS type created.")
|
print("cross connections with TOS type created.")
|
||||||
|
|
||||||
def evaluate_throughput(self):
|
def evaluate_throughput(self):
|
||||||
tos_upload = {'_video': [], '_voice': [], '_bk': [], '_be': []}
|
tos_upload = {'video': [], 'voice': [], 'bk': [], 'be': []}
|
||||||
tos_download = {'_video': [], '_voice': [], '_bk': [], '_be': []}
|
tos_download = {'video': [], 'voice': [], 'bk': [], 'be': []}
|
||||||
if self.cx_profile.get_cx_count() > 0:
|
if self.cx_profile.get_cx_count() > 0:
|
||||||
for sta in self.cx_profile.created_cx.keys():
|
for sta in self.cx_profile.created_cx.keys():
|
||||||
temp = int(sta[12:])
|
temp = int(sta[12:])
|
||||||
if temp % 4 == 0:
|
if temp % 4 == 0:
|
||||||
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
||||||
tos_upload['_bk'].append(data['bps rx a'])
|
tos_upload['bk'].append(data['bps rx a'])
|
||||||
tos_download['_bk'].append(data['bps rx b'])
|
tos_download['bk'].append(data['bps rx b'])
|
||||||
elif temp % 4 == 1:
|
elif temp % 4 == 1:
|
||||||
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
||||||
tos_upload['_be'].append(data['bps rx a'])
|
tos_upload['be'].append(data['bps rx a'])
|
||||||
tos_download['_be'].append(data['bps rx b'])
|
tos_download['be'].append(data['bps rx b'])
|
||||||
elif temp % 4 == 2:
|
elif temp % 4 == 2:
|
||||||
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
||||||
tos_upload['_voice'].append(data['bps rx a'])
|
tos_upload['voice'].append(data['bps rx a'])
|
||||||
tos_download['_voice'].append(data['bps rx b'])
|
tos_download['voice'].append(data['bps rx b'])
|
||||||
elif temp % 4 == 3:
|
elif temp % 4 == 3:
|
||||||
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
data = list(self.json_get('/cx/%s?fields=bps+rx+a,bps+rx+b' % sta).values())[2]
|
||||||
tos_upload['_video'].append(data['bps rx a'])
|
tos_upload['video'].append(data['bps rx a'])
|
||||||
tos_download['_video'].append(data['bps rx b'])
|
tos_download['video'].append(data['bps rx b'])
|
||||||
tos_upload.update({"_videoQOS": sum(tos_upload['_video'])})
|
tos_upload.update({"videoQOS": sum(tos_upload['video'])})
|
||||||
tos_upload.update({"_voiceQOS": sum(tos_upload['_voice'])})
|
tos_upload.update({"voiceQOS": sum(tos_upload['voice'])})
|
||||||
tos_upload.update({"_bkQOS": sum(tos_upload['_bk'])})
|
tos_upload.update({"bkQOS": sum(tos_upload['bk'])})
|
||||||
tos_upload.update({"_beQOS": sum(tos_upload['_be'])})
|
tos_upload.update({"beQOS": sum(tos_upload['be'])})
|
||||||
tos_download.update({"_videoQOS": sum(tos_download['_video'])})
|
tos_download.update({"videoQOS": sum(tos_download['video'])})
|
||||||
tos_download.update({"_voiceQOS": sum(tos_download['_voice'])})
|
tos_download.update({"voiceQOS": sum(tos_download['voice'])})
|
||||||
tos_download.update({"_bkQOS": sum(tos_download['_bk'])})
|
tos_download.update({"bkQOS": sum(tos_download['bk'])})
|
||||||
tos_download.update({"_beQOS": sum(tos_download['_be'])})
|
tos_download.update({"beQOS": sum(tos_download['be'])})
|
||||||
else:
|
else:
|
||||||
print("no connections available to evaluate QOS")
|
print("no connections available to evaluate QOS")
|
||||||
print(tos_upload, tos_download)
|
|
||||||
return tos_upload, tos_download
|
return tos_upload, tos_download
|
||||||
|
|
||||||
|
|
||||||
@@ -198,7 +197,7 @@ def main():
|
|||||||
prog='throughput_QOS.py',
|
prog='throughput_QOS.py',
|
||||||
formatter_class=argparse.RawTextHelpFormatter,
|
formatter_class=argparse.RawTextHelpFormatter,
|
||||||
epilog='''\
|
epilog='''\
|
||||||
Create stations and endpoints and runs L3 traffic with various IP types of service(BK | BE | Video | Voice)
|
Create stations and endpoints and runs L3 traffic with various IP type of service(BK | BE | Video | Voice)
|
||||||
''',
|
''',
|
||||||
description='''\
|
description='''\
|
||||||
throughput_QOS.py:
|
throughput_QOS.py:
|
||||||
@@ -253,14 +252,12 @@ python3 ./throughput_QOS.py
|
|||||||
parser.add_argument('--modes', help='used to run on multiple radio modes,can be used with multiple stations',
|
parser.add_argument('--modes', help='used to run on multiple radio modes,can be used with multiple stations',
|
||||||
default="0")
|
default="0")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
print("--------------------------------------------")
|
print("--------------------------------------------")
|
||||||
print(args)
|
print(args)
|
||||||
print("--------------------------------------------")
|
print("--------------------------------------------")
|
||||||
results = []
|
results = []
|
||||||
|
loads = {}
|
||||||
# for multiple test conditions #
|
# for multiple test conditions #
|
||||||
if args.num_stations is not None:
|
|
||||||
stations = args.num_stations.split(',')
|
|
||||||
if args.mode is not None:
|
if args.mode is not None:
|
||||||
modes = args.mode.split(',')
|
modes = args.mode.split(',')
|
||||||
if args.radio is not None:
|
if args.radio is not None:
|
||||||
@@ -269,6 +266,7 @@ python3 ./throughput_QOS.py
|
|||||||
args.a_min = args.a_min.split(',')
|
args.a_min = args.a_min.split(',')
|
||||||
args.b_min = args.b_min.split(',')
|
args.b_min = args.b_min.split(',')
|
||||||
loads = {"a_min": args.a_min, "b_min": args.b_min}
|
loads = {"a_min": args.a_min, "b_min": args.b_min}
|
||||||
|
# if radios is not None:
|
||||||
# try:
|
# try:
|
||||||
# if len(args.a_min) != len(args.b_min):
|
# if len(args.a_min) != len(args.b_min):
|
||||||
# raise print("The values of a_min and b_min should be same.")
|
# raise print("The values of a_min and b_min should be same.")
|
||||||
@@ -276,11 +274,34 @@ python3 ./throughput_QOS.py
|
|||||||
# print("")
|
# print("")
|
||||||
if args.test_duration is not None:
|
if args.test_duration is not None:
|
||||||
args.test_duration = args.test_duration.strip('m')
|
args.test_duration = args.test_duration.strip('m')
|
||||||
for station in stations:
|
for key in modes:
|
||||||
|
if key == "2.4G" or key == "2.4g":
|
||||||
if args.create_sta:
|
if args.create_sta:
|
||||||
station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=int(station) - 1,
|
station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=int(args.num_stations) - 1,
|
||||||
padding_number_=10000,
|
padding_number_=10000,
|
||||||
radio=args.radio)
|
radio=radios[0])
|
||||||
|
else:
|
||||||
|
station_list = args.sta_names.split(",")
|
||||||
|
elif key == "5G" or key == "5g":
|
||||||
|
if radios[1] is None:
|
||||||
|
radios[1] = "wiphy0"
|
||||||
|
if args.create_sta:
|
||||||
|
station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=int(args.num_stations) - 1,
|
||||||
|
padding_number_=10000,
|
||||||
|
radio=radios[1])
|
||||||
|
else:
|
||||||
|
station_list = args.sta_names.split(",")
|
||||||
|
elif key == "BOTH" or key == "both":
|
||||||
|
if radios[2] is not None:
|
||||||
|
radios[2] = "wiphy0"
|
||||||
|
if args.create_sta:
|
||||||
|
station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=int(args.num_stations) // 2,
|
||||||
|
padding_number_=10000,
|
||||||
|
radio=radios[2])
|
||||||
|
station_list.append(LFUtils.portNameSeries(prefix_="sta", start_id_=(int(args.num_stations) // 2) + 1,
|
||||||
|
end_id_=int(args.num_stations) - 1,
|
||||||
|
padding_number_=10000,
|
||||||
|
radio=radios[2]))
|
||||||
else:
|
else:
|
||||||
station_list = args.sta_names.split(",")
|
station_list = args.sta_names.split(",")
|
||||||
for index in range(len(loads["a_min"])):
|
for index in range(len(loads["a_min"])):
|
||||||
@@ -293,21 +314,20 @@ python3 ./throughput_QOS.py
|
|||||||
upstream=args.upstream_port,
|
upstream=args.upstream_port,
|
||||||
ssid=args.ssid,
|
ssid=args.ssid,
|
||||||
password=args.passwd,
|
password=args.passwd,
|
||||||
radio=args.radio,
|
radio=radios[key],
|
||||||
security=args.security,
|
security=args.security,
|
||||||
test_duration=args.test_duration,
|
test_duration=args.test_duration,
|
||||||
use_ht160=False,
|
use_ht160=False,
|
||||||
side_a_min_rate=loads["a_min"][index],
|
side_a_min_rate=loads["a_min"][index],
|
||||||
side_b_min_rate=loads["b_min"][index],
|
side_b_min_rate=loads["b_min"][index],
|
||||||
mode=args.mode,
|
mode=int(modes[key]),
|
||||||
ap=args.ap,
|
ap=args.ap,
|
||||||
traffic_type=args.traffic_type,
|
traffic_type=args.traffic_type,
|
||||||
tos=args.tos,
|
tos=args.tos,
|
||||||
_debug_on=args.debug)
|
_debug_on=args.debug)
|
||||||
|
|
||||||
throughput_qos.pre_cleanup()
|
throughput_qos.pre_cleanup()
|
||||||
throughput_qos.build()
|
throughput_qos.build()
|
||||||
# exit()
|
|
||||||
if args.create_sta:
|
if args.create_sta:
|
||||||
if not throughput_qos.passes():
|
if not throughput_qos.passes():
|
||||||
print(throughput_qos.get_fail_message())
|
print(throughput_qos.get_fail_message())
|
||||||
@@ -335,6 +355,5 @@ python3 ./throughput_QOS.py
|
|||||||
print('+++++++++++++++++')
|
print('+++++++++++++++++')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
@@ -41,7 +41,7 @@ def grph(report, data_set=None, xaxis_name="stations", yaxis_name="Throughput 2
|
|||||||
report.build_graph()
|
report.build_graph()
|
||||||
|
|
||||||
|
|
||||||
def tos_report(util, sta_num, bps_rx_a, bps_rx_b, tbl_title, grp_title, upload=1000000, download=1000000):
|
def generate_report(util, sta_num, bps_rx_a, bps_rx_b, tbl_title, grp_title, upload=1000000, download=1000000):
|
||||||
# report generation main function
|
# report generation main function
|
||||||
rx_a = []
|
rx_a = []
|
||||||
rx_b = []
|
rx_b = []
|
||||||
@@ -107,7 +107,7 @@ def tos_report(util, sta_num, bps_rx_a, bps_rx_b, tbl_title, grp_title, upload=1
|
|||||||
|
|
||||||
# objective title and description
|
# objective title and description
|
||||||
report.set_obj_html(_obj_title="Objective",
|
report.set_obj_html(_obj_title="Objective",
|
||||||
_obj="Through this test we can evaluate the throughput given number of clients which"
|
_obj="Through this test we can evaluate the throughput for given number of clients which"
|
||||||
"are running the traffic with a particular TOS i.e BK,BE,VI,VO")
|
"are running the traffic with a particular TOS i.e BK,BE,VI,VO")
|
||||||
report.build_objective()
|
report.build_objective()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user