qcacld-3.0: Add support to add VHT op mode IE

Add support to include VHT opmode IE in association request
frames when the STA is connecting to VHT AP and the connection
has SMPS enabled.

Change-Id: Id18a6356ac6f08d1846abe42f84713fddef984dc
CRs-Fixed: 1062430
This commit is contained in:
Kiran Kumar Lokere 2016-08-31 19:04:04 -07:00 • committed by qcabuildsw
commit 1d4094ef44
2 changed files with 26 additions and 0 deletions

View file

@ -87,6 +87,7 @@ lim_extract_ap_capability(tpAniSirGlobal mac_ctx, uint8_t *p_ie,
uint8_t fw_vht_ch_wd;
uint8_t vht_ch_wd;
uint8_t center_freq_diff;
struct s_ext_cap *ext_cap;
beacon_struct = qdf_mem_malloc(sizeof(tSirProbeRespBeacon));
if (NULL == beacon_struct) {
@ -267,6 +268,24 @@ lim_extract_ap_capability(tpAniSirGlobal mac_ctx, uint8_t *p_ie,
lim_log(mac_ctx, LOGP,
FL("Set VHT_SU_BEAMFORMEE_CAP Fail"));
}
if (session->vhtCapability &&
session->vhtCapabilityPresentInBeacon &&
beacon_struct->ext_cap.present) {
ext_cap = (struct s_ext_cap *)beacon_struct->ext_cap.bytes;
session->gLimOperatingMode.present =
ext_cap->oper_mode_notification;
if (ext_cap->oper_mode_notification) {
if (CH_WIDTH_160MHZ > session->ch_width)
session->gLimOperatingMode.chanWidth =
session->ch_width;
else
session->gLimOperatingMode.chanWidth =
CH_WIDTH_160MHZ;
} else {
lim_log(mac_ctx, LOGE, FL(
"AP does not support op_mode rx"));
}
}
/* Extract the UAPSD flag from WMM Parameter element */
if (beacon_struct->wmeEdcaPresent)
*uapsd = beacon_struct->edcaParams.qosInfo.uapsd;

View file

@ -1796,6 +1796,13 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
lim_log(mac_ctx, LOG1, FL("Populate VHT IEs in Assoc Request"));
populate_dot11f_vht_caps(mac_ctx, pe_session, &frm->VHTCaps);
vht_enabled = true;
if (pe_session->enableHtSmps &&
!pe_session->supported_nss_1x1) {
lim_log(mac_ctx, LOGE, FL(
"VHT OP mode IE in Assoc Req"));
populate_dot11f_operating_mode(mac_ctx,
&frm->OperatingMode, pe_session);
}
}
if (!vht_enabled &&
pe_session->is_vendor_specific_vhtcaps) {