diff --git a/cc_module_9800_3504.py b/cc_module_9800_3504.py index 9fde9012..95d94d1e 100755 --- a/cc_module_9800_3504.py +++ b/cc_module_9800_3504.py @@ -168,6 +168,8 @@ class create_controller_series_object: self.info = "Cisco 9800 Controller Series" self.pwd = pwd self.dtim = None + self.spatial_stream = None # default cannot be NONE for send command + self.mcs_tx_index = None # default cannot be NONE for send command # TODO update the wifi_ctl_9800_3504 to use 24g, 5g, 6g @@ -218,11 +220,13 @@ class create_controller_series_object: if self.pwd is None: self.command = ["./wifi_ctl_9800_3504.py", "--scheme", self.scheme, "--dest", self.dest, "--user", self.user, "--passwd", self.passwd, "--prompt", self.prompt, - "--series", self.series, "--ap", self.ap, "--ap_band_slot", self.ap_band_slot, "--band", self.band, "--port", self.port] + "--series", self.series, "--ap", self.ap, "--ap_band_slot", self.ap_band_slot, "--band", self.band, "--port", self.port, + ] else: self.command = [str(str(self.pwd) + "/wifi_ctl_9800_3504.py"), "--scheme", self.scheme, "--dest", self.dest, "--user", self.user, "--passwd", self.passwd, "--prompt", self.prompt, - "--series", self.series, "--ap", self.ap, "--ap_band_slot", self.ap_band_slot, "--band", self.band, "--port", self.port] + "--series", self.series, "--ap", self.ap, "--ap_band_slot", self.ap_band_slot, "--band", self.band, "--port", self.port, + ] # Generate command if self.action in ['cmd', 'txPower', 'channel', 'bandwidth']: @@ -270,6 +274,14 @@ class create_controller_series_object: self.policy_profile] self.command.extend(self.command_extend) + elif self.action in ["ap_dot11_dot11ax_mcs_tx_index_spatial_stream", "no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream"]: + self.command_extend = [ + "--action", self.action, + "--spatial_stream", self.spatial_stream, + "--mcs_tx_index", self.mcs_tx_index + ] + + # possible need to look for exact command elif self.action in ["summary", "show_radio", "no_logging_console", "line_console_0", "show_ap_wlan_summary", "show_wlan_summary", "show_wlan_id", "advanced", "disable_operation_status", @@ -278,7 +290,8 @@ class create_controller_series_object: "manual", "auto", "enable_network_dual_band_6ghz", "enable_network_dual_band_5ghz", "enable_network_6ghz", "enable_network_5ghz", "enable_network_24ghz", "enable_operation_status", "11r_logs", "enable_ft_akm_ftpsk", "enable_ftotd_akm_ftpsk", - "config_dual_band_mode", "dual_band_no_mode_shutdown", "dual_band_mode_shutdown", "enable_ft_akm_ftsae"]: + "config_dual_band_mode", "dual_band_no_mode_shutdown", "dual_band_mode_shutdown", "enable_ft_akm_ftsae", + ]: self.command_extend = ["--action", self.action] self.command.extend(self.command_extend) @@ -1040,6 +1053,25 @@ class create_controller_series_object: print(summary) return summary + # Adjusting the number of spatial streams in the controller + def ap_dot11_dot11ax_mcs_tx_index_spatial_stream(self): + logger.info("ap_dot11_dot11ax_mcs_tx_index_spatial_stream") + self.action = "ap_dot11_dot11ax_mcs_tx_index_spatial_stream" + summary = self.send_command() + logger.info(summary) + return summary + + + # disablespatial streams + def no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream(self): + logger.info("no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream") + self.action = "no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream" + summary = self.send_command() + logger.info(summary) + return summary + + + # This next section is to allow for tests to be created without diff --git a/lf_tx_power.py b/lf_tx_power.py index a324b7c9..8bb9b515 100755 --- a/lf_tx_power.py +++ b/lf_tx_power.py @@ -413,7 +413,11 @@ def main(): parser.add_argument("-c", "--channel", type=str, help="[test configuration] --channel '1 33' List of channels to test, with optional path-loss, 36:64 149:60. NA means no change") parser.add_argument("-b", "--bandwidth", type=str, help="[test configuration] --bandwidth '20 40 80 160' List of bandwidths to test. NA means no change") parser.add_argument("-n", "--nss", type=str, help="[test configuration] --nss '2' List of spatial streams to test. NA means no change") +<<<<<<< HEAD parser.add_argument("--set_nss", help="[test configuration] --set_nss configure controller to spatial streams to test", action ='stort_true') +======= + parser.add_argument("--set_nss", help="[test configuration] --set_nss configure controller to spatial streams to test", action ='store_true') +>>>>>>> lf_tx_power.py : enable and disable spatial streams 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 example -D 30 (seconds) default: 30 ', default='20') parser.add_argument('--wait_time', type=str, help='[test configuration] --wait_time example --wait_time 180 (seconds) default: 180 ', default='180') @@ -1029,120 +1033,108 @@ def main(): ch = cha[0] for n in nss: if (n != "NA" and args.set_nss): + # the band will be set num_spatial_streams = int(n) - if (args.band == '6g' or args.band == 'dual_band_6g'): - # set the spatial streams for 6g - need to disable the wlan and re-enable - # ap dot11 6ghz dot11ax mcs tx index 7 spatial-stream 1 << - turn on - # no ap dot11 6ghz dot11ax mcs tx index 7 spatial-stream 2 <<-- turn off - if num_spatial_streams == 1 or num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatial_streams == 4: - # enable spatial stream 1 - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_1() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_1() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_1() + # set the spatial streams for - need to disable the wlan and re-enable + # ap dot11 dot11ax mcs tx index 7 spatial-stream 1 << - turn on + # no ap dot11 dot11ax mcs tx index 7 spatial-stream 2 <<-- turn off + if num_spatial_streams == 1 or num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatial_streams == 4: + cs.spatial_stream = 1 + cs.mcs_tx_index = 7 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() - if num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatials_streams == 4: - # enable spatial stream 2 - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_2() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_2() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_2() - else: - # disable spatial stream 2 - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_2() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_2() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_2() + if num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatials_streams == 4: + cs.spatial_stream = 2 + cs.mcs_tx_index = 7 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() + else: + cs.spatial_stream = 2 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() - if num_spatial_streams == 3 or num_spatials_streams == 4: - # enble spatial stream 3 - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_3() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_3() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_3() - else: - # disable spatial stream 3 - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_3() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_3() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_3() - - if num_spatials_streams == 4: - # enble spatial stream 3 - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_4() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_4() - cs.ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_4() - else: - # disable spatial stream 4 - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_7_spatial_stream_4() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_9_spatial_stream_4() - cs.no_ap_dot11_6ghz_dot11ax_mcs_tx_index_11_spatial_stream_4() - - - if (args.band == '5g' or args.band == 'dual_band_5g'): - # set the spatial streams for 5g - need to disable the wlan and re-enable - # not spatial streams 5-8 always disabled. - # ap dot11 5ghz dot11ax mcs tx index 7 spatial-stream 1 << - turn on - # no ap dot11 5ghz dot11ax mcs tx index 7 spatial-stream 2 <<-- turn off - if num_spatial_streams == 1 or num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatial_streams == 4: - # enable spatial stream 1 - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_1() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_1() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_1() - - if num_spatial_streams == 2 or num_spatial_streams == 3 or num_spatials_streams == 4: - # enable spatial stream 2 - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_2() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_2() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_2() - else: - # disable spatial stream 2 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_2() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_2() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_2() - - if num_spatial_streams == 3 or num_spatials_streams == 4: - # enble spatial stream 3 - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_3() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_3() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_3() - else: - # disable spatial stream 3 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_3() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_3() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_3() - - if num_spatials_streams == 4: - # enble spatial stream 3 - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_4() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_4() - cs.ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_4() - else: - # disable spatial stream 4 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_4() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_4() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_4() + if num_spatial_streams == 3 or num_spatials_streams == 4: + cs.spatial_stream = 3 + cs.mcs_tx_index = 7 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() + else: + cs.spatial_stream = 3 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() + if num_spatials_streams == 4: + cs.spatial_stream = 3 + cs.mcs_tx_index = 7 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() + else: + cs.spatial_stream = 4 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() + + if args.band == '5g' or args.band == 'dual_band_5g': # turn off spatial streams 5 - 8 # disable spatial stream 5 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_5() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_5() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_5() + cs.spatial_stream = 5 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() # disable spatial stream 6 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_6() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_6() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_6() + cs.spatial_stream = 6 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() # disable spatial stream 7 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_7() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_7() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_7() + cs.spatial_stream = 7 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() # disable spatial stream 8 - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_7_spatial_stream_8() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_9_spatial_stream_8() - cs.no_ap_dot11_5ghz_dot11ax_mcs_tx_index_11_spatial_stream_8() - -\ - elif args.band == '24g': - # set the spatial streams for 24g - pass + cs.spatial_stream = 8 + cs.mcs_tx_index = 7 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 9 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream() + cs.msc_tx_index = 11 + cs.no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream_1() for bw in bandwidths: if (n != "NA"): diff --git a/wifi_ctl_9800_3504.py b/wifi_ctl_9800_3504.py index 1209676f..1483385c 100755 --- a/wifi_ctl_9800_3504.py +++ b/wifi_ctl_9800_3504.py @@ -171,7 +171,9 @@ def main(): "show_ap_bssid_dual_band_6g", "show_ap_bssid_dual_band_5g", "show_ap_bssid_6g", "show_ap_bssid_5g", "show_ap_bssid_24g", "11r_logs", "enable_ft_akm_ftpsk", "enable_ftotd_akm_ftpsk", "config_dual_band_mode","dual_band_no_mode_shutdown","dual_band_mode_shutdown", - "enable_ft_akm_ftsae"]) + "enable_ft_akm_ftsae", + "ap_dot11_dot11ax_mcs_tx_index_spatial_stream", "no_ap_dot11_dot11ax_mcs_tx_index_spatial_stream" + ]) parser.add_argument("--value", type=str, help="set value") # logging configuration parser.add_argument(