diff --git a/hostapd/main.c b/hostapd/main.c index 99c137dd3..da8135bc4 100644 --- a/hostapd/main.c +++ b/hostapd/main.c @@ -303,8 +303,10 @@ static int hostapd_driver_init(struct hostapd_iface *iface) } if (hapd->driver->get_capa && - hapd->driver->get_capa(hapd->drv_priv, &capa) == 0) + hapd->driver->get_capa(hapd->drv_priv, &capa) == 0) { iface->drv_flags = capa.flags; + iface->probe_resp_offloads = capa.probe_resp_offloads; + } return 0; } diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h index b717b45b9..5b727685b 100644 --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -192,6 +192,13 @@ struct hostapd_iface { struct ap_info *ap_iter_list; unsigned int drv_flags; + + /* + * A bitmap of supported protocols for probe response offload. See + * struct wpa_driver_capa in driver.h + */ + unsigned int probe_resp_offloads; + struct hostapd_hw_modes *hw_features; int num_hw_features; struct hostapd_hw_modes *current_mode; diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index 4d186b9d3..a3b460ec4 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -466,6 +466,7 @@ int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s, return -1; hapd_iface->owner = wpa_s; hapd_iface->drv_flags = wpa_s->drv_flags; + hapd_iface->probe_resp_offloads = wpa_s->probe_resp_offloads; wpa_s->ap_iface->conf = conf = hostapd_config_defaults(); if (conf == NULL) { diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 9fa39b260..675b59268 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -2326,6 +2326,7 @@ next_driver: if (wpa_drv_get_capa(wpa_s, &capa) == 0) { wpa_s->drv_capa_known = 1; wpa_s->drv_flags = capa.flags; + wpa_s->probe_resp_offloads = capa.probe_resp_offloads; wpa_s->max_scan_ssids = capa.max_scan_ssids; wpa_s->max_sched_scan_ssids = capa.max_sched_scan_ssids; wpa_s->sched_scan_supported = capa.sched_scan_supported; diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 37237f0bd..5469129f3 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -340,6 +340,13 @@ struct wpa_supplicant { int normal_scans; /* normal scans run before sched_scan */ unsigned int drv_flags; + + /* + * A bitmap of supported protocols for probe response offload. See + * struct wpa_driver_capa in driver.h + */ + unsigned int probe_resp_offloads; + int max_scan_ssids; int max_sched_scan_ssids; int sched_scan_supported;