qcacmn: Add support to delete all pasn peers

Add support to delete all pasn peers

Change-Id: I2c3d95cb8994693d8944d69624d2db0992f2f03d
CRs-Fixed: 3158523
This commit is contained in:
Pragaspathi Thilagaraj
2022-06-30 12:49:24 +05:30
committad av Madan Koyyalamudi
förälder b7fa703306
incheckning f0cac26bbb
14 ändrade filer med 278 tillägg och 3 borttagningar

Visa fil

@@ -134,6 +134,48 @@ wifi_pos_send_pasn_auth_status(struct wlan_objmgr_psoc *psoc,
QDF_STATUS
wifi_pos_send_pasn_peer_deauth(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac);
/**
* wifi_pos_get_pasn_peer_count() - Wifi POS get total pasn peer count
* @vdev: Pointer to vdev object
*
* Return: Total number of pasn peers
*/
uint8_t
wifi_pos_get_pasn_peer_count(struct wlan_objmgr_vdev *vdev);
/**
* wifi_pos_update_pasn_peer_count() - Increment pasn peer count
* @vdev: Pointer to vdev object
* @is_increment: flag to indicate if peer count needs to be incremented
*
* Return: None
*/
void wifi_pos_update_pasn_peer_count(struct wlan_objmgr_vdev *vdev,
bool is_increment);
/**
* wifi_pos_vdev_delete_all_ranging_peers() - Delete all ranging peers
* associated with given vdev id
* @psoc: Psoc pointer
* @vdev_id: vdev id
*
* Return: QDF_STATUS
*/
QDF_STATUS
wifi_pos_vdev_delete_all_ranging_peers(struct wlan_objmgr_vdev *vdev);
/**
* wifi_pos_vdev_delete_all_ranging_peers_rsp() - Delete all vdev peers response
* handler
* @psoc: Psoc pointer
* @vdev_id: vdev id
*
* Return: QDF_STATUS
*/
QDF_STATUS
wifi_pos_vdev_delete_all_ranging_peers_rsp(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id);
#else
static inline
QDF_STATUS wifi_pos_handle_ranging_peer_create(struct wlan_objmgr_psoc *psoc,
@@ -179,5 +221,22 @@ wifi_pos_send_pasn_peer_deauth(struct wlan_objmgr_psoc *psoc,
{
return QDF_STATUS_SUCCESS;
}
static inline void
wifi_pos_update_pasn_peer_count(struct wlan_objmgr_vdev *vdev,
bool is_increment)
{}
static inline uint8_t
wifi_pos_get_pasn_peer_count(struct wlan_objmgr_vdev *vdev)
{
return 0;
}
static inline QDF_STATUS
wifi_pos_vdev_delete_all_ranging_peers(struct wlan_objmgr_vdev *vdev)
{
return QDF_STATUS_SUCCESS;
}
#endif /* WIFI_POS_CONVERGED && WLAN_FEATURE_RTT_11AZ_SUPPORT */
#endif /* _WIFI_POS_PASN_API_H_ */

Visa fil

@@ -104,9 +104,14 @@ struct wifi_pos_11az_context {
/**
* struct wifi_pos_vdev_priv_obj - Wifi Pos module vdev private object
* @pasn_context: 11az security peers context.
* @num_pasn_peers: Total number of PASN peers
* @is_delete_all_pasn_peer_in_progress: Delete all the VDEV PASN peers in
* progress
*/
struct wifi_pos_vdev_priv_obj {
struct wifi_pos_11az_context pasn_context;
uint8_t num_pasn_peers;
bool is_delete_all_pasn_peer_in_progress;
};
/**

Visa fil

@@ -0,0 +1,94 @@
/*
* Copyright (c) 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
* 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: wifi_pos_ucfg_i.h
* This file prototyps the important functions pertinent to wifi positioning
* component.
*/
#ifndef _WIFI_POS_UCFG_H_
#define _WIFI_POS_UCFG_H_
#include "qdf_types.h"
#include "qdf_status.h"
#include "os_if_wifi_pos_utils.h"
#include "wifi_pos_pasn_api.h"
#include "wifi_pos_api.h"
struct wlan_objmgr_psoc;
struct wifi_pos_req_msg;
/**
* ucfg_wifi_pos_process_req: ucfg API to be called from HDD/OS_IF to process a
* wifi_pos request from userspace
* @psoc: pointer to psoc object
* @req: wifi_pos request msg
* @send_rsp_cb: callback pointer required to send msg to userspace
*
* Return: status of operation
*/
QDF_STATUS ucfg_wifi_pos_process_req(struct wlan_objmgr_psoc *psoc,
struct wifi_pos_req_msg *req,
wifi_pos_send_rsp_handler send_rsp_cb);
#ifdef WIFI_POS_CONVERGED
/**
* ucfg_wifi_pos_register_osif_callbacks() - Register WIFI pos module OSIF
* callbacks
* @psoc: Pointer to PSOC object
* @osif_ops: Pointer to OSIF callbacks
*
* Return: QDF_STATUS
*/
static inline QDF_STATUS
ucfg_wifi_pos_register_osif_callbacks(struct wlan_objmgr_psoc *psoc,
struct wifi_pos_osif_ops *osif_ops)
{
return wifi_pos_register_osif_callbacks(psoc, osif_ops);
}
/**
* ucfg_wifi_pos_deregister_osif_callbacks() - De-Register WIFI pos module OSIF
* callbacks
* @psoc: Pointer to PSOC object
*
* Return: QDF_STATUS
*/
static inline QDF_STATUS
ucfg_wifi_pos_deregister_osif_callbacks(struct wlan_objmgr_psoc *psoc)
{
return wifi_pos_register_osif_callbacks(psoc, NULL);
}
#else
static inline QDF_STATUS
ucfg_wifi_pos_deregister_osif_callbacks(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
#endif /* WIFI_POS_CONVERGED */
#if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
static inline bool
ucfg_wifi_pos_is_ltf_keyseed_required_for_peer(struct wlan_objmgr_peer *peer)
{
return wifi_pos_is_ltf_keyseed_required_for_peer(peer);
}
#endif
#endif /* _WIFI_POS_UCFG_H_ */

Visa fil

@@ -220,6 +220,7 @@ typedef void (*wifi_pos_send_rsp_handler)(struct wlan_objmgr_psoc *, uint32_t,
* struct wifi_pos_legacy_ops - wifi pos module legacy callbacks
* @pasn_peer_create_cb: PASN peer create callback
* @pasn_peer_delete_cb: PASN peer delete callback
* @pasn_vdev_delete_resume_cb: PASN resume vdev delete callback
*/
struct wifi_pos_legacy_ops {
QDF_STATUS (*pasn_peer_create_cb)(struct wlan_objmgr_psoc *psoc,
@@ -229,6 +230,7 @@ struct wifi_pos_legacy_ops {
struct qdf_mac_addr *peer_addr,
uint8_t vdev_id,
bool no_fw_peer_delete);
QDF_STATUS (*pasn_vdev_delete_resume_cb)(struct wlan_objmgr_vdev *vdev);
};
/**