mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-18 19:14:54 +00:00
lf_tx_power.py : slot changed to ap_slot, avoid confusion with band slot added debugging information
cc_module_9800_3504.py: configure 6g slot cc_module_test.py: added unit test Signed-off-by: Chuck SmileyRekiere <chuck.smileyrekiere@candelatech.com>
This commit is contained in:
committed by
shivam
parent
ccc4015a36
commit
978e2081f1
@@ -340,21 +340,21 @@ class create_controller_series_object:
|
||||
return summary
|
||||
|
||||
def show_ap_dot11_6gz_summary(self):
|
||||
logger.info("show_ap_dot11_6gz_summary")
|
||||
logger.info("show ap dot11 6gz summary")
|
||||
self.band = '6g'
|
||||
self.action = "advanced"
|
||||
summary = self.send_command()
|
||||
return summary
|
||||
|
||||
def show_ap_dot11_5gz_summary(self):
|
||||
logger.info("show_ap_dot11_5gz_summary")
|
||||
logger.info("show ap dot11 5gz summary")
|
||||
self.band = '5g'
|
||||
self.action = "advanced"
|
||||
summary = self.send_command()
|
||||
return summary
|
||||
|
||||
def show_ap_dot11_24gz_summary(self):
|
||||
logger.info("show_ap_dot11_24gz_summary")
|
||||
logger.info("show ap dot11 24gz summary")
|
||||
self.band = '24g'
|
||||
self.action = "advanced"
|
||||
summary = self.send_command()
|
||||
|
||||
@@ -792,7 +792,7 @@ class create_module_test_object:
|
||||
self.cs.show_wlan_summary()
|
||||
|
||||
|
||||
def test_config_tx_power_6g_wpa3_AP3(self):
|
||||
def test_config_tx_power_6g_wpa3_AP4(self):
|
||||
|
||||
logger.info("sample_test_tx_power_sequence for 6G AP3 on AP")
|
||||
|
||||
@@ -808,7 +808,7 @@ class create_module_test_object:
|
||||
self.cs.show_ap_dot11_5gz_shutdown()
|
||||
self.cs.show_ap_dot11_24gz_shutdown()
|
||||
# This needs to be here to disable and delete
|
||||
self.cs.wlan = 'wpa3_wlan_7'
|
||||
self.cs.wlan = '6G-wpa3-AP4-2'
|
||||
|
||||
# disable_wlan
|
||||
self.cs.wlan_shutdown()
|
||||
@@ -833,11 +833,11 @@ class create_module_test_object:
|
||||
self.cs.config_dot11_6ghz_tx_power()
|
||||
self.cs.bandwidth = '20'
|
||||
# bandwidth (to set to 20 if channel change does not support)
|
||||
self.cs.config_dot11_5ghz_channel_width()
|
||||
self.cs.channel = '100'
|
||||
self.cs.config_dot11_6ghz_channel_width()
|
||||
self.cs.channel = '191'
|
||||
# channel
|
||||
self.cs.config_dot11_5ghz_channel()
|
||||
self.cs.bandwidth = '40'
|
||||
self.cs.config_dot11_6ghz_channel()
|
||||
self.cs.bandwidth = '20'
|
||||
# bandwidth
|
||||
self.cs.config_dot11_5ghz_channel_width()
|
||||
# show_wlan_summary
|
||||
@@ -846,33 +846,33 @@ class create_module_test_object:
|
||||
# delete_wlan
|
||||
# TODO (there were two in tx_power the logs)
|
||||
# need to check if wlan present
|
||||
self.cs.wlan = 'wpa2_wlan_3'
|
||||
self.cs.wlan = '6G-wpa3-AP4-2'
|
||||
|
||||
# delete wlan
|
||||
self.cs.config_no_wlan()
|
||||
|
||||
# create_wlan_wpa2
|
||||
self.cs.wlan = 'wpa2_wlan_3'
|
||||
self.cs.wlanID = '3'
|
||||
self.cs.wlanSSID = 'wpa2_wlan_3'
|
||||
self.cs.wlan = '6G-wpa3-AP4-2'
|
||||
self.cs.wlanID = '1'
|
||||
self.cs.wlanSSID = '6G-wpa3-AP4-2'
|
||||
self.cs.security_key = 'hello123'
|
||||
self.cs.config_wlan_wpa2()
|
||||
|
||||
# wireless_tag_policy
|
||||
self.cs.tag_policy = 'RM204-TB1-AP3'
|
||||
self.cs.tag_policy = 'RM204-TB1-AP4'
|
||||
self.cs.policy_profile = 'default-policy-profile'
|
||||
self.cs.config_wireless_tag_policy_and_policy_profile()
|
||||
# enable_wlan
|
||||
self.cs.config_enable_wlan_send_no_shutdown()
|
||||
# enable_network_5ghz
|
||||
self.cs.config_no_ap_dot11_5ghz_shutdown()
|
||||
# enable_network_6ghz
|
||||
self.cs.config_no_ap_dot11_6ghz_shutdown()
|
||||
# enable_network_24ghz
|
||||
# self.cs.config_no_ap_dot11_24ghz_shutdown()
|
||||
# enable
|
||||
self.cs.config_ap_no_dot11_5ghz_shutdown()
|
||||
self.cs.config_ap_no_dot11_6ghz_shutdown()
|
||||
# config_ap_no_dot11_24ghz_shutdown
|
||||
# advanced
|
||||
self.cs.show_ap_dot11_5gz_summary()
|
||||
self.cs.show_ap_dot11_6gz_summary()
|
||||
# self.cs.show_ap_dot11_24gz_summary()
|
||||
# show_wlan_summary
|
||||
self.cs.show_wlan_summary()
|
||||
@@ -1037,9 +1037,9 @@ INCLUDE_IN_README
|
||||
|
||||
# mt.test_config_tx_power_6g_wpa3()
|
||||
|
||||
mt.test_config_tx_power_5g_wpa2_AP3()
|
||||
# mt.test_config_tx_power_5g_wpa2_AP3()
|
||||
|
||||
mt.test_config_tx_power_6g_wpa3_AP3()
|
||||
mt.test_config_tx_power_6g_wpa3_AP4()
|
||||
|
||||
|
||||
# mt.test_config_tx_power_6g_wpa3_attempt2()
|
||||
|
||||
@@ -86,6 +86,9 @@ WLC1#ap name APCCC9C.3EF4.DDE0 dot11 6ghz slot 3 ?
|
||||
# Verified 3/1/2022 : create station and create open wlan on controller on testbed WLC1
|
||||
./lf_tx_power.py -d localhost -u admin -p Cisco123 --port 8887 --scheme ssh --ap APA453.0E7B.CF9C --bandwidth "40" --channel "100" --nss 4 --txpower "1" --pathloss 56 --antenna_gain 6 --band a --upstream_port eth2 --series 9800 --radio wiphy4 --slot 1 --ssid 5G-wpa2-AP2 --prompt "WLC1" --create_station --station sta0002 --lfmgr '192.168.100.178' --ssidpw 5G-wpa2-AP2 --security wpa2 --wlan 5G-wpa2-AP2 --wlanID 4 --wlanSSID 5G-wpa2-AP2 --lfresource 1 --vht160 --tag_policy "RM204-TB1-AP2" --policy_profile "default-policy-profile" --testbed_id 'Cisco-WLC1' --module 'cc_module_9800_3504' --create_wlan --no_cleanup
|
||||
|
||||
# Verified 3/1/2022
|
||||
./lf_tx_power.py -d localhost -u admin -p Cisco123 --port 8887 --scheme ssh --ap AP687D.B45C.25EC --bandwidth "40" --channel "137" --nss 2 --txpower "1" --pathloss 59 --antenna_gain 6 --band 6g --upstream_port eth2 --series 9800 --radio wiphy0 --slot 3 --ssid 6G-wpa3-AP3 --prompt "WLC1" --station 'wlan0' --lfmgr '192.168.100.139' --ssidpw hello123 --security wpa3 --wlan 6G-wpa3-AP3 --wlanID 15 --wlanSSID 6G-wpa3-AP3 --lfresource 1 --tag_policy "RM204-TB1-AP4" --policy_profile "default-policy-profile" --testbed_id 'Cisco-WLC1-AP4' --module 'cc_module_9800_3504' --no_cleanup --outfile 'tx_power_AP4_AX210_2x2_6E' --duration 25 2>&1 |tee tx_output_AP4_AX210_2x2_6E.txt
|
||||
|
||||
|
||||
##############################################################################################
|
||||
##############################################################################################
|
||||
@@ -308,12 +311,15 @@ def main():
|
||||
parser.add_argument("--module", type=str, help="[controller configuration] series module (cc_module_9800_3504.py) ", required=True)
|
||||
parser.add_argument("--timeout", type=str, help="[controller configuration] command timeout value ", default=3)
|
||||
|
||||
# AP configuration
|
||||
parser.add_argument("--slot", "--ap_slot", type=str, dest="ap_slot", help="[AP configuration] --ap_slot 3 , 9800 AP slot , use show ap dot11 6ghz summary , 5ghz or 24ghz", required=True)
|
||||
|
||||
|
||||
# wlan configuration
|
||||
parser.add_argument("--create_wlan", help="[wlan configuration] --create_wlan", action='store_true')
|
||||
parser.add_argument("--wlan", type=str, help="[wlan configuration] --wlan 9800, wlan identifier", required=True)
|
||||
parser.add_argument("--wlan_id", "--wlanID", dest="wlanID", type=str, help="[wlan configuration] --wlan_id 9800 , defaults to 1", default="1", required=True)
|
||||
parser.add_argument("--wlan_ssid", "--wlanSSID", dest="wlanSSID", type=str, help="[wlan configuration] --wlan_ssid 9800, wlan SSID, this must match the -ssid , ssid for station", required=True)
|
||||
parser.add_argument("--slot", type=str, help="[wlan configuration] --slot 1 , 9800 AP slot , use show ap dot11 24ghz summary or 5ghz", required=True)
|
||||
parser.add_argument("--tag_policy", type=str, help="[wlan configuration] --tag_policy RM204-TB1")
|
||||
parser.add_argument("--policy_profile", type=str, help="[wlan configuration] --policy_profile default-policy-profile")
|
||||
|
||||
@@ -350,6 +356,7 @@ def main():
|
||||
parser.add_argument("-n", "--nss", type=str, help="[test configuration] List of spatial streams to test. NA means no change")
|
||||
parser.add_argument("-T", "--txpower", type=str, help="[test configuration] List of txpowers to test. NA means no change")
|
||||
parser.add_argument('-D', '--duration', type=str, help='[test configuration] --traffic <how long to run in seconds> example -D 30 (seconds) default: 30 ', default='20')
|
||||
parser.add_argument('--wait_time', type=str, help='[test configuration] --wait_time <how long to wait for station to connect seconds> example --wait_time 180 (seconds) default: 180 ', default='180')
|
||||
parser.add_argument("--outfile", help="[test configuration] Output file for csv data")
|
||||
|
||||
# testbed configuration
|
||||
@@ -455,7 +462,7 @@ def main():
|
||||
prompt=args.prompt,
|
||||
series=args.series,
|
||||
ap=args.ap,
|
||||
ap_slot=args.slot,
|
||||
ap_slot=args.ap_slot,
|
||||
port=args.port,
|
||||
band=args.band,
|
||||
timeout=args.timeout)
|
||||
@@ -464,7 +471,7 @@ def main():
|
||||
cs.wlanSSID = args.wlanSSID
|
||||
# TODO change to use args.security_key
|
||||
cs.security_key = args.ssidpw
|
||||
cs.ap_slot = args.slot
|
||||
# cs.ap_slot = args.slot
|
||||
|
||||
if args.create_wlan:
|
||||
cs.tag_policy = args.tag_policy
|
||||
@@ -876,8 +883,9 @@ def main():
|
||||
cs.config_dot11_6ghz_channel_width()
|
||||
elif args.band == 'a':
|
||||
cs.config_dot11_5ghz_channel_width()
|
||||
# setting channel to 20 is invalid for 20 Mhz
|
||||
# cs.config_dot11_24ghz_channel_width()
|
||||
#setting channel to 20 is invalid for 20 Mhz
|
||||
elif args.band == 'b':
|
||||
cs.config_dot11_24ghz_channel_width()
|
||||
# TODO add 24ghz , 6ghz
|
||||
|
||||
# NSS is set on the station earlier...
|
||||
@@ -900,8 +908,8 @@ def main():
|
||||
elif args.band == 'a':
|
||||
cs.config_dot11_5ghz_channel_width()
|
||||
elif args.band == 'b':
|
||||
if bw != '20':
|
||||
logg.info(" 24ghz channel bw should be 20")
|
||||
# if bw != '20':
|
||||
# logg.info(" 24ghz channel bw should be 20")
|
||||
cs.config_dot11_24ghz_channel_width()
|
||||
|
||||
# only create the wlan the first time
|
||||
@@ -920,6 +928,12 @@ def main():
|
||||
# delete the wlan if already exists
|
||||
pss = cs.show_wlan_summary()
|
||||
logg.info(pss)
|
||||
if args.band == '6g':
|
||||
cs.show_ap_dot11_6gz_summary
|
||||
elif args.band == 'a':
|
||||
cs.show_ap_dot11_5gz_summary
|
||||
elif args.band == 'b':
|
||||
cs.show_ap_dot11_24gz_summary
|
||||
|
||||
# "number of WLANs:\s+(\S+)"
|
||||
# https://regex101.com/
|
||||
@@ -995,6 +1009,8 @@ def main():
|
||||
# TODO configuration for 24g, 6g
|
||||
if args.band == '6g':
|
||||
pss = cs.show_ap_dot11_6gz_summary()
|
||||
logg.info("show ap dot11 6ghz summary")
|
||||
logg.info("ap: {ap} ap_slot: {slot} ".format(ap=args.ap,slot=args.ap_slot))
|
||||
logg.info(pss)
|
||||
elif args.band == 'a':
|
||||
pss = cs.show_ap_dot11_5gz_summary()
|
||||
@@ -1015,10 +1031,19 @@ def main():
|
||||
continue
|
||||
# if the pattern changes save the output of the advanced command and re parse https://regex101.com
|
||||
if (searchap):
|
||||
pat = "%s\\s+(\\S+)\\s+(%s)\\s+\\S+\\s+\\S+\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+dBm\\)+\\s+(\\S+)+\\s" % (args.ap, args.slot)
|
||||
logg.info("##### line #####")
|
||||
logg.info(line)
|
||||
logg.info("ap : {ap} ap_slot: {ap_slot}".format(ap=args.ap, ap_slot=args.ap_slot))
|
||||
# pat = "%s\\s+(\\S+)\\s+3\\s+\\S+\\s+\\S+\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+dBm\\)+\\s+(\\S+)+\\s" % (args.ap)
|
||||
# m = re.search(pat, line)
|
||||
logg.info(m)
|
||||
pat = "%s\\s+(\\S+)\\s+(\\S+)\\s+\\S+\\s+\\S+\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+dBm\\)+\\s+(\\S+)+\\s" % (args.ap)
|
||||
logg.info(pat)
|
||||
m = re.search(pat, line)
|
||||
logg.info(m)
|
||||
if (m is not None):
|
||||
if(m.group(2) == args.slot):
|
||||
logg.info("checking of ap slot {ap_slot} present in the show ap dot11 6/5/24ghz summary".format(ap_slot=args.ap_slot))
|
||||
if(m.group(2) == args.ap_slot):
|
||||
cc_mac = m.group(1)
|
||||
cc_slot = m.group(2)
|
||||
cc_ch = m.group(6) # (132,136,140,144)
|
||||
@@ -1027,6 +1052,8 @@ def main():
|
||||
cc_dbm = m.group(5)
|
||||
cc_dbm = cc_dbm.replace("(", "")
|
||||
|
||||
logg.info("ap slot {cc_slot} present in the show ap dot11 6/5/24ghz summary".format(cc_slot=cc_slot))
|
||||
|
||||
cc_ch_count = cc_ch.count(",") + 1
|
||||
cc_bw = m.group(3)
|
||||
logg.info(
|
||||
@@ -1050,7 +1077,7 @@ def main():
|
||||
# debug an issue with the test. Sometimes the controller is taking time to configure.
|
||||
err = "ERROR: cc_dmp not found from query of controller: is the AP --slot set correctly?"
|
||||
logg.info(err)
|
||||
logg.info("run show ap dot11 5ghz summary or show ap dot11 24ghz summary to verify the slot")
|
||||
logg.info("run show ap dot11 6/5/24gghz summary ")
|
||||
e_tot += err
|
||||
e_tot += " "
|
||||
else:
|
||||
@@ -1131,7 +1158,7 @@ def main():
|
||||
if (m is not None):
|
||||
_ip = m.group(1)
|
||||
|
||||
# logg.info("IP %s Status %s"%(_ip, _status))
|
||||
logg.info("IP %s Status %s"%(_ip, _status))
|
||||
|
||||
if (_status == "Authorized"):
|
||||
if ((_ip is not None) and (_ip != "0.0.0.0")):
|
||||
@@ -1148,20 +1175,11 @@ def main():
|
||||
|
||||
i += 1
|
||||
# We wait a fairly long time since AP will take a long time to start on a CAC channel.
|
||||
if (i > 180): # TODO make configurable
|
||||
if (i > int(args.wait_time)): # TODO make configurable
|
||||
err = "ERROR: Station did not connect within 180 seconds."
|
||||
logg.info(err)
|
||||
e_tot += err
|
||||
e_tot += " "
|
||||
if args.series == "9800":
|
||||
if args.band == '6g':
|
||||
pss = cs.show_ap_dot11_6gz_summary()
|
||||
elif args.band == '5g':
|
||||
pss = cs.show_ap_dot11_5gz_summary()
|
||||
elif args.band == '24g':
|
||||
pss = cs.show_ap_dot11_24gz_summary()
|
||||
|
||||
logg.info(pss)
|
||||
|
||||
if (args.wait_forever):
|
||||
logg.info("Will continue waiting, you may wish to debug the system...")
|
||||
@@ -1171,6 +1189,14 @@ def main():
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
if args.series == "9800":
|
||||
if args.band == '6g':
|
||||
pss = cs.show_ap_dot11_6gz_summary()
|
||||
elif args.band == '5g':
|
||||
pss = cs.show_ap_dot11_5gz_summary()
|
||||
elif args.band == '24g':
|
||||
pss = cs.show_ap_dot11_24gz_summary()
|
||||
logg.info(pss)
|
||||
# Start traffic
|
||||
subprocess.run(["./lf_firemod.pl", "--manager", lfmgr, "--resource", lfresource, "--action", "do_cmd",
|
||||
"--cmd", "set_cx_state all c-udp-power RUNNING"], capture_output=True, check=True)
|
||||
@@ -1247,7 +1273,7 @@ def main():
|
||||
"--cx_name", "c-udp-power"], capture_output=True, check=True)
|
||||
|
||||
pss = endp_stats.stdout.decode('utf-8', 'ignore')
|
||||
# logg.info(pss)
|
||||
logg.info(pss)
|
||||
|
||||
for line in pss.splitlines():
|
||||
# logg.info("probe-line: %s"%(line))From Lanforge probe, command
|
||||
|
||||
Reference in New Issue
Block a user