From: Ilan Peer <ilan.peer@xxxxxxxxx> If the kernel indicated support for scanning on AP interface, set NL80211_SCAN_FLAG_AP in the scan request. type=feature ticket=none Signed-off-by: Ilan Peer <ilan.peer@xxxxxxxxx> Reviewed-by: Andrei Otcheretianski <andrei.otcheretianski@xxxxxxxxx> Signed-off-by: Benjamin Berg <benjamin.berg@xxxxxxxxx> --- src/drivers/driver_nl80211.h | 1 + src/drivers/driver_nl80211_capa.c | 5 +++++ src/drivers/driver_nl80211_scan.c | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h index 674c26a71a..4649899132 100644 --- a/src/drivers/driver_nl80211.h +++ b/src/drivers/driver_nl80211.h @@ -200,6 +200,7 @@ struct wpa_driver_nl80211_data { unsigned int puncturing:1; unsigned int qca_ap_allowed_freqs:1; unsigned int connect_ext_vendor_cmd_avail:1; + unsigned int support_ap_scan:1; u8 extra_bss_membership_selectors[8]; diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 88ee9e724a..12be34d5a0 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -82,6 +82,7 @@ struct wiphy_info_data { unsigned int update_ft_ies_supported:1; unsigned int has_key_mgmt:1; unsigned int has_key_mgmt_iftype:1; + unsigned int support_ap_scan:1; }; @@ -787,6 +788,9 @@ static void wiphy_info_feature_flags(struct wiphy_info_data *info, if (flags & NL80211_FEATURE_FULL_AP_CLIENT_STATE) capa->flags |= WPA_DRIVER_FLAGS_FULL_AP_CLIENT_STATE; + + if (flags & NL80211_FEATURE_AP_SCAN) + info->support_ap_scan = 1; } @@ -1581,6 +1585,7 @@ int wpa_driver_nl80211_capa(struct wpa_driver_nl80211_data *drv) if (info.set_qos_map_supported) drv->capa.flags |= WPA_DRIVER_FLAGS_QOS_MAPPING; drv->have_low_prio_scan = info.have_low_prio_scan; + drv->support_ap_scan = info.support_ap_scan; /* * If the driver doesn't support data TX status, we won't get TX diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c index f0313c1af7..da90b55553 100644 --- a/src/drivers/driver_nl80211_scan.c +++ b/src/drivers/driver_nl80211_scan.c @@ -267,7 +267,8 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd, params->filter_ssids = NULL; drv->num_filter_ssids = params->num_filter_ssids; - if (!drv->hostapd && is_ap_interface(drv->nlmode)) { + if (drv->support_ap_scan || + (!drv->hostapd && is_ap_interface(drv->nlmode))) { wpa_printf(MSG_DEBUG, "nl80211: Add NL80211_SCAN_FLAG_AP"); scan_flags |= NL80211_SCAN_FLAG_AP; } -- 2.50.0 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap