hostapd_sta_add(const char *ifname, struct hostapd_data *hapd, const u8 *addr,
u16 aid, u16 capability, const u8 *supp_rates,
size_t supp_rates_len, int flags, u16 listen_interval,
- const struct ht_cap_ie *ht_capabilities)
+ const struct ieee80211_ht_capabilities *ht_capabilities)
{
struct hostapd_sta_add_params params;
elems.ht_capabilities_len >=
sizeof(struct ieee80211_ht_capabilities)) {
sta->flags |= WLAN_STA_HT;
- sta->ht_capabilities.id = WLAN_EID_HT_CAP;
- sta->ht_capabilities.length =
- sizeof(struct ieee80211_ht_capabilities);
- os_memcpy(&sta->ht_capabilities.data,
- elems.ht_capabilities,
+ os_memcpy(&sta->ht_capabilities, elems.ht_capabilities,
sizeof(struct ieee80211_ht_capabilities));
} else
sta->flags &= ~WLAN_STA_HT;
#ifdef CONFIG_IEEE80211N
if (sta->flags & WLAN_STA_HT) {
u16 ht_capab = le_to_host16(
- sta->ht_capabilities.data.ht_capabilities_info);
+ sta->ht_capabilities.ht_capabilities_info);
wpa_printf(MSG_DEBUG, "HT: STA " MACSTR " HT Capabilities "
"Info: 0x%04x", MAC2STR(sta->addr), ht_capab);
if ((ht_capab & HT_CAP_INFO_GREEN_FIELD) == 0) {
#ifdef CONFIG_IEEE80211N
static void
hostapd_get_ht_capab(struct hostapd_data *hapd,
- struct ht_cap_ie *ht_cap_ie,
- struct ht_cap_ie *neg_ht_cap_ie)
+ struct ieee80211_ht_capabilities *ht_cap,
+ struct ieee80211_ht_capabilities *neg_ht_cap)
{
u16 cap;
- os_memcpy(neg_ht_cap_ie, ht_cap_ie, sizeof(struct ht_cap_ie));
- cap = le_to_host16(neg_ht_cap_ie->data.ht_capabilities_info);
+ os_memcpy(neg_ht_cap, ht_cap, sizeof(*neg_ht_cap));
+ cap = le_to_host16(neg_ht_cap->ht_capabilities_info);
cap &= hapd->iconf->ht_capab;
cap |= (hapd->iconf->ht_capab & HT_CAP_INFO_SMPS_DISABLED);
/* FIXME: Rx STBC needs to be handled specially */
cap |= (hapd->iconf->ht_capab & HT_CAP_INFO_RX_STBC_MASK);
- neg_ht_cap_ie->data.ht_capabilities_info = host_to_le16(cap);
+ neg_ht_cap->ht_capabilities_info = host_to_le16(cap);
}
#endif /* CONFIG_IEEE80211N */
struct sta_info *sta;
int new_assoc = 1;
#ifdef CONFIG_IEEE80211N
- struct ht_cap_ie ht_cap;
+ struct ieee80211_ht_capabilities ht_cap;
#endif /* CONFIG_IEEE80211N */
- struct ht_cap_ie *ht_cap_ptr = NULL;
+ struct ieee80211_ht_capabilities *ht_cap_ptr = NULL;
int set_flags, flags_and, flags_or;
if (!ok) {
params->supp_rates);
NLA_PUT_U16(msg, NL80211_ATTR_STA_LISTEN_INTERVAL,
params->listen_interval);
-
-#ifdef CONFIG_IEEE80211N
if (params->ht_capabilities) {
NLA_PUT(msg, NL80211_ATTR_HT_CAPABILITY,
- params->ht_capabilities->length,
- ¶ms->ht_capabilities->data);
+ sizeof(*params->ht_capabilities),
+ params->ht_capabilities);
}
-#endif /* CONFIG_IEEE80211N */
ret = send_and_recv_msgs(drv, msg, NULL, NULL);
if (ret)