Explorar el Código

qcacld-3.0: Host driver changes to support 11ai frame parsing

As part of Ic1b670e23f637f11b494422ad9954c1d7515e833, frame parser
files are changes to support 11ai frames parsing.

This changes addresses required host driver changes to support
the 11ai frame parsing.

Change-Id: Ia62d546ba1507d8541382369102840be316c466c
CRs-Fixed: 2028592
Selvaraj, Sridhar hace 8 años
padre
commit
75afbebffe

+ 2 - 2
core/hdd/src/wlan_hdd_assoc.c

@@ -5252,7 +5252,7 @@ static int32_t hdd_process_genie(hdd_adapter_t *pAdapter,
 		RSNIeLen = gen_ie_len - 2;
 		/* Unpack the RSN IE */
 		dot11f_unpack_ie_rsn((tpAniSirGlobal) halHandle,
-				     pRsnIe, RSNIeLen, &dot11RSNIE);
+				     pRsnIe, RSNIeLen, &dot11RSNIE, false);
 		/* Copy out the encryption and authentication types */
 		hdd_debug("pairwise cipher suite count: %d",
 			 dot11RSNIE.pwise_cipher_suite_count);
@@ -5320,7 +5320,7 @@ static int32_t hdd_process_genie(hdd_adapter_t *pAdapter,
 		RSNIeLen = gen_ie_len - (2 + 4);
 		/* Unpack the WPA IE */
 		dot11f_unpack_ie_wpa((tpAniSirGlobal) halHandle,
-				     pRsnIe, RSNIeLen, &dot11WPAIE);
+				     pRsnIe, RSNIeLen, &dot11WPAIE, false);
 		/* Copy out the encryption and authentication types */
 		hdd_debug("WPA unicast cipher suite count: %d",
 			 dot11WPAIE.unicast_cipher_count);

+ 4 - 3
core/hdd/src/wlan_hdd_cfg80211.c

@@ -14618,9 +14618,10 @@ static int wlan_hdd_cfg80211_set_privacy_ibss(hdd_adapter_t *pAdapter,
 				 * and four byte WiFi OUI
 				 */
 				dot11f_unpack_ie_wpa((tpAniSirGlobal) halHandle,
-						     &ie[2 + 4],
-						     ie[1] - 4, &dot11WPAIE);
-				/* Extract the multicast cipher, the
+						     &ie[2 + 4], ie[1] - 4,
+						     &dot11WPAIE, false);
+				/*
+				 * Extract the multicast cipher, the
 				 * encType for unicast cipher for
 				 * wpa-none is none
 				 */

+ 4 - 3
core/hdd/src/wlan_hdd_hostapd.c

@@ -2177,7 +2177,7 @@ int hdd_softap_unpack_ie(tHalHandle halHandle,
 		/* Unpack the RSN IE */
 		memset(&dot11RSNIE, 0, sizeof(tDot11fIERSN));
 		dot11f_unpack_ie_rsn((tpAniSirGlobal) halHandle,
-				     pRsnIe, RSNIeLen, &dot11RSNIE);
+				     pRsnIe, RSNIeLen, &dot11RSNIE, false);
 		/* Copy out the encryption and authentication types */
 		hdd_debug("pairwise cipher suite count: %d",
 		       dot11RSNIE.pwise_cipher_suite_count);
@@ -2214,7 +2214,7 @@ int hdd_softap_unpack_ie(tHalHandle halHandle,
 		/* Unpack the WPA IE */
 		memset(&dot11WPAIE, 0, sizeof(tDot11fIEWPA));
 		dot11f_unpack_ie_wpa((tpAniSirGlobal) halHandle,
-				     pRsnIe, RSNIeLen, &dot11WPAIE);
+				     pRsnIe, RSNIeLen, &dot11WPAIE, false);
 		/* Copy out the encryption and authentication types */
 		hdd_debug("WPA unicast cipher suite count: %d",
 		       dot11WPAIE.unicast_cipher_count);
@@ -6340,7 +6340,8 @@ static bool wlan_hdd_get_sap_obss(hdd_adapter_t *pHostapdAdapter)
 	if (ie && ie[1]) {
 		qdf_mem_copy(ht_cap_ie, &ie[2], DOT11F_IE_HTCAPS_MAX_LEN);
 		dot11f_unpack_ie_ht_caps((tpAniSirGlobal)hdd_ctx->hHal,
-					ht_cap_ie, ie[1], &dot11_ht_cap_ie);
+					ht_cap_ie, ie[1], &dot11_ht_cap_ie,
+					false);
 		return dot11_ht_cap_ie.supportedChannelWidthSet;
 	}
 

+ 1 - 1
core/hdd/src/wlan_hdd_scan.c

@@ -340,7 +340,7 @@ static int hdd_indicate_scan_result(hdd_scan_info_t *scanInfo,
 
 		dot11f_unpack_beacon_i_es((tpAniSirGlobal)
 					  hHal, (uint8_t *) descriptor->ieFields,
-					  ie_length, &dot11BeaconIEs);
+					  ie_length, &dot11BeaconIEs, false);
 
 		pDot11SSID = &dot11BeaconIEs.SSID;
 

+ 14 - 12
core/mac/src/pe/lim/lim_process_action_frame.c

@@ -239,7 +239,7 @@ static void __lim_process_channel_switch_action_frame(tpAniSirGlobal mac_ctx,
 
 	/* Unpack channel switch frame */
 	status = dot11f_unpack_channel_switch(mac_ctx, body_ptr, frame_len,
-			chnl_switch_frame);
+			chnl_switch_frame, false);
 
 	if (DOT11F_FAILED(status)) {
 		lim_log(mac_ctx, LOGE,
@@ -378,7 +378,7 @@ lim_process_ext_channel_switch_action_frame(tpAniSirGlobal mac_ctx,
 
 	/* Unpack channel switch frame */
 	status = dot11f_unpack_ext_channel_switch_action_frame(mac_ctx,
-			body, frame_len, ext_channel_switch_frame);
+			body, frame_len, ext_channel_switch_frame, false);
 
 	if (DOT11F_FAILED(status)) {
 
@@ -492,7 +492,7 @@ static void __lim_process_operating_mode_action_frame(tpAniSirGlobal mac_ctx,
 	}
 	/* Unpack channel switch frame */
 	status = dot11f_unpack_operating_mode(mac_ctx, body_ptr, frame_len,
-			operating_mode_frm);
+			operating_mode_frm, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(mac_ctx, LOGE,
 			FL("Failed to unpack and parse (0x%08x, %d bytes)"),
@@ -625,7 +625,7 @@ static void __lim_process_gid_management_action_frame(tpAniSirGlobal mac_ctx,
 
 	/* Unpack Gid Mangement Action frame */
 	status = dot11f_unpack_vht_gid_management_action_frame(mac_ctx,
-			body_ptr, frame_len, gid_mgmt_frame);
+			body_ptr, frame_len, gid_mgmt_frame, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(mac_ctx, LOGE,
 			FL("Fail to parse an Grp id frame (0x%08x, %d bytes):"),
@@ -1295,7 +1295,8 @@ __lim_process_sm_power_save_update(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
 	}
 
 	/**Unpack the received frame */
-	nStatus = dot11f_unpack_sm_power_save(pMac, pBody, frameLen, &frmSMPower);
+	nStatus = dot11f_unpack_sm_power_save(pMac, pBody, frameLen,
+					      &frmSMPower, false);
 
 	if (DOT11F_FAILED(nStatus)) {
 		lim_log(pMac, LOGE,
@@ -1382,9 +1383,8 @@ __lim_process_radio_measure_request(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
 	}
 
 	/**Unpack the received frame */
-	nStatus = dot11f_unpack_radio_measurement_request(pMac,
-								pBody,
-								frameLen, frm);
+	nStatus = dot11f_unpack_radio_measurement_request(pMac, pBody,
+							  frameLen, frm, false);
 
 	if (DOT11F_FAILED(nStatus)) {
 		lim_log(pMac, LOGE,
@@ -1427,7 +1427,8 @@ __lim_process_link_measurement_req(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
 
 	/**Unpack the received frame */
 	nStatus =
-		dot11f_unpack_link_measurement_request(pMac, pBody, frameLen, &frm);
+		dot11f_unpack_link_measurement_request(pMac, pBody, frameLen,
+						       &frm, false);
 
 	if (DOT11F_FAILED(nStatus)) {
 		lim_log(pMac, LOGE,
@@ -1480,7 +1481,8 @@ __lim_process_neighbor_report(tpAniSirGlobal pMac, uint8_t *pRxPacketInfo,
 
 	/**Unpack the received frame */
 	nStatus =
-		dot11f_unpack_neighbor_report_response(pMac, pBody, frameLen, pFrm);
+		dot11f_unpack_neighbor_report_response(pMac, pBody,
+						       frameLen, pFrm, false);
 
 	if (DOT11F_FAILED(nStatus)) {
 		lim_log(pMac, LOGE,
@@ -1755,7 +1757,7 @@ static void lim_process_addba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
 
 	/* Unpack ADDBA request frame */
 	status = dot11f_unpack_addba_req(mac_ctx, body_ptr, frame_len,
-					 addba_req);
+					 addba_req, false);
 
 	if (DOT11F_FAILED(status)) {
 		lim_log(mac_ctx, LOGE,
@@ -1836,7 +1838,7 @@ static void lim_process_delba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
 
 	/* Unpack DELBA request frame */
 	status = dot11f_unpack_delba_req(mac_ctx, body_ptr, frame_len,
-					 delba_req);
+					 delba_req, false);
 
 	if (DOT11F_FAILED(status)) {
 		lim_log(mac_ctx, LOGE,

+ 2 - 2
core/mac/src/pe/lim/lim_process_assoc_req_frame.c

@@ -805,7 +805,7 @@ static bool lim_chk_n_process_wpa_rsn_ie(tpAniSirGlobal mac_ctx,
 					dot11f_unpack_ie_rsn(mac_ctx,
 						&assoc_req->rsn.info[0],
 						assoc_req->rsn.length,
-						&dot11f_ie_rsn);
+						&dot11f_ie_rsn, false);
 
 					/* Check RSN version is supported */
 					if (SIR_MAC_OUI_VERSION_1 ==
@@ -880,7 +880,7 @@ static bool lim_chk_n_process_wpa_rsn_ie(tpAniSirGlobal mac_ctx,
 					dot11f_unpack_ie_wpa(mac_ctx,
 						&assoc_req->wpa.info[4],
 						assoc_req->wpa.length,
-						&dot11f_ie_wpa);
+						&dot11f_ie_wpa, false);
 					/*
 					 * check the groupwise and pairwise
 					 * cipher suites

+ 4 - 4
core/mac/src/pe/lim/lim_sme_req_utils.c

@@ -299,13 +299,13 @@ lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(tpAniSirGlobal mac_ctx,
 		lim_log(mac_ctx, LOG1, FL("Only RSN IE is present"));
 		dot11f_unpack_ie_rsn(mac_ctx, &rsn_ie->rsnIEdata[2],
 				     (uint8_t) rsn_ie->length,
-				     &session->gStartBssRSNIe);
+				     &session->gStartBssRSNIe, false);
 	} else if ((rsn_ie->length == rsn_ie->rsnIEdata[1] + 2)
 		   && (rsn_ie->rsnIEdata[0] == SIR_MAC_WPA_EID)) {
 		lim_log(mac_ctx, LOG1, FL("Only WPA IE is present"));
 		dot11f_unpack_ie_wpa(mac_ctx, &rsn_ie->rsnIEdata[6],
 				     (uint8_t) rsn_ie->length - 4,
-				     &session->gStartBssWPAIe);
+				     &session->gStartBssWPAIe, false);
 	}
 	/* Check validity of WPA IE */
 	if (wpa_idx + 6 >= SIR_MAC_MAX_IE_LENGTH)
@@ -326,10 +326,10 @@ lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(tpAniSirGlobal mac_ctx,
 		/* Both RSN and WPA IEs are present */
 		dot11f_unpack_ie_rsn(mac_ctx, &rsn_ie->rsnIEdata[2],
 				     (uint8_t) rsn_ie->length,
-				     &session->gStartBssRSNIe);
+				     &session->gStartBssRSNIe, false);
 		dot11f_unpack_ie_wpa(mac_ctx, &rsn_ie->rsnIEdata[wpa_idx + 6],
 				     rsn_ie->rsnIEdata[wpa_idx + 1] - 4,
-				     &session->gStartBssWPAIe);
+				     &session->gStartBssWPAIe, false);
 	}
 	return true;
 }

+ 2 - 2
core/mac/src/pe/lim/lim_utils.c

@@ -6815,7 +6815,7 @@ tSirRetStatus lim_strip_supp_op_class_update_struct(tpAniSirGlobal mac_ctx,
 
 	/* update the extracted supp op class to struct*/
 	if (DOT11F_PARSE_SUCCESS != dot11f_unpack_ie_supp_operating_classes(
-	    mac_ctx, &extracted_buff[2], extracted_buff[1], dst)) {
+	    mac_ctx, &extracted_buff[2], extracted_buff[1], dst, false)) {
 		lim_log(mac_ctx, LOGE, FL("dot11f_unpack Parse Error "));
 		return eSIR_FAILURE;
 	}
@@ -6859,7 +6859,7 @@ void lim_update_extcap_struct(tpAniSirGlobal mac_ctx,
 	qdf_mem_copy(&out[0], &buf[2], buf[1]);
 
 	if (DOT11F_PARSE_SUCCESS != dot11f_unpack_ie_ext_cap(mac_ctx, &out[0],
-					buf[1], dst))
+							buf[1], dst, false))
 		lim_log(mac_ctx, LOGE, FL("dot11f_unpack Parse Error "));
 }
 

+ 32 - 22
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -1545,7 +1545,7 @@ populate_dot11f_rsn(tpAniSirGlobal pMac,
 		if (0 <= idx) {
 			status = dot11f_unpack_ie_rsn(pMac, pRsnIe->rsnIEdata + idx + 2,   /* EID, length */
 						      pRsnIe->rsnIEdata[idx + 1],
-						      pDot11f);
+						      pDot11f, false);
 			if (DOT11F_FAILED(status)) {
 				pe_err("Parse failure in Populate Dot11fRSN (0x%08x)",
 					status);
@@ -1594,7 +1594,7 @@ populate_dot11f_wapi(tpAniSirGlobal pMac,
 		if (0 <= idx) {
 			status = dot11f_unpack_ie_wapi(pMac, pRsnIe->rsnIEdata + idx + 2,  /* EID, length */
 						       pRsnIe->rsnIEdata[idx + 1],
-						       pDot11f);
+						       pDot11f, false);
 			if (DOT11F_FAILED(status)) {
 				pe_err("Parse failure in populate_dot11f_wapi (0x%08x)",
 					status);
@@ -2124,7 +2124,7 @@ populate_dot11f_wpa(tpAniSirGlobal pMac,
 		if (0 <= idx) {
 			status = dot11f_unpack_ie_wpa(pMac, pRsnIe->rsnIEdata + idx + 2 + 4,       /* EID, length, OUI */
 						      pRsnIe->rsnIEdata[idx + 1] - 4,   /* OUI */
-						      pDot11f);
+						      pDot11f, false);
 			if (DOT11F_FAILED(status)) {
 				pe_err("Parse failure in Populate Dot11fWPA (0x%08x)",
 					status);
@@ -2170,7 +2170,7 @@ sir_convert_probe_req_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_set((uint8_t *) pProbeReq, sizeof(tSirProbeReq), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_probe_request(pMac, pFrame, nFrame, &pr);
+	status = dot11f_unpack_probe_request(pMac, pFrame, nFrame, &pr, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse a Probe Request (0x%08x, %d bytes):"),
@@ -2320,7 +2320,7 @@ tSirRetStatus sir_convert_probe_frame2_struct(tpAniSirGlobal pMac,
 	}
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_probe_response(pMac, pFrame, nFrame, pr);
+	status = dot11f_unpack_probe_response(pMac, pFrame, nFrame, pr, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse a Probe Response (0x%08x, %d bytes):"),
@@ -2636,7 +2636,7 @@ sir_convert_assoc_req_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_set((uint8_t *) pAssocReq, sizeof(tSirAssocReq), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_assoc_request(pMac, pFrame, nFrame, ar);
+	status = dot11f_unpack_assoc_request(pMac, pFrame, nFrame, ar, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse an Association Request (0x%08x, %d bytes):"),
@@ -2844,7 +2844,7 @@ sir_convert_assoc_resp_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_set((uint8_t *) pAssocRsp, sizeof(tSirAssocRsp), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_assoc_response(pMac, pFrame, nFrame, &ar);
+	status = dot11f_unpack_assoc_response(pMac, pFrame, nFrame, &ar, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse an Association Response (0x%08x, %d bytes):"),
@@ -3077,7 +3077,8 @@ sir_convert_reassoc_req_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_set((uint8_t *) pAssocReq, sizeof(tSirAssocReq), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_re_assoc_request(pMac, pFrame, nFrame, &ar);
+	status = dot11f_unpack_re_assoc_request(pMac, pFrame, nFrame,
+						&ar, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse a Re-association Request (0x%08x, %d bytes):"),
@@ -3269,7 +3270,8 @@ sir_beacon_ie_ese_bcn_report(tpAniSirGlobal pMac,
 	}
 	qdf_mem_zero(pBies, sizeof(tDot11fBeaconIEs));
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_beacon_i_es(pMac, pPayload, nPayload, pBies);
+	status = dot11f_unpack_beacon_i_es(pMac, pPayload, nPayload,
+					   pBies, false);
 
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
@@ -3563,7 +3565,8 @@ sir_parse_beacon_ie(tpAniSirGlobal pMac,
 	}
 	qdf_mem_zero(pBies, sizeof(tDot11fBeaconIEs));
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_beacon_i_es(pMac, pPayload, nPayload, pBies);
+	status = dot11f_unpack_beacon_i_es(pMac, pPayload, nPayload,
+					   pBies, false);
 
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
@@ -3878,7 +3881,7 @@ sir_convert_beacon_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_copy(pBeaconStruct->bssid, pHdr->sa, 6);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_beacon(pMac, pPayload, nPayload, pBeacon);
+	status = dot11f_unpack_beacon(pMac, pPayload, nPayload, pBeacon, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse Beacon IEs (0x%08x, %d bytes):"),
@@ -4249,7 +4252,8 @@ sir_convert_auth_frame2_struct(tpAniSirGlobal pMac,
 	qdf_mem_set((uint8_t *) pAuth, sizeof(tSirMacAuthFrameBody), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_authentication(pMac, pFrame, nFrame, &auth);
+	status = dot11f_unpack_authentication(pMac, pFrame, nFrame,
+					      &auth, false);
 	if (DOT11F_FAILED(status)) {
 		lim_log(pMac, LOGE,
 			FL("Failed to parse an Authentication frame (0x%08x, %d bytes):"),
@@ -4304,12 +4308,13 @@ sir_convert_addts_req2_struct(tpAniSirGlobal pMac,
 	/* delegate to the framesc-generated code, */
 	switch (*pFrame) {
 	case SIR_MAC_ACTION_QOS_MGMT:
-		status = dot11f_unpack_add_ts_request(pMac, pFrame, nFrame, &addts);
+		status = dot11f_unpack_add_ts_request(pMac, pFrame, nFrame,
+						      &addts, false);
 		break;
 	case SIR_MAC_ACTION_WME:
 		status =
 			dot11f_unpack_wmm_add_ts_request(pMac, pFrame, nFrame,
-							 &wmmaddts);
+							 &wmmaddts, false);
 		break;
 	default:
 		lim_log(pMac, LOGE, FL("sir_convert_addts_req2_struct invoked "
@@ -4443,12 +4448,13 @@ sir_convert_addts_rsp2_struct(tpAniSirGlobal pMac,
 	switch (*pFrame) {
 	case SIR_MAC_ACTION_QOS_MGMT:
 		status =
-			dot11f_unpack_add_ts_response(pMac, pFrame, nFrame, &addts);
+			dot11f_unpack_add_ts_response(pMac, pFrame, nFrame,
+						      &addts, false);
 		break;
 	case SIR_MAC_ACTION_WME:
 		status =
 			dot11f_unpack_wmm_add_ts_response(pMac, pFrame, nFrame,
-							  &wmmaddts);
+							  &wmmaddts, false);
 		break;
 	default:
 		lim_log(pMac, LOGE, FL("sir_convert_addts_rsp2_struct invoked "
@@ -4618,10 +4624,12 @@ sir_convert_delts_req2_struct(tpAniSirGlobal pMac,
 	/* delegate to the framesc-generated code, */
 	switch (*pFrame) {
 	case SIR_MAC_ACTION_QOS_MGMT:
-		status = dot11f_unpack_del_ts(pMac, pFrame, nFrame, &delts);
+		status = dot11f_unpack_del_ts(pMac, pFrame, nFrame,
+					      &delts, false);
 		break;
 	case SIR_MAC_ACTION_WME:
-		status = dot11f_unpack_wmm_del_ts(pMac, pFrame, nFrame, &wmmdelts);
+		status = dot11f_unpack_wmm_del_ts(pMac, pFrame, nFrame,
+						  &wmmdelts, false);
 		break;
 	default:
 		lim_log(pMac, LOGE, FL("sirConvertDeltsRsp2Struct invoked "
@@ -4688,7 +4696,8 @@ sir_convert_qos_map_configure_frame2_struct(tpAniSirGlobal pMac,
 	tDot11fQosMapConfigure mapConfigure;
 	uint32_t status;
 	status =
-		dot11f_unpack_qos_map_configure(pMac, pFrame, nFrame, &mapConfigure);
+		dot11f_unpack_qos_map_configure(pMac, pFrame, nFrame,
+						&mapConfigure, false);
 	if (DOT11F_FAILED(status) || !mapConfigure.QosMapSet.present) {
 		pe_err("Failed to parse Qos Map Configure frame (0x%08x, %d bytes):",
 			   status, nFrame);
@@ -4718,7 +4727,7 @@ sir_convert_tpc_req_frame2_struct(tpAniSirGlobal pMac,
 	uint32_t status;
 	qdf_mem_set((uint8_t *) pTpcReqFrame, sizeof(tSirMacTpcReqActionFrame),
 		    0);
-	status = dot11f_unpack_tpc_request(pMac, pFrame, nFrame, &req);
+	status = dot11f_unpack_tpc_request(pMac, pFrame, nFrame, &req, false);
 	if (DOT11F_FAILED(status)) {
 		pe_err("Failed to parse a TPC Request frame (0x%08x, %d bytes):",
 			   status, nFrame);
@@ -4759,7 +4768,8 @@ sir_convert_meas_req_frame2_struct(tpAniSirGlobal pMac,
 		    sizeof(tpSirMacMeasReqActionFrame), 0);
 
 	/* delegate to the framesc-generated code, */
-	status = dot11f_unpack_measurement_request(pMac, pFrame, nFrame, &mr);
+	status = dot11f_unpack_measurement_request(pMac, pFrame,
+						   nFrame, &mr, false);
 	if (DOT11F_FAILED(status)) {
 		pe_err("Failed to parse a Measurement Request frame (0x%08x, %d bytes):",
 			   status, nFrame);
@@ -5632,7 +5642,7 @@ tSirRetStatus populate_dot11f_assoc_res_wsc_ie(tpAniSirGlobal pMac,
 		/* retreive WSC IE from given AssocReq */
 		dot11f_unpack_ie_wsc_assoc_req(pMac, wscIe + 2 + 4,     /* EID, length, OUI */
 					       wscIe[1] - 4, /* length without OUI */
-					       &parsedWscAssocReq);
+					       &parsedWscAssocReq, false);
 		pDot11f->present = 1;
 		/* version has to be 0x10 */
 		pDot11f->Version.present = 1;

+ 1 - 1
core/sme/src/csr/csr_roam_preauth.c

@@ -651,7 +651,7 @@ void csr_roam_ft_pre_auth_rsp_processor(tHalHandle hal,
 
 		status = dot11f_unpack_authentication(mac_ctx,
 				preauth_rsp->ft_ies,
-				preauth_rsp->ft_ies_length, p_auth);
+				preauth_rsp->ft_ies_length, p_auth, false);
 		if (DOT11F_FAILED(status))
 			sme_err("Failed to parse an Authentication frame");
 		else if (p_auth->MobilityDomain.present)

+ 3 - 4
core/sme/src/csr/csr_util.c

@@ -1703,10 +1703,9 @@ QDF_STATUS csr_parse_bss_description_ies(tHalHandle hHal,
 		      GET_FIELD_OFFSET(tSirBssDescription, ieFields));
 
 	if (ieLen > 0 && pIEStruct) {
-		if (!DOT11F_FAILED
-			    (dot11f_unpack_beacon_i_es
-				    (pMac, (uint8_t *) pBssDesc->ieFields, ieLen,
-				    pIEStruct))) {
+		if (!DOT11F_FAILED(dot11f_unpack_beacon_i_es
+				    (pMac, (uint8_t *) pBssDesc->ieFields,
+				    ieLen, pIEStruct, false))) {
 			status = QDF_STATUS_SUCCESS;
 		}
 	}