mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	 4e7e8b9360
			
		
	
	4e7e8b9360
	
	
	
		
			
			2. Create check_argparse which allows us to check which flags are or are not included in argparse statements. Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
		
			
				
	
	
		
			583 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			583 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| """
 | |
| Note: To Run this script gui should be opened with
 | |
| 
 | |
|     path: cd LANforgeGUI_5.4.3 (5.4.3 can be changed with GUI version)
 | |
|           pwd (Output : /home/lanforge/LANforgeGUI_5.4.3)
 | |
|           ./lfclient.bash -cli-socket 3990
 | |
| 
 | |
| Note: This is a test file which will run a wifi capacity test.
 | |
|     ex. on how to run this script (if stations are available in lanforge):
 | |
|     The influx part can be skipped if you are not using influx/graphana.
 | |
| 
 | |
|     ./lf_wifi_capacity_test.py --mgr localhost --port 8080 --lf_user lanforge --lf_password lanforge \
 | |
|              --instance_name this_inst --config_name test_con --upstream 1.1.eth2 --batch_size 1,5,25,50,100 --loop_iter 1 \
 | |
|              --protocol UDP-IPv4 --duration 6000 --pull_report \
 | |
|              --test_rig Testbed-01 \
 | |
|              --influx_host c7-graphana --influx_port 8086 --influx_org Candela \
 | |
|              --influx_token=-u_Wd-L8o992701QF0c5UmqEp7w7Z7YOMaWLxOMgmHfATJGnQbbmYyNxHBR9PgD6taM_tcxqJl6U8DjU1xINFQ== \
 | |
|              --influx_bucket ben \
 | |
|              --influx_tag testbed Ferndale-01
 | |
| 
 | |
|     ex. on how to run this script (to create new stations):
 | |
|     ./lf_wifi_capacity_test.py --mgr localhost --port 8080 --lf_user lanforge --lf_password lanforge \
 | |
|              --instance_name wct_instance --config_name wifi_config --upstream 1.1.eth1 --batch_size 1,5,25 --loop_iter 1 \
 | |
|              --protocol UDP-IPv4 --duration 6000 --pull_report --stations 1.1.sta0000,1.1.sta0001 \
 | |
|              --create_stations --radio wiphy0 --ssid test-ssid --security open --paswd [BLANK] \
 | |
|              --test_rig Testbed-01 --set DUT_NAME linksys-8450
 | |
| 
 | |
| 
 | |
| Note:
 | |
|     --pull_report == If specified, this will pull reports from lanforge to your code directory,
 | |
|                     from where you are running this code
 | |
| 
 | |
|     --stations == Enter stations to use for wifi capacity
 | |
| 
 | |
|     --set DUT_NAME XXXX == Determines which DUT the wifi capacity test should use to get details on
 | |
| 
 | |
| Example of raw text config for Capacity, to show other possible options:
 | |
| 
 | |
| sel_port-0: 1.1.eth1
 | |
| sel_port-1: 1.1.sta00000
 | |
| sel_port-2: 1.1.sta00001
 | |
| sel_port-3: 1.1.sta00002
 | |
| sel_port-4: 1.1.sta00003
 | |
| sel_port-5: 1.1.sta00004
 | |
| sel_port-6: 1.1.sta00005
 | |
| sel_port-7: 1.1.sta00006
 | |
| sel_port-8: 1.1.sta00007
 | |
| sel_port-9: 1.1.sta00008
 | |
| sel_port-10: 1.1.sta00009
 | |
| sel_port-11: 1.1.sta00010
 | |
| sel_port-12: 1.1.sta00011
 | |
| sel_port-13: 1.1.sta00012
 | |
| sel_port-14: 1.1.sta00013
 | |
| sel_port-15: 1.1.sta00014
 | |
| sel_port-16: 1.1.sta00015
 | |
| sel_port-17: 1.1.sta00016
 | |
| sel_port-18: 1.1.sta00017
 | |
| sel_port-19: 1.1.sta00018
 | |
| sel_port-20: 1.1.sta00019
 | |
| sel_port-21: 1.1.sta00020
 | |
| sel_port-22: 1.1.sta00021
 | |
| sel_port-23: 1.1.sta00022
 | |
| sel_port-24: 1.1.sta00023
 | |
| sel_port-25: 1.1.sta00024
 | |
| sel_port-26: 1.1.sta00025
 | |
| sel_port-27: 1.1.sta00026
 | |
| sel_port-28: 1.1.sta00027
 | |
| sel_port-29: 1.1.sta00028
 | |
| sel_port-30: 1.1.sta00029
 | |
| sel_port-31: 1.1.sta00030
 | |
| sel_port-32: 1.1.sta00031
 | |
| sel_port-33: 1.1.sta00032
 | |
| sel_port-34: 1.1.sta00033
 | |
| sel_port-35: 1.1.sta00034
 | |
| sel_port-36: 1.1.sta00035
 | |
| sel_port-37: 1.1.sta00036
 | |
| sel_port-38: 1.1.sta00037
 | |
| sel_port-39: 1.1.sta00038
 | |
| sel_port-40: 1.1.sta00039
 | |
| sel_port-41: 1.1.sta00040
 | |
| sel_port-42: 1.1.sta00041
 | |
| sel_port-43: 1.1.sta00042
 | |
| sel_port-44: 1.1.sta00043
 | |
| sel_port-45: 1.1.sta00044
 | |
| sel_port-46: 1.1.sta00045
 | |
| sel_port-47: 1.1.sta00046
 | |
| sel_port-48: 1.1.sta00047
 | |
| sel_port-49: 1.1.sta00048
 | |
| sel_port-50: 1.1.sta00049
 | |
| sel_port-51: 1.1.sta00500
 | |
| sel_port-52: 1.1.sta00501
 | |
| sel_port-53: 1.1.sta00502
 | |
| sel_port-54: 1.1.sta00503
 | |
| sel_port-55: 1.1.sta00504
 | |
| sel_port-56: 1.1.sta00505
 | |
| sel_port-57: 1.1.sta00506
 | |
| sel_port-58: 1.1.sta00507
 | |
| sel_port-59: 1.1.sta00508
 | |
| sel_port-60: 1.1.sta00509
 | |
| sel_port-61: 1.1.sta00510
 | |
| sel_port-62: 1.1.sta00511
 | |
| sel_port-63: 1.1.sta00512
 | |
| sel_port-64: 1.1.sta00513
 | |
| sel_port-65: 1.1.sta00514
 | |
| sel_port-66: 1.1.sta00515
 | |
| sel_port-67: 1.1.sta00516
 | |
| sel_port-68: 1.1.sta00517
 | |
| sel_port-69: 1.1.sta00518
 | |
| sel_port-70: 1.1.sta00519
 | |
| sel_port-71: 1.1.sta00520
 | |
| sel_port-72: 1.1.sta00521
 | |
| sel_port-73: 1.1.sta00522
 | |
| sel_port-74: 1.1.sta00523
 | |
| sel_port-75: 1.1.sta00524
 | |
| sel_port-76: 1.1.sta00525
 | |
| sel_port-77: 1.1.sta00526
 | |
| sel_port-78: 1.1.sta00527
 | |
| sel_port-79: 1.1.sta00528
 | |
| sel_port-80: 1.1.sta00529
 | |
| sel_port-81: 1.1.sta00530
 | |
| sel_port-82: 1.1.sta00531
 | |
| sel_port-83: 1.1.sta00532
 | |
| sel_port-84: 1.1.sta00533
 | |
| sel_port-85: 1.1.sta00534
 | |
| sel_port-86: 1.1.sta00535
 | |
| sel_port-87: 1.1.sta00536
 | |
| sel_port-88: 1.1.sta00537
 | |
| sel_port-89: 1.1.sta00538
 | |
| sel_port-90: 1.1.sta00539
 | |
| sel_port-91: 1.1.sta00540
 | |
| sel_port-92: 1.1.sta00541
 | |
| sel_port-93: 1.1.sta00542
 | |
| sel_port-94: 1.1.sta00543
 | |
| sel_port-95: 1.1.sta00544
 | |
| sel_port-96: 1.1.sta00545
 | |
| sel_port-97: 1.1.sta00546
 | |
| sel_port-98: 1.1.sta00547
 | |
| sel_port-99: 1.1.sta00548
 | |
| sel_port-100: 1.1.sta00549
 | |
| sel_port-101: 1.1.sta01000
 | |
| sel_port-102: 1.1.sta01001
 | |
| sel_port-103: 1.1.sta01002
 | |
| sel_port-104: 1.1.sta01003
 | |
| sel_port-105: 1.1.sta01004
 | |
| sel_port-106: 1.1.sta01005
 | |
| sel_port-107: 1.1.sta01006
 | |
| sel_port-108: 1.1.sta01007
 | |
| sel_port-109: 1.1.sta01008
 | |
| sel_port-110: 1.1.sta01009
 | |
| sel_port-111: 1.1.sta01010
 | |
| sel_port-112: 1.1.sta01011
 | |
| sel_port-113: 1.1.sta01012
 | |
| sel_port-114: 1.1.sta01013
 | |
| sel_port-115: 1.1.sta01014
 | |
| sel_port-116: 1.1.sta01015
 | |
| sel_port-117: 1.1.sta01016
 | |
| sel_port-118: 1.1.sta01017
 | |
| sel_port-119: 1.1.sta01018
 | |
| sel_port-120: 1.1.sta01019
 | |
| sel_port-121: 1.1.sta01020
 | |
| sel_port-122: 1.1.sta01021
 | |
| sel_port-123: 1.1.sta01022
 | |
| sel_port-124: 1.1.sta01023
 | |
| sel_port-125: 1.1.sta01024
 | |
| sel_port-126: 1.1.sta01025
 | |
| sel_port-127: 1.1.sta01026
 | |
| sel_port-128: 1.1.sta01027
 | |
| sel_port-129: 1.1.sta01028
 | |
| sel_port-130: 1.1.sta01029
 | |
| sel_port-131: 1.1.sta01030
 | |
| sel_port-132: 1.1.sta01031
 | |
| sel_port-133: 1.1.sta01032
 | |
| sel_port-134: 1.1.sta01033
 | |
| sel_port-135: 1.1.sta01034
 | |
| sel_port-136: 1.1.sta01035
 | |
| sel_port-137: 1.1.sta01036
 | |
| sel_port-138: 1.1.sta01037
 | |
| sel_port-139: 1.1.sta01038
 | |
| sel_port-140: 1.1.sta01039
 | |
| sel_port-141: 1.1.sta01040
 | |
| sel_port-142: 1.1.sta01041
 | |
| sel_port-143: 1.1.sta01042
 | |
| sel_port-144: 1.1.sta01043
 | |
| sel_port-145: 1.1.sta01044
 | |
| sel_port-146: 1.1.sta01045
 | |
| sel_port-147: 1.1.sta01046
 | |
| sel_port-148: 1.1.sta01047
 | |
| sel_port-149: 1.1.sta01048
 | |
| sel_port-150: 1.1.sta01049
 | |
| sel_port-151: 1.1.sta01500
 | |
| sel_port-152: 1.1.sta01501
 | |
| sel_port-153: 1.1.sta01502
 | |
| sel_port-154: 1.1.sta01503
 | |
| sel_port-155: 1.1.sta01504
 | |
| sel_port-156: 1.1.sta01505
 | |
| sel_port-157: 1.1.sta01506
 | |
| sel_port-158: 1.1.sta01507
 | |
| sel_port-159: 1.1.sta01508
 | |
| sel_port-160: 1.1.sta01509
 | |
| sel_port-161: 1.1.sta01510
 | |
| sel_port-162: 1.1.sta01511
 | |
| sel_port-163: 1.1.sta01512
 | |
| sel_port-164: 1.1.sta01513
 | |
| sel_port-165: 1.1.sta01514
 | |
| sel_port-166: 1.1.sta01515
 | |
| sel_port-167: 1.1.sta01516
 | |
| sel_port-168: 1.1.sta01517
 | |
| sel_port-169: 1.1.sta01518
 | |
| sel_port-170: 1.1.sta01519
 | |
| sel_port-171: 1.1.sta01520
 | |
| sel_port-172: 1.1.sta01521
 | |
| sel_port-173: 1.1.sta01522
 | |
| sel_port-174: 1.1.sta01523
 | |
| sel_port-175: 1.1.sta01524
 | |
| sel_port-176: 1.1.sta01525
 | |
| sel_port-177: 1.1.sta01526
 | |
| sel_port-178: 1.1.sta01527
 | |
| sel_port-179: 1.1.sta01528
 | |
| sel_port-180: 1.1.sta01529
 | |
| sel_port-181: 1.1.sta01530
 | |
| sel_port-182: 1.1.sta01531
 | |
| sel_port-183: 1.1.sta01532
 | |
| sel_port-184: 1.1.sta01533
 | |
| sel_port-185: 1.1.sta01534
 | |
| sel_port-186: 1.1.sta01535
 | |
| sel_port-187: 1.1.sta01536
 | |
| sel_port-188: 1.1.sta01537
 | |
| sel_port-189: 1.1.sta01538
 | |
| sel_port-190: 1.1.sta01539
 | |
| sel_port-191: 1.1.sta01540
 | |
| sel_port-192: 1.1.sta01541
 | |
| sel_port-193: 1.1.sta01542
 | |
| sel_port-194: 1.1.sta01543
 | |
| sel_port-195: 1.1.sta01544
 | |
| sel_port-196: 1.1.sta01545
 | |
| sel_port-197: 1.1.wlan4
 | |
| sel_port-198: 1.1.wlan5
 | |
| sel_port-199: 1.1.wlan6
 | |
| sel_port-200: 1.1.wlan7
 | |
| show_events: 1
 | |
| show_log: 0
 | |
| port_sorting: 0
 | |
| kpi_id: WiFi Capacity
 | |
| bg: 0xE0ECF8
 | |
| test_rig: 
 | |
| show_scan: 1
 | |
| auto_helper: 1
 | |
| skip_2: 0
 | |
| skip_5: 0
 | |
| skip_5b: 1
 | |
| skip_dual: 0
 | |
| skip_tri: 1
 | |
| batch_size: 1
 | |
| loop_iter: 1
 | |
| duration: 6000
 | |
| test_groups: 0
 | |
| test_groups_subset: 0
 | |
| protocol: UDP-IPv4
 | |
| dl_rate_sel: Total Download Rate:
 | |
| dl_rate: 1000000000
 | |
| ul_rate_sel: Total Upload Rate:
 | |
| ul_rate: 10000000
 | |
| prcnt_tcp: 100000
 | |
| l4_endp: 
 | |
| pdu_sz: -1
 | |
| mss_sel: 1
 | |
| sock_buffer: 0
 | |
| ip_tos: 0
 | |
| multi_conn: -1
 | |
| min_speed: -1
 | |
| ps_interval: 60-second Running Average
 | |
| fairness: 0
 | |
| naptime: 0
 | |
| before_clear: 5000
 | |
| rpt_timer: 1000
 | |
| try_lower: 0
 | |
| rnd_rate: 1
 | |
| leave_ports_up: 0
 | |
| down_quiesce: 0
 | |
| udp_nat: 1
 | |
| record_other_ssids: 0
 | |
| clear_reset_counters: 0
 | |
| do_pf: 0
 | |
| pf_min_period_dl: 0
 | |
| pf_min_period_ul: 0
 | |
| pf_max_reconnects: 0
 | |
| use_mix_pdu: 0
 | |
| pdu_prcnt_pps: 1
 | |
| pdu_prcnt_bps: 0
 | |
| pdu_mix_ln-0: 
 | |
| show_scan: 1
 | |
| show_golden_3p: 0
 | |
| save_csv: 0
 | |
| show_realtime: 1
 | |
| show_pie: 1
 | |
| show_per_loop_totals: 1
 | |
| show_cx_time: 1
 | |
| show_dhcp: 1
 | |
| show_anqp: 1
 | |
| show_4way: 1
 | |
| show_latency: 1
 | |
| 
 | |
| """
 | |
| import sys
 | |
| import os
 | |
| import importlib
 | |
| import argparse
 | |
| import time
 | |
| 
 | |
| if sys.version_info[0] != 3:
 | |
|     print("This script requires Python 3")
 | |
|     exit(1)
 | |
| 
 | |
|  
 | |
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))
 | |
| 
 | |
| LFUtils = importlib.import_module("py-json.LANforge.LFUtils")
 | |
| cv_test_manager = importlib.import_module("py-json.cv_test_manager")
 | |
| cv_test = cv_test_manager.cv_test
 | |
| cv_add_base_parser = cv_test_manager.cv_add_base_parser
 | |
| cv_base_adjust_parser = cv_test_manager.cv_base_adjust_parser
 | |
| 
 | |
| 
 | |
| class WiFiCapacityTest(cv_test):
 | |
|     def __init__(self,
 | |
|                  lfclient_host="localhost",
 | |
|                  lf_port=8080,
 | |
|                  ssh_port=22,
 | |
|                  lf_user="lanforge",
 | |
|                  lf_password="lanforge",
 | |
|                  instance_name="wct_instance",
 | |
|                  config_name="wifi_config",
 | |
|                  upstream="eth1",
 | |
|                  batch_size="1",
 | |
|                  loop_iter="1",
 | |
|                  protocol="UDP-IPv4",
 | |
|                  duration="5000",
 | |
|                  pull_report=False,
 | |
|                  load_old_cfg=False,
 | |
|                  upload_rate="10Mbps",
 | |
|                  download_rate="1Gbps",
 | |
|                  sort="interleave",
 | |
|                  stations="",
 | |
|                  create_stations=False,
 | |
|                  radio="wiphy0",
 | |
|                  security="open",
 | |
|                  paswd="[BLANK]",
 | |
|                  ssid="",
 | |
|                  enables=[],
 | |
|                  disables=[],
 | |
|                  raw_lines=[],
 | |
|                  raw_lines_file="",
 | |
|                  sets=[],
 | |
|                  influx_host="localhost",
 | |
|                  influx_port=8086,
 | |
|                  report_dir="",
 | |
|                  graph_groups=None,
 | |
|                  test_rig="",
 | |
|                  test_tag="",
 | |
|                  local_lf_report_dir=""
 | |
|                  ):
 | |
|         super().__init__(lfclient_host=lfclient_host, lfclient_port=lf_port)
 | |
| 
 | |
|         self.lfclient_host = lfclient_host
 | |
|         self.lf_port = lf_port
 | |
|         self.lf_user = lf_user
 | |
|         self.lf_password = lf_password
 | |
|         self.station_profile = self.new_station_profile()
 | |
|         self.pull_report = pull_report
 | |
|         self.load_old_cfg = load_old_cfg
 | |
|         self.instance_name = instance_name
 | |
|         self.config_name = config_name
 | |
|         self.test_name = "WiFi Capacity"
 | |
|         self.batch_size = batch_size
 | |
|         self.loop_iter = loop_iter
 | |
|         self.protocol = protocol
 | |
|         self.duration = duration
 | |
|         self.upload_rate = upload_rate
 | |
|         self.download_rate = download_rate
 | |
|         self.upstream = upstream
 | |
|         self.sort = sort
 | |
|         self.stations = stations
 | |
|         self.create_stations = create_stations
 | |
|         self.security = security
 | |
|         self.ssid = ssid
 | |
|         self.paswd = paswd
 | |
|         self.ssh_port = ssh_port
 | |
|         self.radio = radio
 | |
|         self.enables = enables
 | |
|         self.disables = disables
 | |
|         self.raw_lines = raw_lines
 | |
|         self.raw_lines_file = raw_lines_file
 | |
|         self.sets = sets
 | |
|         self.influx_host = influx_host,
 | |
|         self.influx_port = influx_port
 | |
|         self.report_dir = report_dir
 | |
|         self.graph_groups = graph_groups
 | |
|         self.test_rig = test_rig
 | |
|         self.test_tag = test_tag
 | |
|         self.local_lf_report_dir = local_lf_report_dir
 | |
| 
 | |
|     def setup(self):
 | |
|         if self.create_stations and self.stations != "":
 | |
|             sta = self.stations.split(",")
 | |
|             self.station_profile.cleanup(sta)
 | |
|             self.station_profile.use_security(self.security, self.ssid, self.paswd)
 | |
|             self.station_profile.create(radio=self.radio, sta_names_=sta, debug=self.debug)
 | |
|             self.station_profile.admin_up()
 | |
|             self.wait_for_ip(station_list=sta)
 | |
|             print("stations created")
 | |
| 
 | |
|     def run(self):
 | |
|         self.sync_cv()
 | |
|         time.sleep(2)
 | |
|         self.sync_cv()
 | |
| 
 | |
|         self.rm_text_blob(self.config_name, "Wifi-Capacity-")  # To delete old config with same name
 | |
|         self.show_text_blob(None, None, False)
 | |
| 
 | |
|         # Test related settings
 | |
|         cfg_options = []
 | |
| 
 | |
|         eid = LFUtils.name_to_eid(self.upstream)
 | |
|         port = "%i.%i.%s" % (eid[0], eid[1], eid[2])
 | |
| 
 | |
|         port_list = [port]
 | |
|         if self.stations == "":
 | |
|             stas = self.station_map()  # See realm
 | |
|             for eid in stas.keys():
 | |
|                 port_list.append(eid)
 | |
|         else:
 | |
|             stas = self.stations.split(",")
 | |
|             for s in stas:
 | |
|                 port_list.append(s)
 | |
| 
 | |
|         idx = 0
 | |
|         for eid in port_list:
 | |
|             add_port = "sel_port-" + str(idx) + ": " + eid
 | |
|             self.create_test_config(self.config_name, "Wifi-Capacity-", add_port)
 | |
|             idx += 1
 | |
| 
 | |
|         self.apply_cfg_options(cfg_options, self.enables, self.disables, self.raw_lines, self.raw_lines_file)
 | |
| 
 | |
|         if self.batch_size != "":
 | |
|             cfg_options.append("batch_size: " + self.batch_size)
 | |
|         if self.loop_iter != "":
 | |
|             cfg_options.append("loop_iter: " + self.loop_iter)
 | |
|         if self.protocol != "":
 | |
|             cfg_options.append("protocol: " + str(self.protocol))
 | |
|         if self.duration != "":
 | |
|             cfg_options.append("duration: " + self.duration)
 | |
|         if self.upload_rate != "":
 | |
|             cfg_options.append("ul_rate: " + self.upload_rate)
 | |
|         if self.download_rate != "":
 | |
|             cfg_options.append("dl_rate: " + self.download_rate)
 | |
|         if self.test_rig != "":
 | |
|             cfg_options.append("test_rig: " + self.test_rig)
 | |
|         if self.test_tag != "":
 | |
|             cfg_options.append("test_tag: " + self.test_tag)
 | |
| 
 | |
|         cfg_options.append("save_csv: 1")
 | |
| 
 | |
|         blob_test = "Wifi-Capacity-"
 | |
| 
 | |
|         # We deleted the scenario earlier, now re-build new one line at a time.
 | |
|         self.build_cfg(self.config_name, blob_test, cfg_options)
 | |
| 
 | |
|         cv_cmds = []
 | |
| 
 | |
|         if self.sort == 'linear':
 | |
|             cmd = "cv click '%s' 'Linear Sort'" % self.instance_name
 | |
|             cv_cmds.append(cmd)
 | |
|         if self.sort == 'interleave':
 | |
|             cmd = "cv click '%s' 'Interleave Sort'" % self.instance_name
 | |
|             cv_cmds.append(cmd)
 | |
| 
 | |
|         self.create_and_run_test(self.load_old_cfg, self.test_name, self.instance_name,
 | |
|                                  self.config_name, self.sets,
 | |
|                                  self.pull_report, self.lfclient_host, self.lf_user, self.lf_password,
 | |
|                                  cv_cmds, ssh_port=self.ssh_port, graph_groups_file=self.graph_groups, local_lf_report_dir=self.local_lf_report_dir)
 | |
| 
 | |
|         self.rm_text_blob(self.config_name, blob_test)  # To delete old config with same name
 | |
| 
 | |
|         self.rm_text_blob(self.config_name, "Wifi-Capacity-")  # To delete old config with same name
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(
 | |
|         prog="lf_wifi_capacity_test.py",
 | |
|         formatter_class=argparse.RawTextHelpFormatter,
 | |
|         description="""
 | |
|         ./lf_wifi_capacity_test.py --mgr localhost --port 8080 --lf_user lanforge --lf_password lanforge \
 | |
|              --instance_name wct_instance --config_name wifi_config --upstream 1.1.eth1 --batch_size 1 --loop_iter 1 \
 | |
|              --protocol UDP-IPv4 --duration 6000 --pull_report --stations 1.1.sta0000,1.1.sta0001 \
 | |
|              --create_stations --radio wiphy0 --ssid test-ssid --security open --paswd [BLANK] \
 | |
|              --test_rig Testbed-01 -test_tag TAG\
 | |
|              --influx_host c7-graphana --influx_port 8086 --influx_org Candela \
 | |
|              --influx_token=-u_Wd-L8o992701QF0c5UmqEp7w7Z7YOMaWLxOMgmHfATJGnQbbmYyNxHBR9PgD6taM_tcxqJl6U8DjU1xINFQ== \
 | |
|              --influx_bucket ben \
 | |
|              --influx_tag testbed Ferndale-01
 | |
|                """)
 | |
| 
 | |
|     cv_add_base_parser(parser)  # see cv_test_manager.py
 | |
| 
 | |
|     parser.add_argument("-u", "--upstream", type=str, default="",
 | |
|                         help="Upstream port for wifi capacity test ex. 1.1.eth1")
 | |
|     parser.add_argument("-b", "--batch_size", type=str, default="",
 | |
|                         help="station increment ex. 1,2,3")
 | |
|     parser.add_argument("-l", "--loop_iter", type=str, default="",
 | |
|                         help="Loop iteration ex. 1")
 | |
|     parser.add_argument("-p", "--protocol", type=str, default="",
 | |
|                         help="Protocol ex.TCP-IPv4")
 | |
|     parser.add_argument("-d", "--duration", type=str, default="",
 | |
|                         help="duration in ms. ex. 5000")
 | |
|     parser.add_argument("--download_rate", type=str, default="1Gbps",
 | |
|                         help="Select requested download rate.  Kbps, Mbps, Gbps units supported.  Default is 1Gbps")
 | |
|     parser.add_argument("--upload_rate", type=str, default="10Mbps",
 | |
|                         help="Select requested upload rate.  Kbps, Mbps, Gbps units supported.  Default is 10Mbps")
 | |
|     parser.add_argument("--sort", type=str, default="interleave",
 | |
|                         help="Select station sorting behaviour:  none | interleave | linear  Default is interleave.")
 | |
|     parser.add_argument("-s", "--stations", type=str, default="",
 | |
|                         help="If specified, these stations will be used.  If not specified, all available stations will be selected.  Example: 1.1.sta001,1.1.wlan0,...")
 | |
|     parser.add_argument("-cs", "--create_stations", default=False, action='store_true',
 | |
|                         help="create stations in lanforge (by default: False)")
 | |
|     parser.add_argument("-radio", "--radio", default="wiphy0",
 | |
|                         help="create stations in lanforge at this radio (by default: wiphy0)")
 | |
|     parser.add_argument("-ssid", "--ssid", default="",
 | |
|                         help="ssid name")
 | |
|     parser.add_argument("-security", "--security", default="open",
 | |
|                         help="ssid Security type")
 | |
|     parser.add_argument("-paswd", "--paswd", default="[BLANK]",
 | |
|                         help="ssid Password")
 | |
|     parser.add_argument("--report_dir", default="")
 | |
|     parser.add_argument("--scenario", default="")
 | |
|     parser.add_argument("--graph_groups", help="File to save graph groups to", default=None)
 | |
|     parser.add_argument("--local_lf_report_dir", help="--local_lf_report_dir <where to pull reports to>  default '' put where dataplane script run from",default="")
 | |
| 
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     cv_base_adjust_parser(args)
 | |
| 
 | |
|     WFC_Test = WiFiCapacityTest(lfclient_host=args.mgr,
 | |
|                                 lf_port=args.port,
 | |
|                                 lf_user=args.lf_user,
 | |
|                                 lf_password=args.lf_password,
 | |
|                                 instance_name=args.instance_name,
 | |
|                                 config_name=args.config_name,
 | |
|                                 upstream=args.upstream,
 | |
|                                 batch_size=args.batch_size,
 | |
|                                 loop_iter=args.loop_iter,
 | |
|                                 protocol=args.protocol,
 | |
|                                 duration=args.duration,
 | |
|                                 pull_report=args.pull_report,
 | |
|                                 load_old_cfg=args.load_old_cfg,
 | |
|                                 download_rate=args.download_rate,
 | |
|                                 upload_rate=args.upload_rate,
 | |
|                                 sort=args.sort,
 | |
|                                 stations=args.stations,
 | |
|                                 create_stations=args.create_stations,
 | |
|                                 radio=args.radio,
 | |
|                                 ssid=args.ssid,
 | |
|                                 security=args.security,
 | |
|                                 paswd=args.paswd,
 | |
|                                 enables=args.enable,
 | |
|                                 disables=args.disable,
 | |
|                                 raw_lines=args.raw_line,
 | |
|                                 raw_lines_file=args.raw_lines_file,
 | |
|                                 sets=args.set,
 | |
|                                 graph_groups=args.graph_groups,
 | |
|                                 test_rig=args.test_rig,
 | |
|                                 test_tag=args.test_tag,
 | |
|                                 local_lf_report_dir=args.local_lf_report_dir
 | |
|                                 )
 | |
|     WFC_Test.setup()
 | |
|     WFC_Test.run()
 | |
| 
 | |
|     WFC_Test.check_influx_kpi(args)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |