diff options
| author | Manikandan Mohan <manikand@qca.qualcomm.com> | 2015-04-03 14:22:20 -0700 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2015-04-06 16:27:29 +0530 |
| commit | eea8fbc71b682f54d314654c18b6d26c774625cb (patch) | |
| tree | f05517477ad1872e3b8fffe65fc6e93856f5248d | |
| parent | 8511ac061fbe7c0ebc14dba7344f10326a4bef3d (diff) | |
qcacld: Set WMM from hostapd.conf for SAP
Enable control of WMM from hostapd.conf for 11b/g/a SAP mode.
For 11n/ac WMM is enabled by default.
Change-Id: I66a67f9f07739ffc0f6f1a4651056099455d1d4a
CRs-fixed: 817831
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg80211.h | 2 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 18 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 3 |
3 files changed, 22 insertions, 1 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h index 2604d121841a..ecc70170a9d4 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg80211.h +++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h @@ -78,6 +78,8 @@ #define BLACKLIST_OUI_TYPE "\x00\x50\x00\x00" #define WHITELIST_OUI_TYPE "\x00\x50\x00\x01" #define WPA_OUI_TYPE_SIZE 4 +#define WMM_OUI_TYPE "\x00\x50\xf2\x02\x01" +#define WMM_OUI_TYPE_SIZE 5 #define WLAN_BSS_MEMBERSHIP_SELECTOR_HT_PHY 127 #define BASIC_RATE_MASK 0x80 diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 6cc8fce6d685..e50f73e17c7a 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -8213,6 +8213,7 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, v_SINT_t i; hdd_config_t *iniConfig; hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pHostapdAdapter); + tSmeConfigParams sme_config; #ifdef WLAN_FEATURE_11AC v_BOOL_t sapForce11ACFor11n = #ifdef WLAN_FEATURE_MBSSID @@ -8233,6 +8234,8 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, clear_bit(ACS_IN_PROGRESS, &pHddCtx->g_event_flags); pConfig = &pHostapdAdapter->sessionCtx.ap.sapConfig; + vos_mem_zero(&sme_config, sizeof (tSmeConfigParams)); + sme_GetConfigParam(pHddCtx->hHal, &sme_config); pBeacon = pHostapdAdapter->sessionCtx.ap.beacon; @@ -8458,6 +8461,7 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->ucEncryptType = eCSR_ENCRYPT_TYPE_NONE; + pConfig->RSNWPAReqIELength = 0; memset(&pConfig->RSNWPAReqIE[0], 0, sizeof(pConfig->RSNWPAReqIE)); pIe = wlan_hdd_cfg80211_get_ie_ptr(pBeacon->tail, pBeacon->tail_len, @@ -8683,6 +8687,17 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, } wlan_hdd_set_sapHwmode(pHostapdAdapter); + /* Override hostapd.conf wmm_enabled only for 11n and 11AC configs (IOT) + * As per spec 11n/11AC STA are QOS STA and may not connect to nonQOS 11n AP + * Default enable QOS for SAP + */ + sme_config.csrConfig.WMMSupportMode = eCsrRoamWmmAuto; + pIe = wlan_hdd_get_vendor_oui_ie_ptr(WMM_OUI_TYPE, WMM_OUI_TYPE_SIZE, + pBeacon->tail, pBeacon->tail_len); + if (!pIe && (pConfig->SapHw_mode == eCSR_DOT11_MODE_11a || + pConfig->SapHw_mode == eCSR_DOT11_MODE_11g || + pConfig->SapHw_mode == eCSR_DOT11_MODE_11b)) + sme_config.csrConfig.WMMSupportMode = eCsrRoamWmmNoQos; #ifdef WLAN_FEATURE_11AC /* Overwrite the hostapd setting for HW mode only for 11ac. @@ -8810,6 +8825,9 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->dfs_cac_block_tx = VOS_TRUE; + /* Apply updated SME config before start BSS */ + sme_UpdateConfig(pHddCtx->hHal, &sme_config); + status = WLANSAP_StartBss( #ifdef WLAN_FEATURE_MBSSID WLAN_HDD_GET_SAP_CTX_PTR(pHostapdAdapter), diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index c019df1a69e7..2b92a7e27e27 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -1620,7 +1620,8 @@ eHalStatus csrChangeDefaultConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pPa if(pParam) { pMac->roam.configParam.WMMSupportMode = pParam->WMMSupportMode; - cfgSetInt(pMac, WNI_CFG_WME_ENABLED, pParam->WMMSupportMode); + cfgSetInt(pMac, WNI_CFG_WME_ENABLED, + (pParam->WMMSupportMode == eCsrRoamWmmNoQos)? 0:1); pMac->roam.configParam.Is11eSupportEnabled = pParam->Is11eSupportEnabled; pMac->roam.configParam.FragmentationThreshold = pParam->FragmentationThreshold; pMac->roam.configParam.Is11dSupportEnabled = pParam->Is11dSupportEnabled; |
