TDLS: Pass peer's AID information to kernel
The information of the peer's AID is required for the driver to construct partial AID in VHT PPDU's. Pass this information to the driver during add/set station operations (well, as soon as the information is available, i.e., with set station operation currently). Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
4d471ca55a
commit
785336998d
6 changed files with 19 additions and 8 deletions
|
@ -127,6 +127,8 @@ struct wpa_tdls_peer {
|
|||
|
||||
u8 qos_info;
|
||||
|
||||
u16 aid;
|
||||
|
||||
u8 *ext_capab;
|
||||
size_t ext_capab_len;
|
||||
};
|
||||
|
@ -1558,6 +1560,8 @@ static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr,
|
|||
|
||||
peer->qos_info = kde.qosinfo;
|
||||
|
||||
peer->aid = kde.aid;
|
||||
|
||||
#ifdef CONFIG_TDLS_TESTING
|
||||
if (tdls_testing & TDLS_TESTING_CONCURRENT_INIT) {
|
||||
peer = wpa_tdls_add_peer(sm, src_addr, NULL);
|
||||
|
@ -1735,7 +1739,7 @@ skip_rsn:
|
|||
|
||||
skip_rsn_check:
|
||||
/* add the peer to the driver as a "setup in progress" peer */
|
||||
wpa_sm_tdls_peer_addset(sm, peer->addr, 1, 0, NULL, 0, NULL, NULL, 0,
|
||||
wpa_sm_tdls_peer_addset(sm, peer->addr, 1, 0, 0, NULL, 0, NULL, NULL, 0,
|
||||
NULL, 0);
|
||||
|
||||
wpa_printf(MSG_DEBUG, "TDLS: Sending TDLS Setup Response / TPK M2");
|
||||
|
@ -1777,7 +1781,8 @@ static int wpa_tdls_enable_link(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
|
|||
}
|
||||
|
||||
/* add supported rates, capabilities, and qos_info to the TDLS peer */
|
||||
if (wpa_sm_tdls_peer_addset(sm, peer->addr, 0, peer->capability,
|
||||
if (wpa_sm_tdls_peer_addset(sm, peer->addr, 0, peer->aid,
|
||||
peer->capability,
|
||||
peer->supp_rates, peer->supp_rates_len,
|
||||
peer->ht_capabilities,
|
||||
peer->vht_capabilities,
|
||||
|
@ -1908,6 +1913,8 @@ static int wpa_tdls_process_tpk_m2(struct wpa_sm *sm, const u8 *src_addr,
|
|||
|
||||
peer->qos_info = kde.qosinfo;
|
||||
|
||||
peer->aid = kde.aid;
|
||||
|
||||
if (!wpa_tdls_get_privacy(sm)) {
|
||||
peer->rsnie_p_len = 0;
|
||||
peer->cipher = WPA_CIPHER_NONE;
|
||||
|
@ -2235,7 +2242,7 @@ int wpa_tdls_start(struct wpa_sm *sm, const u8 *addr)
|
|||
peer->initiator = 1;
|
||||
|
||||
/* add the peer to the driver as a "setup in progress" peer */
|
||||
wpa_sm_tdls_peer_addset(sm, peer->addr, 1, 0, NULL, 0, NULL, NULL, 0,
|
||||
wpa_sm_tdls_peer_addset(sm, peer->addr, 1, 0, 0, NULL, 0, NULL, NULL, 0,
|
||||
NULL, 0);
|
||||
|
||||
if (wpa_tdls_send_tpk_m1(sm, peer) < 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue