Advertising WPA_NONE in beacon and probe resp of IBSS
The patch advertises wpa IE(WPA_NONE) in beacon and probe response
frames transmitted by IBSS network.
Change-Id: I9b3c1de74fb0f9e5ec3d4a150ac40c8be02e1c4b
CRs-Fixed: 547752
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 9ee03f1..6c93f73 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -5445,6 +5445,123 @@
pWextState->roamProfile.nAddIEAssocLength = pWextState->assocAddIE.length;
}
+ if (WLAN_HDD_IBSS == pAdapter->device_mode) {
+
+ /* populating as ADDIE in beacon frames */
+ if (ccmCfgSetStr(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA, genie - 2, eLen + 2,
+ NULL, eANI_BOOLEAN_FALSE)== eHAL_STATUS_SUCCESS)
+ {
+ if (ccmCfgSetInt(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG, 1,NULL,
+ eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ hddLog(LOGE,
+ "Coldn't pass "
+ "WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG to CCM");
+ }
+ }/* ccmCfgSetStr(,WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA, , )*/
+ else
+ hddLog(LOGE,
+ "Could not pass on "
+ "WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA to CCM");
+
+ /* IBSS mode doesn't contain params->proberesp_ies still
+ beaconIE's need to be populated in probe response frames */
+ if ( (NULL != (genie - 2)) && (0 != eLen + 2) )
+ {
+ u16 rem_probe_resp_ie_len = eLen + 2;
+ u8 probe_rsp_ie_len[3] = {0};
+ u8 counter = 0;
+
+ /* Check Probe Resp Length if it is greater then 255 then
+ Store Probe Rsp IEs into WNI_CFG_PROBE_RSP_ADDNIE_DATA1
+ & WNI_CFG_PROBE_RSP_ADDNIE_DATA2 CFG Variable As We are
+ not able Store More then 255 bytes into One Variable */
+
+ while ((rem_probe_resp_ie_len > 0) && (counter < 3))
+ {
+ if (rem_probe_resp_ie_len > MAX_CFG_STRING_LEN)
+ {
+ probe_rsp_ie_len[counter++] = MAX_CFG_STRING_LEN;
+ rem_probe_resp_ie_len -= MAX_CFG_STRING_LEN;
+ }
+ else
+ {
+ probe_rsp_ie_len[counter++] = rem_probe_resp_ie_len;
+ rem_probe_resp_ie_len = 0;
+ }
+ }
+
+ rem_probe_resp_ie_len = 0;
+
+ if (probe_rsp_ie_len[0] > 0)
+ {
+ if (ccmCfgSetStr(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_ADDNIE_DATA1,
+ (tANI_U8*)(genie - 2),
+ probe_rsp_ie_len[0], NULL,
+ eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE)
+ {
+ hddLog(LOGE,
+ "Could not pass"
+ "on WNI_CFG_PROBE_RSP_ADDNIE_DATA1 to CCM");
+ }
+ rem_probe_resp_ie_len += probe_rsp_ie_len[0];
+ }
+
+ if (probe_rsp_ie_len[1] > 0)
+ {
+ if (ccmCfgSetStr(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_ADDNIE_DATA2,
+ (tANI_U8*)(genie - (2 + rem_probe_resp_ie_len)),
+ probe_rsp_ie_len[1], NULL,
+ eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE)
+ {
+ hddLog(LOGE,
+ "Could not pass"
+ "on WNI_CFG_PROBE_RSP_ADDNIE_DATA2 to CCM");
+ }
+ rem_probe_resp_ie_len += probe_rsp_ie_len[1];
+ }
+
+ if (probe_rsp_ie_len[2] > 0)
+ {
+ if (ccmCfgSetStr(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_ADDNIE_DATA3,
+ (tANI_U8*)(genie - (2 + rem_probe_resp_ie_len)),
+ probe_rsp_ie_len[2], NULL,
+ eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE)
+ {
+ hddLog(LOGE,
+ "Could not pass"
+ "on WNI_CFG_PROBE_RSP_ADDNIE_DATA3 to CCM");
+ }
+ rem_probe_resp_ie_len += probe_rsp_ie_len[2];
+ }
+
+ if (ccmCfgSetInt(WLAN_HDD_GET_HAL_CTX(pAdapter),
+ WNI_CFG_PROBE_RSP_ADDNIE_FLAG, 1,NULL,
+ eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ hddLog(LOGE,
+ "Could not pass"
+ "on WNI_CFG_PROBE_RSP_ADDNIE_FLAG to CCM");
+ }
+ }
+ else
+ {
+ // Reset WNI_CFG_PROBE_RSP Flags
+ wlan_hdd_reset_prob_rspies(pAdapter);
+
+ hddLog(VOS_TRACE_LEVEL_INFO,
+ "%s: No Probe Response IE received in set beacon",
+ __func__);
+ }
+ } /* end of if (WLAN_HDD_IBSS == pAdapter->device_mode) */
break;
case DOT11F_EID_RSN:
hddLog (VOS_TRACE_LEVEL_INFO, "%s Set RSN IE(len %d)",__func__, eLen + 2);