Hi Ben, Sorry for the late response. Can you please try this with the following patch for hostap? https://patchwork.ozlabs.org/project/hostap/patch/20211130153943.3531922-1-andrei.otcheretianski@xxxxxxxxx/ I believe that reason the connection fails is due to user space not setting the collocated scan flag when not scanning passively. If this resolves the issue, I'll try to find a better solution for handling this. Thanks in advance, Ilan. > -----Original Message----- > From: Ben Greear <greearb@xxxxxxxxxxxxxxx> > Sent: Friday, March 25, 2022 20:12 > To: Luca Coelho <luca@xxxxxxxxx>; kvalo@xxxxxxxxxx > Cc: linux-wireless@xxxxxxxxxxxxxxx > Subject: Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels > only when requested so > > On 2/4/22 2:25 AM, Luca Coelho wrote: > > From: Ilan Peer <ilan.peer@xxxxxxxxx> > > > > Non PSC channels should generally be scanned based on information > > about collocated APs obtained during scan on legacy bands, and > > otherwise should not be scanned unless specifically requested so (as > > there are relatively many non PSC channels, scanning them passively is > > time consuming and interferes with regular data traffic). > > > > Thus, modify the scan logic to avoid passively scanning PSC channels > > if there is no information about collocated APs and the scan is not a > > passive scan. > > Hello, > > This breaks association against a Cisco test AP on frequency 5995. > > Here are logs of the previous commit working (scan takes longer, but SSID is > found), and at the bottom, scan with this commit, which fails to detect the > SSID. > > # ethtool -i sta0000 > driver: iwlwifi > version: 5.17.0+ > firmware-version: 68.01d30b0c.0 ty-a0-gf-a0-68.uc > expansion-rom-version: > bus-info: 0000:05:00.0 > supports-statistics: yes > supports-test: no > supports-eeprom-access: no > supports-register-dump: no > supports-priv-flags: no > > It breaks on version 71 firmware too. > > 2022-03-25 09:56:35.464 1.1: sta0000 (phy #0): scan started > 2022-03-25 09:56:42.095 1.1: sta0000 (phy #0): scan finished: 2412 2417 2422 > 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 > 5280 > 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 > 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155 > 6175 6195 > 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495 > 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795 > 6815 6835 > 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, "" > 2022-03-25 09:56:42.101 1.1: IFNAME=sta0000 <3>SME: Trying to > authenticate with 68:7d:b4:60:04:b8 (SSID= > 2022-03-25 09:56:42.122 1.1: sta0000: new station 68:7d:b4:60:04:b8 > 2022-03-25 09:56:42.252 1.1: sta0000 (phy #0): auth 68:7d:b4:60:04:b8 -> > a4:6b:b6:5a:b1:da status: 126: <unknown> > 2022-03-25 09:56:42.254 1.1: IFNAME=sta0000 <3>SME: Trying to > authenticate with 68:7d:b4:60:04:b8 (SSID= > 2022-03-25 09:56:42.310 1.1: sta0000 (phy #0): auth 68:7d:b4:60:04:b8 -> > a4:6b:b6:5a:b1:da status: 0: Successful > 2022-03-25 09:56:42.310 1.1: IFNAME=sta0000 <3>PMKSA-CACHE-ADDED > 68:7d:b4:60:04:b8 0 > 2022-03-25 09:56:42.311 1.1: IFNAME=sta0000 <3>Trying to associate with > 68:7d:b4:60:04:b8 (SSID= > 2022-03-25 09:56:42.312 1.1: IFNAME=sta0000 <3>EAPOL-RX > 68:7d:b4:60:04:b8 121 > 2022-03-25 09:56:42.313 1.1: sta0000 (phy #0): assoc 68:7d:b4:60:04:b8 -> > a4:6b:b6:5a:b1:da status: 0: Successful > 2022-03-25 09:56:42.313 1.1: IFNAME=sta0000 <3>Associated with > 68:7d:b4:60:04:b8 > 2022-03-25 09:56:42.314 1.1: IFNAME=sta0000 <3>EAPOL-RX > 68:7d:b4:60:04:b8 121 > 2022-03-25 09:56:42.321 1.1: IFNAME=sta0000 <3>CTRL-EVENT-SUBNET- > STATUS-UPDATE status=0 > 2022-03-25 09:56:42.322 1.1: sta0000 (phy #0): ctrl. port TX status (cookie 1): > acked > 2022-03-25 09:56:42.323 1.1: IFNAME=sta0000 <3>EAPOL-RX > 68:7d:b4:60:04:b8 195 > 2022-03-25 09:56:42.328 1.1: sta0000 (phy #0): ctrl. port TX status (cookie 2): > acked > 2022-03-25 09:56:42.364 1.1: IFNAME=sta0000 <3>WPA: Key negotiation > completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP] > 2022-03-25 09:56:42.403 1.1: IFNAME=sta0000 <3>CTRL-EVENT-CONNECTED > - Connection to 68:7d:b4:60:04:b8 completed [id=0 id_str=] > 2022-03-25 09:56:42.403 1.1: IFNAME=sta0000 <3>WPA: Key negotiation > completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP] > > > > 2022-03-25 10:05:52.416 1.1: sta0000 (phy #7): scan started > 2022-03-25 10:05:56.215 1.1: sta0000 (phy #7): scan finished: 2412 2417 2422 > 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 > 5280 > 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 > 5765 5785 5805 5825, "" > 2022-03-25 10:05:56.215 1.1: phy #7: regulatory domain change (phy): set to > US by a driver request on phy7 > 2022-03-25 10:05:56.216 1.1: IFNAME=sta0000 <3>CTRL-EVENT-NETWORK- > NOT-FOUND > 2022-03-25 10:05:56.216 1.1: IFNAME=sta0000 <3>CTRL-EVENT-REGDOM- > CHANGE init=DRIVER type=COUNTRY alpha2=US > 2022-03-25 10:06:01.217 1.1: IFNAME=sta0000 <3>CTRL-EVENT-SCAN- > STARTED > 2022-03-25 10:06:01.217 1.1: sta0000 (phy #7): scan started > 2022-03-25 10:06:02.739 1.1: sta0000 (phy #7): scan finished: 2412 2417 2422 > 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 > 5280 > 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 > 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155 > 6175 6195 > 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495 > 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795 > 6815 6835 > 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, "" > > [ SSID is not found, sta never associates] > > Thanks, > Ben > > > > > Signed-off-by: Ilan Peer <ilan.peer@xxxxxxxxx> > > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx> > > --- > > drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 42 ++++++++++++++----- > > 1 file changed, 32 insertions(+), 10 deletions(-) > > > > diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c > > b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c > > index 8c7cb491330d..901df916baa4 100644 > > --- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c > > +++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c > > @@ -1728,27 +1728,37 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct > iwl_mvm *mvm, > > } > > > > /* TODO: this function can be merged with > > iwl_mvm_scan_umac_fill_ch_p_v6 */ -static void > > -iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params > > *params, > > +static u32 > > +iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm *mvm, > > + struct iwl_mvm_scan_params *params, > > u32 n_channels, > > struct iwl_scan_probe_params_v4 *pp, > > struct iwl_scan_channel_params_v6 *cp, > > enum nl80211_iftype vif_type) > > { > > - struct iwl_scan_channel_cfg_umac *channel_cfg = cp- > >channel_config; > > int i; > > struct cfg80211_scan_6ghz_params *scan_6ghz_params = > > params->scan_6ghz_params; > > + u32 ch_cnt; > > > > - for (i = 0; i < params->n_channels; i++) { > > + for (i = 0, ch_cnt = 0; i < params->n_channels; i++) { > > struct iwl_scan_channel_cfg_umac *cfg = > > - &cp->channel_config[i]; > > + &cp->channel_config[ch_cnt]; > > > > u32 s_ssid_bitmap = 0, bssid_bitmap = 0, flags = 0; > > u8 j, k, s_max = 0, b_max = 0, n_used_bssid_entries; > > bool force_passive, found = false, allow_passive = true, > > unsolicited_probe_on_chan = false, psc_no_listen = false; > > > > + /* > > + * Avoid performing passive scan on non PSC channels unless > the > > + * scan is specifically a passive scan, i.e., no SSIDs > > + * configured in the scan command. > > + */ > > + if (!cfg80211_channel_is_psc(params->channels[i]) && > > + !params->n_6ghz_params && params->n_ssids) > > + continue; > > + > > cfg->v1.channel_num = params->channels[i]->hw_value; > > cfg->v2.band = 2; > > cfg->v2.iter_count = 1; > > @@ -1868,8 +1878,16 @@ > iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params > *params, > > else > > flags |= bssid_bitmap | (s_ssid_bitmap << 16); > > > > - channel_cfg[i].flags |= cpu_to_le32(flags); > > + cfg->flags |= cpu_to_le32(flags); > > + ch_cnt++; > > } > > + > > + if (params->n_channels > ch_cnt) > > + IWL_DEBUG_SCAN(mvm, > > + "6GHz: reducing number channels: (%u->%u)\n", > > + params->n_channels, ch_cnt); > > + > > + return ch_cnt; > > } > > > > static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm, > @@ > > -2415,10 +2433,14 @@ static int > iwl_mvm_scan_umac_v14_and_above(struct > > iwl_mvm *mvm, > > > > iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb); > > > > - iwl_mvm_umac_scan_cfg_channels_v6_6g(params, > > - params->n_channels, > > - pb, cp, vif->type); > > - cp->count = params->n_channels; > > + cp->count = iwl_mvm_umac_scan_cfg_channels_v6_6g(mvm, > params, > > + params- > >n_channels, > > + pb, cp, vif->type); > > + if (!cp->count) { > > + mvm->scan_uid_status[uid] = 0; > > + return -EINVAL; > > + } > > + > > if (!params->n_ssids || > > (params->n_ssids == 1 && !params->ssids[0].ssid_len)) > > cp->flags |= > IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER; > > > > > -- > Ben Greear <greearb@xxxxxxxxxxxxxxx> > Candela Technologies Inc http://www.candelatech.com