qcacmn: Define cdp api interface for dp_mon_stats
Add new CDP API interface to get monitor pdev rx stats. Change-Id: Ifbe25c4b804135541e0fb938cc99bc2713dfb344 CRs-Fixed: 3084586
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -757,6 +757,15 @@ cdp_get_scan_spcl_vap_stats(ol_txrx_soc_handle soc,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_get_peer_delay_stats() - Call to get per peer delay stats
|
||||||
|
* @soc: soc handle
|
||||||
|
* @vdev_id: id of dp_vdev handle
|
||||||
|
* @peer_mac: peer mac address
|
||||||
|
* @delay_stats: user allocated buffer for peer delay stats
|
||||||
|
*
|
||||||
|
* return: status Success/Failure
|
||||||
|
*/
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
cdp_get_peer_delay_stats(ol_txrx_soc_handle soc,
|
cdp_get_peer_delay_stats(ol_txrx_soc_handle soc,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
@@ -779,6 +788,16 @@ cdp_get_peer_delay_stats(ol_txrx_soc_handle soc,
|
|||||||
delay_stats);
|
delay_stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_get_peer_jitter_stats() - Call to get per peer jitter stats
|
||||||
|
* @soc: soc handle
|
||||||
|
* @pdev_id: id of dp_pdev handle
|
||||||
|
* @vdev_id: id of dp_vdev handle
|
||||||
|
* @peer_mac: peer mac address
|
||||||
|
* @tid_stats: user allocated buffer for tid_stats
|
||||||
|
*
|
||||||
|
* return: status Success/Failure
|
||||||
|
*/
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
cdp_get_peer_jitter_stats(ol_txrx_soc_handle soc,
|
cdp_get_peer_jitter_stats(ol_txrx_soc_handle soc,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
@@ -802,4 +821,29 @@ cdp_get_peer_jitter_stats(ol_txrx_soc_handle soc,
|
|||||||
peer_mac,
|
peer_mac,
|
||||||
tid_stats);
|
tid_stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_mon_pdev_get_rx_stats() - Call to get monitor pdev rx stats
|
||||||
|
* @soc: soc handle
|
||||||
|
* @pdev_id: id of dp_pdev handle
|
||||||
|
* @stats: user allocated buffer for dp pdev mon stats
|
||||||
|
*
|
||||||
|
* return: status Success/Failure
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
cdp_mon_pdev_get_rx_stats(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_mon_stats *stats)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
dp_cdp_debug("Invalid Instance");
|
||||||
|
QDF_BUG(0);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->mon_ops ||
|
||||||
|
!soc->ops->mon_ops->get_mon_pdev_rx_stats)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->mon_ops->get_mon_pdev_rx_stats(soc, pdev_id, stats);
|
||||||
|
}
|
||||||
#endif /* _CDP_TXRX_HOST_STATS_H_ */
|
#endif /* _CDP_TXRX_HOST_STATS_H_ */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -895,6 +895,11 @@ struct cdp_mon_ops {
|
|||||||
(*config_full_mon_mode)(struct cdp_soc_t *soc, uint8_t val);
|
(*config_full_mon_mode)(struct cdp_soc_t *soc, uint8_t val);
|
||||||
QDF_STATUS (*soc_config_full_mon_mode)(struct cdp_pdev *cdp_pdev,
|
QDF_STATUS (*soc_config_full_mon_mode)(struct cdp_pdev *cdp_pdev,
|
||||||
uint8_t val);
|
uint8_t val);
|
||||||
|
|
||||||
|
/* Get monitor mode pdev stats */
|
||||||
|
QDF_STATUS
|
||||||
|
(*get_mon_pdev_rx_stats)(struct cdp_soc_t *soc, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_mon_stats *stats);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cdp_host_stats_ops {
|
struct cdp_host_stats_ops {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021,2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -1039,6 +1039,7 @@ struct cdp_mon_ops dp_ops_mon_1_0 = {
|
|||||||
.txrx_deliver_tx_mgmt = dp_deliver_tx_mgmt,
|
.txrx_deliver_tx_mgmt = dp_deliver_tx_mgmt,
|
||||||
.config_full_mon_mode = dp_config_full_mon_mode,
|
.config_full_mon_mode = dp_config_full_mon_mode,
|
||||||
.soc_config_full_mon_mode = dp_soc_config_full_mon_mode,
|
.soc_config_full_mon_mode = dp_soc_config_full_mon_mode,
|
||||||
|
.get_mon_pdev_rx_stats = dp_pdev_get_rx_mon_stats,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021,2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -1042,6 +1042,7 @@ struct cdp_mon_ops dp_ops_mon_2_0 = {
|
|||||||
.txrx_deliver_tx_mgmt = dp_deliver_tx_mgmt,
|
.txrx_deliver_tx_mgmt = dp_deliver_tx_mgmt,
|
||||||
.config_full_mon_mode = NULL,
|
.config_full_mon_mode = NULL,
|
||||||
.soc_config_full_mon_mode = NULL,
|
.soc_config_full_mon_mode = NULL,
|
||||||
|
.get_mon_pdev_rx_stats = dp_pdev_get_rx_mon_stats,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021,2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -660,6 +660,26 @@ void dp_htt_ppdu_stats_detach(struct dp_pdev *pdev)
|
|||||||
qdf_mem_free(mon_pdev->ppdu_tlv_buf);
|
qdf_mem_free(mon_pdev->ppdu_tlv_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS dp_pdev_get_rx_mon_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_mon_stats *stats)
|
||||||
|
{
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||||
|
struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
||||||
|
struct dp_mon_pdev *mon_pdev;
|
||||||
|
|
||||||
|
if (!pdev)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
mon_pdev = pdev->monitor_pdev;
|
||||||
|
if (!mon_pdev)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
qdf_mem_copy(stats, &mon_pdev->rx_mon_stats,
|
||||||
|
sizeof(struct cdp_pdev_mon_stats));
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
dp_print_pdev_rx_mon_stats(struct dp_pdev *pdev)
|
dp_print_pdev_rx_mon_stats(struct dp_pdev *pdev)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021,2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -3422,4 +3422,14 @@ void dp_mon_register_feature_ops(struct dp_soc *soc)
|
|||||||
mon_ops->mon_register_feature_ops(soc);
|
mon_ops->mon_register_feature_ops(soc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_pdev_get_rx_mon_stats(): Get pdev Rx monitor stats
|
||||||
|
* @soc_hdl: soc handle
|
||||||
|
* @pdev_id: id of pdev handle
|
||||||
|
* @stats: User allocated stats buffer
|
||||||
|
*
|
||||||
|
* return: status success/failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS dp_pdev_get_rx_mon_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_mon_stats *stats);
|
||||||
#endif /* _DP_MON_H_ */
|
#endif /* _DP_MON_H_ */
|
||||||
|
Reference in New Issue
Block a user