qcacld-3.0: Extract Peer TWT session parameters

WMI handler is registered for twt_session_stats event.
Upon wmi event twt session parameters are extracted and
cached in peer mc_cp_stats. UMAC APIs are provided to
retrieve TWT session parameters from north bound
interface(hdd) using twt peer's mac_addr/session dialog_id

CRs-Fixed: 2730732
Change-Id: I8ce38ac6be97e844e26e03751c6d6cca981b82b4
This commit is contained in:
Visweswara Tanuku
2020-08-03 21:21:30 +05:30
کامیت شده توسط snandini
والد 6363f77af4
کامیت 78df7f106e
4فایلهای تغییر یافته به همراه602 افزوده شده و 3 حذف شده

مشاهده پرونده

@@ -29,6 +29,14 @@
#include "wlan_cmn.h"
#include "qdf_event.h"
#ifdef WLAN_SUPPORT_TWT
#include <wmi_unified_twt_param.h>
/* Max TWT sessions per peer (supported by fw) */
#define TWT_PEER_MAX_SESSIONS 1
#endif /* WLAN_SUPPORT_TWT */
#define MAX_NUM_CHAINS 2
#define MAX_MIB_STATS 1
@@ -300,6 +308,7 @@ struct peer_extd_stats {
* @peer_macaddr: mac address
* @extd_stats: Pointer to peer extended stats
* @adv_stats: Pointer to peer adv (extd2) stats
* @twt_param: Pointer to peer twt session parameters
*/
struct peer_mc_cp_stats {
uint32_t tx_rate;
@@ -308,6 +317,9 @@ struct peer_mc_cp_stats {
uint8_t peer_macaddr[QDF_MAC_ADDR_SIZE];
struct peer_extd_stats *extd_stats;
struct peer_adv_mc_cp_stats *adv_stats;
#ifdef WLAN_SUPPORT_TWT
struct wmi_host_twt_session_stats_info twt_param[TWT_PEER_MAX_SESSIONS];
#endif
};
/**

مشاهده پرونده

@@ -31,6 +31,37 @@
#include <wlan_objmgr_vdev_obj.h>
#include <wlan_cp_stats_mc_defs.h>
#ifdef WLAN_SUPPORT_TWT
#include <wlan_objmgr_peer_obj.h>
#include "../../core/src/wlan_cp_stats_defs.h"
#include <qdf_event.h>
/* Max TWT sessions supported */
#define TWT_PSOC_MAX_SESSIONS TWT_PEER_MAX_SESSIONS
/* Valid dialog_id 0 to (0xFF - 1) */
#define TWT_MAX_DIALOG_ID (0xFF - 1)
/* dialog_id used to get all peer's twt session parameters */
#define TWT_GET_ALL_PEER_PARAMS_DIALOG_ID (0xFF)
/**
* ucfg_twt_get_peer_session_params() - Retrieves peer twt session parameters
* corresponding to a peer by using mac_addr and dialog id
* If dialog_id is TWT_GET_ALL_PEER_PARAMS_DIALOG_ID retrieves twt session
* parameters of all peers with valid twt session
* @psoc_obj: psoc object
* @params: array pointer to store peer twt session parameters, should contain
* mac_addr and dialog id of a peer for which twt session stats to be retrieved
*
* Return: QDF_STATUS_SUCCESS upon success, else qdf error values
*/
QDF_STATUS
ucfg_twt_get_peer_session_params(struct wlan_objmgr_psoc *psoc_obj,
struct wmi_host_twt_session_stats_info *param);
#endif /* WLAN_SUPPORT_TWT */
struct psoc_cp_stats;
struct vdev_cp_stats;