diff options
| author | Krishna Kumaar Natarajan <kknatara@qca.qualcomm.com> | 2015-02-12 15:37:40 -0800 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2015-05-01 21:45:11 +0530 |
| commit | b6a4cfc0f6ea0f141e41fcbfdb36ba84831d2dee (patch) | |
| tree | 0fd4e880134c9b4ae93dc0753fc49052300643f4 /CORE/MAC/src | |
| parent | 2a03ce518ca47d85c741c52227e7c9e849ce76d4 (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.frms | 1 | ||||
| -rw-r--r-- | CORE/MAC/src/include/dot11f.h | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/include/parserApi.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c | 8 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c | 8 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSendManagementFrames.c | 15 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.c | 8 |
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"));) |
