Browse Source

qcacld-3.0: Enable SAE authentication for P2P

Enable SAE authentication for P2P. This allows to process and
forward the SAE auth frames to userspace in P2P_CLI and
P2P_GO modes.

Change-Id: I210f6b3db4d4d0a39f1dcb7f136ec9ac7e4c34c4
CRs-Fixed: 2933379
Srinivas Dasari 4 years ago
parent
commit
601f733cc5

+ 1 - 0
core/hdd/src/wlan_hdd_cfg80211.c

@@ -534,6 +534,7 @@ static const struct ieee80211_txrx_stypes
 	[NL80211_IFTYPE_P2P_CLIENT] = {
 		.tx = 0xffff,
 		.rx = BIT(SIR_MAC_MGMT_ACTION) |
+		      BIT(SIR_MAC_MGMT_AUTH) |
 		      BIT(SIR_MAC_MGMT_PROBE_REQ),
 	},
 	[NL80211_IFTYPE_P2P_GO] = {

+ 3 - 1
core/mac/src/pe/lim/lim_process_message_queue.c

@@ -207,7 +207,9 @@ static void lim_process_sae_msg(struct mac_context *mac, struct sir_sae_msg *bod
 	}
 
 	if (session->opmode != QDF_STA_MODE &&
-	    session->opmode != QDF_SAP_MODE) {
+	    session->opmode != QDF_SAP_MODE &&
+	    session->opmode != QDF_P2P_GO_MODE &&
+	    session->opmode != QDF_P2P_CLIENT_MODE) {
 		pe_err("SAE:Not supported in this mode %d",
 				session->opmode);
 		return;

+ 2 - 1
core/sme/src/common/sme_api.c

@@ -14797,7 +14797,8 @@ QDF_STATUS sme_handle_sae_msg(mac_handle_t mac_handle,
 	 * is meant for roaming.
 	 */
 	opmode = wlan_get_opmode_from_vdev_id(mac->pdev, session_id);
-	if ((opmode == QDF_SAP_MODE) || !CSR_IS_ROAM_JOINED(mac, session_id)) {
+	if ((opmode == QDF_SAP_MODE) || (opmode == QDF_P2P_GO_MODE) ||
+	    !CSR_IS_ROAM_JOINED(mac, session_id)) {
 		sae_msg = qdf_mem_malloc(sizeof(*sae_msg));
 		if (!sae_msg) {
 			qdf_status = QDF_STATUS_E_NOMEM;