qcacmn: Add support to initiate PASN authentication request

Register OSIF callbacks with Wifi_pos module to initiate PASN
authentication request.

Call cfg80211_pasn_auth_request() to initiate PASN authentication
from wpa_supplicant for the list of secure peers.

Change-Id: I52b9518526f1b04ad520f2f19c7a4caa9b62b6b0
CRs-Fixed: 3149968
此提交包含在:
Pragaspathi Thilagaraj
2022-06-15 18:35:54 +05:30
提交者 Madan Koyyalamudi
父節點 debe4c7ecf
當前提交 957b6d2307
共有 8 個檔案被更改,包括 353 行新增19 行删除

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2017, 2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -25,7 +26,8 @@
#include "qdf_types.h"
#include "qdf_status.h"
#include <wlan_objmgr_cmn.h>
#include "wifi_pos_public_struct.h"
/* forward declaration */
struct wifi_pos_ch_info;
@@ -283,4 +285,30 @@ enum cld80211_sub_attr_peer_info {
CLD80211_SUB_ATTR_PEER_AFTER_LAST - 1
};
#endif
#if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
/**
* os_if_wifi_pos_initiate_pasn_auth() - Initiate PASN authentication from
* userspace
* @vdev: Vdev object pointer
* @pasn_peer: PASN Peer list
* @num_pasn_peers: number of PASN peers
* @is_initiate_pasn: Initiate pasn or initiate flush keys
*
* Return: QDF_STATUS
*/
QDF_STATUS os_if_wifi_pos_initiate_pasn_auth(struct wlan_objmgr_vdev *vdev,
struct wlan_pasn_request *pasn_peer,
uint8_t num_pasn_peers,
bool is_initiate_pasn);
#else
static inline
QDF_STATUS os_if_wifi_pos_initiate_pasn_auth(struct wlan_objmgr_vdev *vdev,
struct wlan_pasn_request *pasn_peer,
uint8_t num_pasn_peers,
bool is_initiate_pasn)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif /* WLAN_FEATURE_RTT_11AZ_SUPPORT */
#endif /* _OS_IF_WIFI_POS_H_ */

查看文件

@@ -0,0 +1,72 @@
/*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: os_if_wifi_pos_utils.h
* This file provide declaration of wifi_pos's os_if APIs
*/
#ifndef _OS_IF_WIFI_POS_UTILS_H_
#define _OS_IF_WIFI_POS_UTILS_H_
#include "qdf_types.h"
#include "qdf_status.h"
#include <wlan_objmgr_cmn.h>
#if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
/**
* struct wifi_pos_osif_ops - Wifi POS osif callbacks
* @osif_initiate_pasn_cb: Callback to initiate PASN authentication
*/
struct wifi_pos_osif_ops {
QDF_STATUS (*osif_initiate_pasn_cb)(struct wlan_objmgr_vdev *vdev,
struct wlan_pasn_request *pasn_peer,
uint8_t num_pasn_peers,
bool is_initiate_pasn);
};
#endif
#if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
/**
* osif_wifi_pos_register_ops() - Register Wifi-Pos module OS_IF callbacks
* @psoc: Pointer to PSOC obj
*
* Return: QDF_STATUS
*/
QDF_STATUS
osif_wifi_pos_register_ops(struct wlan_objmgr_psoc *psoc);
/**
* osif_wifi_pos_deregister_ops - Deregister the wifi pos OS_IF callbacks
* @psoc: Pointer to PSOC obj
*
* Return: QDF_STATUS
*/
QDF_STATUS
osif_wifi_pos_deregister_ops(struct wlan_objmgr_psoc *psoc);
#else
static inline QDF_STATUS
osif_wifi_pos_register_ops(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
osif_wifi_pos_deregister_ops(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
#endif /* WIFI_POS_CONVERGED */
#endif /* _OS_IF_WIFI_POS_UTILS_H_ */