| --- a/wpa_supplicant/config.c |
| +++ b/wpa_supplicant/config.c |
| @@ -2600,6 +2600,7 @@ static const struct parse_data ssid_fiel |
| #else /* CONFIG_MESH */ |
| { INT_RANGE(mode, 0, 4) }, |
| #endif /* CONFIG_MESH */ |
| + { INT_RANGE(noscan, 0, 1) }, |
| { INT_RANGE(proactive_key_caching, 0, 1) }, |
| { INT_RANGE(disabled, 0, 2) }, |
| { STR(id_str) }, |
| --- a/wpa_supplicant/config_file.c |
| +++ b/wpa_supplicant/config_file.c |
| @@ -775,6 +775,7 @@ static void wpa_config_write_network(FIL |
| #endif /* IEEE8021X_EAPOL */ |
| INT(mode); |
| INT(no_auto_peer); |
| + INT(noscan); |
| INT(mesh_fwding); |
| INT(frequency); |
| INT(enable_edmg); |
| --- a/wpa_supplicant/mesh.c |
| +++ b/wpa_supplicant/mesh.c |
| @@ -506,6 +506,8 @@ static int wpa_supplicant_mesh_init(stru |
| frequency); |
| goto out_free; |
| } |
| + if (ssid->noscan) |
| + conf->noscan = 1; |
| |
| if (ssid->mesh_basic_rates == NULL) { |
| /* |
| --- a/wpa_supplicant/wpa_supplicant.c |
| +++ b/wpa_supplicant/wpa_supplicant.c |
| @@ -2710,7 +2710,7 @@ static bool ibss_mesh_can_use_vht(struct |
| const struct wpa_ssid *ssid, |
| struct hostapd_hw_modes *mode) |
| { |
| - if (mode->mode != HOSTAPD_MODE_IEEE80211A) |
| + if (mode->mode != HOSTAPD_MODE_IEEE80211A && !(ssid->noscan)) |
| return false; |
| |
| if (!drv_supports_vht(wpa_s, ssid)) |
| @@ -2783,7 +2783,7 @@ static void ibss_mesh_select_40mhz(struc |
| int i, res; |
| unsigned int j; |
| static const int ht40plus[] = { |
| - 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157, 165, 173, |
| + 1, 2, 3, 4, 5, 6, 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157, 165, 173, |
| 184, 192 |
| }; |
| int ht40 = -1; |
| @@ -3033,7 +3033,7 @@ void ibss_mesh_setup_freq(struct wpa_sup |
| int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode); |
| enum hostapd_hw_mode hw_mode; |
| struct hostapd_hw_modes *mode = NULL; |
| - int i, obss_scan = 1; |
| + int i, obss_scan = !(ssid->noscan); |
| u8 channel; |
| bool is_6ghz; |
| bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR); |
| --- a/wpa_supplicant/config_ssid.h |
| +++ b/wpa_supplicant/config_ssid.h |
| @@ -1035,6 +1035,8 @@ struct wpa_ssid { |
| */ |
| int no_auto_peer; |
| |
| + int noscan; |
| + |
| /** |
| * mesh_rssi_threshold - Set mesh parameter mesh_rssi_threshold (dBm) |
| * |