static int wpa_supplicant_tdls_peer_addset( void *ctx, const u8 *peer, int add, u16 capability, const u8 *supp_rates, size_t supp_rates_len) { struct wpa_supplicant *wpa_s = ctx; struct hostapd_sta_add_params params; params.addr = peer; params.aid = 1; params.capability = capability; params.flags = WPA_STA_TDLS_PEER | WPA_STA_AUTHORIZED; params.ht_capabilities = NULL; params.listen_interval = 0; params.supp_rates = supp_rates; params.supp_rates_len = supp_rates_len; params.set = !add; return wpa_drv_sta_add(wpa_s, ¶ms); }
static int wpa_supplicant_tdls_peer_addset( void *ctx, const u8 *peer, int add, u16 aid, u16 capability, const u8 *supp_rates, size_t supp_rates_len, const struct ieee80211_ht_capabilities *ht_capab, const struct ieee80211_vht_capabilities *vht_capab, u8 qosinfo, const u8 *ext_capab, size_t ext_capab_len, const u8 *supp_channels, size_t supp_channels_len, const u8 *supp_oper_classes, size_t supp_oper_classes_len) { struct wpa_supplicant *wpa_s = ctx; struct hostapd_sta_add_params params; os_memset(¶ms, 0, sizeof(params)); params.addr = peer; params.aid = aid; params.capability = capability; params.flags = WPA_STA_TDLS_PEER | WPA_STA_AUTHORIZED; /* * TDLS Setup frames do not contain WMM IEs, hence need to depend on * qosinfo to check if the peer is WMM capable. */ if (qosinfo) params.flags |= WPA_STA_WMM; params.ht_capabilities = ht_capab; params.vht_capabilities = vht_capab; params.qosinfo = qosinfo; params.listen_interval = 0; params.supp_rates = supp_rates; params.supp_rates_len = supp_rates_len; params.set = !add; params.ext_capab = ext_capab; params.ext_capab_len = ext_capab_len; params.supp_channels = supp_channels; params.supp_channels_len = supp_channels_len; params.supp_oper_classes = supp_oper_classes; params.supp_oper_classes_len = supp_oper_classes_len; return wpa_drv_sta_add(wpa_s, ¶ms); }
static int wpa_supplicant_tdls_peer_addset( void *ctx, const u8 *peer, int add, u16 aid, u16 capability, const u8 *supp_rates, size_t supp_rates_len, const struct ieee80211_ht_capabilities *ht_capab, const struct ieee80211_vht_capabilities *vht_capab, u8 qosinfo, int wmm, const u8 *ext_capab, size_t ext_capab_len, const u8 *supp_channels, size_t supp_channels_len, const u8 *supp_oper_classes, size_t supp_oper_classes_len) { struct wpa_supplicant *wpa_s = ctx; struct hostapd_sta_add_params params; os_memset(¶ms, 0, sizeof(params)); params.addr = peer; params.aid = aid; params.capability = capability; params.flags = WPA_STA_TDLS_PEER | WPA_STA_AUTHORIZED; /* * Don't rely only on qosinfo for WMM capability. It may be 0 even when * present. Allow the WMM IE to also indicate QoS support. */ if (wmm || qosinfo) params.flags |= WPA_STA_WMM; params.ht_capabilities = ht_capab; params.vht_capabilities = vht_capab; params.qosinfo = qosinfo; params.listen_interval = 0; params.supp_rates = supp_rates; params.supp_rates_len = supp_rates_len; params.set = !add; params.ext_capab = ext_capab; params.ext_capab_len = ext_capab_len; params.supp_channels = supp_channels; params.supp_channels_len = supp_channels_len; params.supp_oper_classes = supp_oper_classes; params.supp_oper_classes_len = supp_oper_classes_len; return wpa_drv_sta_add(wpa_s, ¶ms); }