qcacld-3.0: Fix max dwell time for passive scan beacon report

qcacld-2.0 to qcacld-3.0 propagation

Currently STA advertising the max. measurement duration of RM
capability as half the beacon interval. When STA receives beacon
report request frame, it is not using measurement duration
indicated if it is above the advertised max. measurement duration
However, firmware expects a minimum of one beacon interval to
find the AP.

Modify the max. measurement capability of RRM as one beacon interval.
Also engineered the code to make use of the INI parameters for
adjusting the max measurement duration.

Git-commit: 0a18af7723c58987944780bad0ff7f35605413ac
Change-Id: Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca
CRs-Fixed: 1030590
This commit is contained in:
Selvaraj, Sridhar 2016-08-18 12:29:02 +05:30 committed by qcabuildsw
parent cd3cc70222
commit 4d6c29599d
4 changed files with 21 additions and 7 deletions

View File

@ -839,13 +839,13 @@ typedef enum {
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_NAME "gRrmOperChanMax" /* section 11.10.3 IEEE std. 802.11k-2008 */
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MIN (0) /* Maxduration = 2^(maxDuration - 4) * bcnIntvl. */
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MAX (8)
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_DEFAULT (3) /* max duration = 2^-1 * bcnIntvl (50% of bcn intvl) */
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_MAX (7)
#define CFG_RRM_OPERATING_CHAN_MAX_DURATION_DEFAULT (4) /* max duration = 2^0 * bcnIntvl (100% of bcn intvl) */
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_NAME "gRrmNonOperChanMax" /* Same as above. */
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MIN (0)
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MAX (8)
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_DEFAULT (3)
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MAX (7)
#define CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_DEFAULT (4)
#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME "gRrmRandnIntvl"
#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN (10)
@ -862,7 +862,7 @@ typedef enum {
* Comma is used as a separator for each byte.
*/
#define CFG_RM_CAPABILITY_NAME "rm_capability"
#define CFG_RM_CAPABILITY_DEFAULT "73,10,6D,00,04"
#define CFG_RM_CAPABILITY_DEFAULT "73,10,91,00,04"
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME "ImplicitQosIsEnabled"
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN (0)

View File

@ -7040,6 +7040,18 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
hdd_hex_string_to_u8_array(pConfig->rm_capability,
smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
/*
* Update the INI values gRrmOperChanMax and gRrmNonOperChanMax
* appropriately
*/
smeConfig->rrmConfig.rm_capability[2] =
((pConfig->nOutChanMeasMaxDuration <<
CAP_NONOPER_CHAN_MAX_DURATION_OFFSET) |
(pConfig->nOutChanMeasMaxDuration <<
CAP_OPER_CHAN_MAX_DURATION_OFFSET) |
(smeConfig->rrmConfig.rm_capability[2] &
(RM_CAP_RM_MIB | RM_CAP_AP_CHAN_REPORT)));
/* Remaining config params not obtained from registry
* On RF EVB beacon using channel 1.
*/

View File

@ -225,6 +225,8 @@ typedef struct sRrmPEContext {
#define RCPI_MAX_VALUE (220)
#define CALCULATE_RCPI(rssi) (((rssi) + 110) * 2)
#define CAP_OPER_CHAN_MAX_DURATION_OFFSET 2
#define CAP_NONOPER_CHAN_MAX_DURATION_OFFSET 5
/* Bit mask are defined as per Draft P802.11REVmc_D4.2 */
/**

View File

@ -1299,8 +1299,8 @@ tSirRetStatus rrm_initialize(tpAniSirGlobal pMac)
pRRMCaps->fine_time_meas_rpt = 1;
pRRMCaps->lci_capability = 1;
pRRMCaps->operatingChanMax = 3;
pRRMCaps->nonOperatingChanMax = 3;
pRRMCaps->operatingChanMax = 4;
pRRMCaps->nonOperatingChanMax = 4;
return eSIR_SUCCESS;
}