wifi: mac80211: Extend AID element addition for TDLS frames
Extend AID element addition in TDLS setup request and response frames to add it when HE or EHT capabilities are supported. Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230616094948.483bf44ce684.Ia2387eb24c06fa41febc213923160bedafce2085@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
71b3b7ac3e
commit
05995d05aa
@ -499,17 +499,21 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
|
|||||||
offset = noffset;
|
offset = noffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* build the VHT-cap similarly to the HT-cap */
|
/* add AID if VHT, HE or EHT capabilities supported */
|
||||||
memcpy(&vht_cap, &sband->vht_cap, sizeof(vht_cap));
|
memcpy(&vht_cap, &sband->vht_cap, sizeof(vht_cap));
|
||||||
|
he_cap = ieee80211_get_he_iftype_cap_vif(sband, &sdata->vif);
|
||||||
|
eht_cap = ieee80211_get_eht_iftype_cap_vif(sband, &sdata->vif);
|
||||||
|
if ((vht_cap.vht_supported || he_cap || eht_cap) &&
|
||||||
|
(action_code == WLAN_TDLS_SETUP_REQUEST ||
|
||||||
|
action_code == WLAN_TDLS_SETUP_RESPONSE))
|
||||||
|
ieee80211_tdls_add_aid(sdata, skb);
|
||||||
|
|
||||||
|
/* build the VHT-cap similarly to the HT-cap */
|
||||||
if ((action_code == WLAN_TDLS_SETUP_REQUEST ||
|
if ((action_code == WLAN_TDLS_SETUP_REQUEST ||
|
||||||
action_code == WLAN_PUB_ACTION_TDLS_DISCOVER_RES) &&
|
action_code == WLAN_PUB_ACTION_TDLS_DISCOVER_RES) &&
|
||||||
vht_cap.vht_supported) {
|
vht_cap.vht_supported) {
|
||||||
ieee80211_apply_vhtcap_overrides(sdata, &vht_cap);
|
ieee80211_apply_vhtcap_overrides(sdata, &vht_cap);
|
||||||
|
|
||||||
/* the AID is present only when VHT is implemented */
|
|
||||||
if (action_code == WLAN_TDLS_SETUP_REQUEST)
|
|
||||||
ieee80211_tdls_add_aid(sdata, skb);
|
|
||||||
|
|
||||||
pos = skb_put(skb, sizeof(struct ieee80211_vht_cap) + 2);
|
pos = skb_put(skb, sizeof(struct ieee80211_vht_cap) + 2);
|
||||||
ieee80211_ie_build_vht_cap(pos, &vht_cap, vht_cap.cap);
|
ieee80211_ie_build_vht_cap(pos, &vht_cap, vht_cap.cap);
|
||||||
} else if (action_code == WLAN_TDLS_SETUP_RESPONSE &&
|
} else if (action_code == WLAN_TDLS_SETUP_RESPONSE &&
|
||||||
@ -517,9 +521,6 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
|
|||||||
/* the peer caps are already intersected with our own */
|
/* the peer caps are already intersected with our own */
|
||||||
memcpy(&vht_cap, &sta->sta.deflink.vht_cap, sizeof(vht_cap));
|
memcpy(&vht_cap, &sta->sta.deflink.vht_cap, sizeof(vht_cap));
|
||||||
|
|
||||||
/* the AID is present only when VHT is implemented */
|
|
||||||
ieee80211_tdls_add_aid(sdata, skb);
|
|
||||||
|
|
||||||
pos = skb_put(skb, sizeof(struct ieee80211_vht_cap) + 2);
|
pos = skb_put(skb, sizeof(struct ieee80211_vht_cap) + 2);
|
||||||
ieee80211_ie_build_vht_cap(pos, &vht_cap, vht_cap.cap);
|
ieee80211_ie_build_vht_cap(pos, &vht_cap, vht_cap.cap);
|
||||||
|
|
||||||
@ -547,7 +548,6 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* build the HE-cap from sband */
|
/* build the HE-cap from sband */
|
||||||
he_cap = ieee80211_get_he_iftype_cap_vif(sband, &sdata->vif);
|
|
||||||
if (he_cap &&
|
if (he_cap &&
|
||||||
(action_code == WLAN_TDLS_SETUP_REQUEST ||
|
(action_code == WLAN_TDLS_SETUP_REQUEST ||
|
||||||
action_code == WLAN_TDLS_SETUP_RESPONSE ||
|
action_code == WLAN_TDLS_SETUP_RESPONSE ||
|
||||||
@ -591,7 +591,6 @@ ieee80211_tdls_add_setup_start_ies(struct ieee80211_link_data *link,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* build the EHT-cap from sband */
|
/* build the EHT-cap from sband */
|
||||||
eht_cap = ieee80211_get_eht_iftype_cap_vif(sband, &sdata->vif);
|
|
||||||
if (he_cap && eht_cap &&
|
if (he_cap && eht_cap &&
|
||||||
(action_code == WLAN_TDLS_SETUP_REQUEST ||
|
(action_code == WLAN_TDLS_SETUP_REQUEST ||
|
||||||
action_code == WLAN_TDLS_SETUP_RESPONSE ||
|
action_code == WLAN_TDLS_SETUP_RESPONSE ||
|
||||||
|
Loading…
Reference in New Issue
Block a user