summaryrefslogtreecommitdiff
path: root/CORE/MAC/src
diff options
context:
space:
mode:
authorKrishna Kumaar Natarajan <kknatara@qca.qualcomm.com>2015-02-12 15:37:40 -0800
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-05-01 21:45:11 +0530
commitb6a4cfc0f6ea0f141e41fcbfdb36ba84831d2dee (patch)
tree0fd4e880134c9b4ae93dc0753fc49052300643f4 /CORE/MAC/src
parent2a03ce518ca47d85c741c52227e7c9e849ce76d4 (diff)
qcacld: Update fine timing measurement capabilities
Currently our driver does not have support to advertise Fine Timing Measurement initiator/responder capability. As per 802.11mc spec, two bits are used to advertise this in extended capability IE. Introduce the second bit for advertising Fine Timing Measurement initiator capability and add Ext Capability IE in Probe Request frame. Change-Id: Iec7060079158a38549a6ee5819e6f2bba8ab5abe CRs-Fixed: 798460
Diffstat (limited to 'CORE/MAC/src')
-rw-r--r--CORE/MAC/src/cfg/cfgUtil/dot11f.frms1
-rw-r--r--CORE/MAC/src/include/dot11f.h3
-rw-r--r--CORE/MAC/src/include/parserApi.h4
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c8
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c8
-rw-r--r--CORE/MAC/src/pe/lim/limSendManagementFrames.c15
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.c8
7 files changed, 25 insertions, 22 deletions
diff --git a/CORE/MAC/src/cfg/cfgUtil/dot11f.frms b/CORE/MAC/src/cfg/cfgUtil/dot11f.frms
index 97740a94f53a..6e021c48b270 100644
--- a/CORE/MAC/src/cfg/cfgUtil/dot11f.frms
+++ b/CORE/MAC/src/cfg/cfgUtil/dot11f.frms
@@ -3368,6 +3368,7 @@ FRAME ProbeRequest // 7.2.3.8
OPTIE WFATPC;
OPTIE P2PProbeReq;
OPTIE VHTCaps;
+ OPTIE ExtCap;
} // End frame ProbeRequest.
FRAME ProbeResponse // 7.2.3.9
diff --git a/CORE/MAC/src/include/dot11f.h b/CORE/MAC/src/include/dot11f.h
index b522dd05e5de..0f9e2a3e057d 100644
--- a/CORE/MAC/src/include/dot11f.h
+++ b/CORE/MAC/src/include/dot11f.h
@@ -37,7 +37,7 @@
*
*
* This file was automatically generated by 'framesc'
- * Thu Mar 19 17:16:31 2015 from the following file(s):
+ * Thu Apr 30 13:39:44 2015 from the following file(s):
*
* dot11f.frms
*
@@ -6795,6 +6795,7 @@ typedef struct sDot11fProbeRequest{
tDot11fIEWFATPC WFATPC;
tDot11fIEP2PProbeReq P2PProbeReq;
tDot11fIEVHTCaps VHTCaps;
+ tDot11fIEExtCap ExtCap;
} tDot11fProbeRequest;
#define DOT11F_PROBEREQUEST ( 36 )
diff --git a/CORE/MAC/src/include/parserApi.h b/CORE/MAC/src/include/parserApi.h
index ffc00b1696eb..03fa7c5fe676 100644
--- a/CORE/MAC/src/include/parserApi.h
+++ b/CORE/MAC/src/include/parserApi.h
@@ -398,8 +398,8 @@ struct s_ext_cap {
uint8_t NwChanControl: 1;
uint8_t WhiteSpaceMap: 1;
uint8_t ChanAvailQuery: 1;
- uint8_t fineTimingMeas: 1;
- uint8_t reserved7: 1;
+ uint8_t fine_time_meas_responder: 1;
+ uint8_t fine_time_meas_initiator: 1;
};
tANI_U8
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
index 1825e7adf287..767a25dc2040 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
@@ -1384,13 +1384,13 @@ if (limPopulateMatchingRateSet(pMac,
pStaDs->timingMeasCap |= (p_ext_cap->timingMeas)?
RTT_TIMING_MEAS_CAPABILITY:
RTT_INVALID;
- pStaDs->timingMeasCap |= (p_ext_cap->fineTimingMeas)?
- RTT_FINE_TIMING_MEAS_CAPABILITY:
+ pStaDs->timingMeasCap |= (p_ext_cap->fine_time_meas_initiator)?
+ RTT_FINE_TIME_MEAS_INITIATOR_CAPABILITY:
RTT_INVALID;
PELOG1(limLog(pMac, LOG1,
- FL("ExtCap present, timingMeas: %d fineTimingMeas: %d"),
+ FL("ExtCap present, timingMeas: %d ftm_initiator: %d"),
p_ext_cap->timingMeas,
- p_ext_cap->fineTimingMeas);)
+ p_ext_cap->fine_time_meas_initiator);)
}
else
{
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
index a98912ee1e29..7237f453f4a7 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
@@ -935,13 +935,13 @@ limProcessAssocRspFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tANI_U8 sub
pStaDs->timingMeasCap |= (p_ext_cap->timingMeas)?
RTT_TIMING_MEAS_CAPABILITY:
RTT_INVALID;
- pStaDs->timingMeasCap |= (p_ext_cap->fineTimingMeas)?
- RTT_FINE_TIMING_MEAS_CAPABILITY:
+ pStaDs->timingMeasCap |= (p_ext_cap->fine_time_meas_initiator)?
+ RTT_FINE_TIME_MEAS_INITIATOR_CAPABILITY:
RTT_INVALID;
PELOG1(limLog(pMac, LOG1,
- FL("ExtCap present, timingMeas: %d fineTimingMeas: %d"),
+ FL("ExtCap present, timingMeas: %d ftm_initiator: %d"),
p_ext_cap->timingMeas,
- p_ext_cap->fineTimingMeas);)
+ p_ext_cap->fine_time_meas_initiator);)
#ifdef FEATURE_WLAN_TDLS
psessionEntry->tdls_prohibited =
p_ext_cap->TDLSProhibited;
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index 32dfe14e2baa..be02b54c7923 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -393,6 +393,7 @@ limSendProbeReqMgmtFrame(tpAniSirGlobal pMac,
tANI_U8 *p2pIe = NULL;
tANI_U8 txFlag = 0;
tANI_U8 smeSessionId = 0;
+ bool isVHTEnabled = false;
@@ -501,19 +502,19 @@ limSendProbeReqMgmtFrame(tpAniSirGlobal pMac,
#ifdef WLAN_FEATURE_11AC
if (psessionEntry != NULL ) {
psessionEntry->vhtCapability = IS_DOT11_MODE_VHT(dot11mode);
- //Include HT Capability IE
- if (psessionEntry->vhtCapability)
- {
+ /* Include VHT Capability IE */
+ if (psessionEntry->vhtCapability) {
PopulateDot11fVHTCaps( pMac, psessionEntry, &pr.VHTCaps );
+ isVHTEnabled = true;
}
- } else {
- if (IS_DOT11_MODE_VHT(dot11mode))
- {
+ } else {
+ if (IS_DOT11_MODE_VHT(dot11mode)) {
PopulateDot11fVHTCaps( pMac, psessionEntry, &pr.VHTCaps );
+ isVHTEnabled = true;
}
}
#endif
-
+ PopulateDot11fExtCap(pMac, isVHTEnabled, &pr.ExtCap, psessionEntry);
// That's it-- now we pack it. First, how much space are we going to
// need?
diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c
index eff2c6d57b5e..60e4400bc083 100644
--- a/CORE/MAC/src/pe/lim/limUtils.c
+++ b/CORE/MAC/src/pe/lim/limUtils.c
@@ -7948,14 +7948,14 @@ void lim_sap_offload_add_sta(tpAniSirGlobal pmac, tpSirMsgQ lim_msgq)
sta_ds->timingMeasCap |= (p_ext_cap->timingMeas)?
RTT_TIMING_MEAS_CAPABILITY :
RTT_INVALID;
- sta_ds->timingMeasCap |= (p_ext_cap->fineTimingMeas)?
- RTT_FINE_TIMING_MEAS_CAPABILITY :
+ sta_ds->timingMeasCap |= (p_ext_cap->fine_time_meas_initiator)?
+ RTT_FINE_TIME_MEAS_INITIATOR_CAPABILITY :
RTT_INVALID;
PELOG1(limLog(pMac, LOG1,
- FL("ExtCap present, timingMeas: %d fineTimingMeas: %d"),
+ FL("ExtCap present, timingMeas: %d ftm_initiator: %d"),
p_ext_cap->timingMeas,
- p_ext_cap->fineTimingMeas);)
+ p_ext_cap->fine_time_meas_initiator);)
} else {
sta_ds->timingMeasCap = 0;
PELOG1(limLog(pmac, LOG1, FL("ExtCap not present"));)