#ifdef CONFIG_IEEE80211AX
/* Unsolicited broadcast Probe Response transmission, 6 GHz only */
-static u8 * hostapd_unsol_bcast_probe_resp(struct hostapd_data *hapd,
- struct wpa_driver_ap_params *params)
+u8 * hostapd_unsol_bcast_probe_resp(struct hostapd_data *hapd,
+ struct unsol_bcast_probe_resp *ubpr)
{
struct probe_resp_params probe_params;
if (!is_6ghz_op_class(hapd->iconf->op_class))
return NULL;
- params->unsol_bcast_probe_resp_interval =
+ ubpr->unsol_bcast_probe_resp_interval =
hapd->conf->unsol_bcast_probe_resp_interval;
os_memset(&probe_params, 0, sizeof(probe_params));
probe_params.mld_info = NULL;
hostapd_gen_probe_resp(hapd, &probe_params);
- params->unsol_bcast_probe_resp_tmpl_len = probe_params.resp_len;
+ ubpr->unsol_bcast_probe_resp_tmpl_len = probe_params.resp_len;
return (u8 *) probe_params.resp;
}
#endif /* CONFIG_IEEE80211AX */
params->fd_frame_tmpl = NULL;
#endif /* CONFIG_FILS */
#ifdef CONFIG_IEEE80211AX
- os_free(params->unsol_bcast_probe_resp_tmpl);
- params->unsol_bcast_probe_resp_tmpl = NULL;
+ os_free(params->ubpr.unsol_bcast_probe_resp_tmpl);
+ params->ubpr.unsol_bcast_probe_resp_tmpl = NULL;
#endif /* CONFIG_IEEE80211AX */
os_free(params->allowed_freqs);
params->allowed_freqs = NULL;
params.he_bss_color = hapd->iface->conf->he_op.he_bss_color;
twt_he_responder = hostapd_get_he_twt_responder(hapd,
IEEE80211_MODE_AP);
- params.unsol_bcast_probe_resp_tmpl =
- hostapd_unsol_bcast_probe_resp(hapd, ¶ms);
+ params.ubpr.unsol_bcast_probe_resp_tmpl =
+ hostapd_unsol_bcast_probe_resp(hapd, ¶ms.ubpr);
#endif /* CONFIG_IEEE80211AX */
params.twt_responder =
twt_he_responder || hostapd_get_ht_vht_twt_responder(hapd);
const u8 * hostapd_wpa_ie(struct hostapd_data *hapd, u8 eid);
+u8 * hostapd_unsol_bcast_probe_resp(struct hostapd_data *hapd,
+ struct unsol_bcast_probe_resp *ubpr);
+
#endif /* BEACON_H */
u8 rfkill_release;
};
+struct unsol_bcast_probe_resp {
+ /**
+ * Unsolicited broadcast Probe Response interval in TUs
+ */
+ unsigned int unsol_bcast_probe_resp_interval;
+
+ /**
+ * Unsolicited broadcast Probe Response template data
+ */
+ u8 *unsol_bcast_probe_resp_tmpl;
+
+ /**
+ * Unsolicited broadcast Probe Response template length
+ */
+ size_t unsol_bcast_probe_resp_tmpl_len;
+};
+
struct wpa_driver_ap_params {
/**
* head - Beacon head from IEEE 802.11 header to IEs before TIM IE
*/
size_t fd_frame_tmpl_len;
- /**
- * Unsolicited broadcast Probe Response interval in TUs
- */
- unsigned int unsol_bcast_probe_resp_interval;
-
- /**
- * Unsolicited broadcast Probe Response template data
- */
- u8 *unsol_bcast_probe_resp_tmpl;
-
- /**
- * Unsolicited broadcast Probe Response template length
- */
- size_t unsol_bcast_probe_resp_tmpl_len;
-
/**
* mbssid_tx_iface - Transmitting interface of the MBSSID set
*/
*/
u8 **rnr_elem_offset;
+ /* Unsolicited broadcast Probe Response data */
+ struct unsol_bcast_probe_resp ubpr;
+
/**
* allowed_freqs - List of allowed 20 MHz channel center frequencies in
* MHz for AP operation. Drivers which support this parameter will
static int nl80211_unsol_bcast_probe_resp(struct i802_bss *bss,
struct nl_msg *msg,
- struct wpa_driver_ap_params *params)
+ struct unsol_bcast_probe_resp *ubpr)
{
struct nlattr *attr;
wpa_printf(MSG_DEBUG,
"nl80211: Unsolicited broadcast Probe Response frame interval: %u",
- params->unsol_bcast_probe_resp_interval);
+ ubpr->unsol_bcast_probe_resp_interval);
attr = nla_nest_start(msg, NL80211_ATTR_UNSOL_BCAST_PROBE_RESP);
if (!attr ||
nla_put_u32(msg, NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT,
- params->unsol_bcast_probe_resp_interval) ||
- (params->unsol_bcast_probe_resp_tmpl &&
+ ubpr->unsol_bcast_probe_resp_interval) ||
+ (ubpr->unsol_bcast_probe_resp_tmpl &&
nla_put(msg, NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL,
- params->unsol_bcast_probe_resp_tmpl_len,
- params->unsol_bcast_probe_resp_tmpl)))
+ ubpr->unsol_bcast_probe_resp_tmpl_len,
+ ubpr->unsol_bcast_probe_resp_tmpl)))
return -1;
nla_nest_end(msg, attr);
goto fail;
}
- if (params->unsol_bcast_probe_resp_interval &&
- nl80211_unsol_bcast_probe_resp(bss, msg, params) < 0)
+ if (params->ubpr.unsol_bcast_probe_resp_interval &&
+ nl80211_unsol_bcast_probe_resp(bss, msg, ¶ms->ubpr) < 0)
goto fail;
if (nl80211_mbssid(msg, params) < 0)