summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@codeaurora.org>2017-03-13 17:55:48 +0530
committerSandeep Puligilla <spuligil@codeaurora.org>2017-03-16 01:59:22 -0700
commitfd6cb7d084c238b66d57037aa1a8eb01ce447096 (patch)
tree34f1243f398f5d7604e42740c159bda3b1058830
parent40c6f93446745032de585c96d74e8e4bbc4a8baf (diff)
qcacld-3.0: Enable FILS capability bit in extended capability IE
With I446c7d7589534688e04579ed434de0803ed8b4ff, STA adds FILS request parameters IE in Probe Requests. But FILS capability is not set in extended capability IE. Enable FILS capability bit in extended capability IE. Change-Id: If409185f785a4c1905b60df5935baf313f638887 CRs-Fixed: 2018546
-rw-r--r--core/mac/src/cfg/cfgUtil/dot11f.frms2
-rw-r--r--core/mac/src/include/dot11f.h6
-rw-r--r--core/mac/src/include/parser_api.h1
-rw-r--r--core/mac/src/pe/lim/lim_api.c4
-rw-r--r--core/mac/src/sys/legacy/src/utils/src/dot11f.c30
-rw-r--r--core/mac/src/sys/legacy/src/utils/src/parser_api.c3
6 files changed, 25 insertions, 21 deletions
diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms
index 5cb72406c21d..4457c9f040ab 100644
--- a/core/mac/src/cfg/cfgUtil/dot11f.frms
+++ b/core/mac/src/cfg/cfgUtil/dot11f.frms
@@ -2270,7 +2270,7 @@ IE ChannelSwitchWrapper (EID_CHANNEL_SWITCH_WRAPPER)
}
IE ExtCap (EID_EXT_CAP)
{
- bytes[1..9];
+ bytes[1..15];
}
IE HTCaps (EID_HT_CAPABILITIES)
diff --git a/core/mac/src/include/dot11f.h b/core/mac/src/include/dot11f.h
index e6ad509807d5..96b8c6c33e2a 100644
--- a/core/mac/src/include/dot11f.h
+++ b/core/mac/src/include/dot11f.h
@@ -35,7 +35,7 @@
*
*
* This file was automatically generated by 'framesc'
- * Tue Feb 14 11:22:39 2017 from the following file(s):
+ * Mon Mar 13 16:17:19 2017 from the following file(s):
*
* dot11f.frms
*
@@ -4269,7 +4269,7 @@ uint32_t dot11f_get_packed_ie_ESEVersion(
typedef struct sDot11fIEExtCap {
uint8_t present;
uint8_t num_bytes;
- uint8_t bytes[9];
+ uint8_t bytes[15];
} tDot11fIEExtCap;
#define DOT11F_EID_EXTCAP (127)
@@ -4277,7 +4277,7 @@ typedef struct sDot11fIEExtCap {
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_EXTCAP_MIN_LEN (1)
-#define DOT11F_IE_EXTCAP_MAX_LEN (9)
+#define DOT11F_IE_EXTCAP_MAX_LEN (15)
#ifdef __cplusplus
extern "C" {
diff --git a/core/mac/src/include/parser_api.h b/core/mac/src/include/parser_api.h
index dded689a21a9..75e9463fa1a9 100644
--- a/core/mac/src/include/parser_api.h
+++ b/core/mac/src/include/parser_api.h
@@ -422,6 +422,7 @@ struct s_ext_cap {
uint8_t chan_avail_query:1;
uint8_t fine_time_meas_responder:1;
uint8_t fine_time_meas_initiator:1;
+ uint8_t fils_capability:1;
};
uint8_t sirIsPropCapabilityEnabled(struct sAniSirGlobal *pMac, uint32_t bitnum);
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index de3a7eea5685..9fedeeb8d98c 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -2327,8 +2327,8 @@ QDF_STATUS lim_update_ext_cap_ie(tpAniSirGlobal mac_ctx,
lim_merge_extcap_struct(&driver_ext_cap, &default_scan_ext_cap, true);
qdf_mem_copy(local_ie_buf + (*local_ie_len),
- driver_ext_cap.bytes, DOT11F_IE_EXTCAP_MAX_LEN);
- (*local_ie_len) += DOT11F_IE_EXTCAP_MAX_LEN;
+ driver_ext_cap.bytes, driver_ext_cap.num_bytes);
+ (*local_ie_len) += driver_ext_cap.num_bytes;
return QDF_STATUS_SUCCESS;
}
diff --git a/core/mac/src/sys/legacy/src/utils/src/dot11f.c b/core/mac/src/sys/legacy/src/utils/src/dot11f.c
index 55118a99552e..210cf8934fd4 100644
--- a/core/mac/src/sys/legacy/src/utils/src/dot11f.c
+++ b/core/mac/src/sys/legacy/src/utils/src/dot11f.c
@@ -33,7 +33,7 @@
*
*
* This file was automatically generated by 'framesc'
- * Tue Feb 14 11:22:39 2017 from the following file(s):
+ * Mon Mar 13 16:17:19 2017 from the following file(s):
*
* dot11f.frms
*
@@ -3002,7 +3002,7 @@ uint32_t dot11f_unpack_ie_ext_cap(tpAniSirGlobal pCtx,
if (!ielen) /* Check to ensure copying of ielen bytes */
goto endUnpackIeExtCap;
pDst->num_bytes = (uint8_t)(ielen);
- if (ielen > 9) {
+ if (ielen > 15) {
pDst->present = 0;
return DOT11F_SKIPPED_BAD_IE;
}
@@ -6215,7 +6215,7 @@ static const tIEDefn IES_AssocRequest[] = {
present), 0, "QosMapSet", 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0},
0, DOT11F_EID_QOSMAPSET, 0, },
{ offsetof(tDot11fAssocRequest, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fAssocRequest, VHTCaps), offsetof(tDot11fIEVHTCaps,
present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0},
@@ -6372,7 +6372,7 @@ static const tIEDefn IES_AssocResponse[] = {
0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTOPERATION, 0, },
{ offsetof(tDot11fAssocResponse, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fAssocResponse, OBSSScanParameters),
offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters",
@@ -6598,7 +6598,7 @@ static const tIEDefn IES_Beacon[] = {
0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTEXTBSSLOAD, 0, },
{ offsetof(tDot11fBeacon, ExtCap), offsetof(tDot11fIEExtCap, present), 0,
- "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fBeacon, OperatingMode),
offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode",
@@ -6803,7 +6803,7 @@ static const tIEDefn IES_Beacon2[] = {
0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTEXTBSSLOAD, 0, },
{ offsetof(tDot11fBeacon2, ExtCap), offsetof(tDot11fIEExtCap, present), 0,
- "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fBeacon2, OperatingMode),
offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode",
@@ -7004,7 +7004,7 @@ static const tIEDefn IES_BeaconIEs[] = {
0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTEXTBSSLOAD, 0, },
{ offsetof(tDot11fBeaconIEs, ExtCap), offsetof(tDot11fIEExtCap, present),
- 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fBeaconIEs, OperatingMode),
offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode",
@@ -7458,7 +7458,7 @@ static const tIEDefn IES_ProbeRequest[] = {
present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTCAPS, 0, },
{ offsetof(tDot11fProbeRequest, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fProbeRequest, QCN_IE), offsetof(tDot11fIEQCN_IE,
present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0},
@@ -7627,7 +7627,7 @@ static const tIEDefn IES_ProbeResponse[] = {
0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTEXTBSSLOAD, 0, },
{ offsetof(tDot11fProbeResponse, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fProbeResponse, OBSSScanParameters),
offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters",
@@ -7888,7 +7888,7 @@ static const tIEDefn IES_ReAssocRequest[] = {
present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTCAPS, 0, },
{ offsetof(tDot11fReAssocRequest, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fReAssocRequest, OperatingMode),
offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode",
@@ -8022,7 +8022,7 @@ static const tIEDefn IES_ReAssocResponse[] = {
0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0},
0, DOT11F_EID_VHTOPERATION, 0, },
{ offsetof(tDot11fReAssocResponse, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fReAssocResponse, OBSSScanParameters),
offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters",
@@ -8199,7 +8199,7 @@ static const tIEDefn IES_TDLSDisRsp[] = {
{ offsetof(tDot11fTDLSDisRsp, RSN), offsetof(tDot11fIERSN, present), 0,
"RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, },
{ offsetof(tDot11fTDLSDisRsp, ExtCap), offsetof(tDot11fIEExtCap, present),
- 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fTDLSDisRsp, FTInfo), offsetof(tDot11fIEFTInfo, present),
0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0},
@@ -8405,7 +8405,7 @@ static const tIEDefn IES_TDLSSetupReq[] = {
{ offsetof(tDot11fTDLSSetupReq, RSN), offsetof(tDot11fIERSN, present), 0,
"RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, },
{ offsetof(tDot11fTDLSSetupReq, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fTDLSSetupReq, SuppOperatingClasses),
offsetof(tDot11fIESuppOperatingClasses, present), 0,
@@ -8494,7 +8494,7 @@ static const tIEDefn IES_TDLSSetupRsp[] = {
{ offsetof(tDot11fTDLSSetupRsp, RSN), offsetof(tDot11fIERSN, present), 0,
"RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, },
{ offsetof(tDot11fTDLSSetupRsp, ExtCap), offsetof(tDot11fIEExtCap,
- present), 0, "ExtCap", 0, 3, 11, SigIeExtCap, {0, 0, 0, 0, 0},
+ present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fTDLSSetupRsp, SuppOperatingClasses),
offsetof(tDot11fIESuppOperatingClasses, present), 0,
@@ -8673,7 +8673,7 @@ static const tIEDefn IES_TimingAdvertisementFrame[] = {
0, 18, 18, SigIeTimeAdvertisement, {0, 0, 0, 0, 0},
0, DOT11F_EID_TIMEADVERTISEMENT, 0, },
{ offsetof(tDot11fTimingAdvertisementFrame, ExtCap),
- offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 11, SigIeExtCap,
+ offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap,
{0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, },
{ offsetof(tDot11fTimingAdvertisementFrame, Vendor1IE),
offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE",
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index b078e4867c95..1f96dfd348c6 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -1258,6 +1258,9 @@ populate_dot11f_ext_cap(tpAniSirGlobal pMac,
#endif
p_ext_cap->ext_chan_switch = 1;
+ if (pMac->roam.configParam.enable_bcast_probe_rsp)
+ p_ext_cap->fils_capability = 1;
+
/* Need to calulate the num_bytes based on bits set */
if (pDot11f->present)
pDot11f->num_bytes = lim_compute_ext_cap_ie_length(pDot11f);