qcacmn: Enhance congestion report

Enhance congestion report by pdev extend stats.

Change-Id: I88e8456fa1e2cbe4f3aa8e94138dafba1166c9a9
CRs-Fixed: 2951006
This commit is contained in:
Paul Zhang
2021-06-24 17:08:59 +08:00
committed by Madan Koyyalamudi
parent 72025682f2
commit dfb517c3f8
3 changed files with 41 additions and 2 deletions

View File

@@ -895,6 +895,7 @@ typedef enum {
WMI_HOST_REQUEST_PEER_ADV_STATS = 0x4000, WMI_HOST_REQUEST_PEER_ADV_STATS = 0x4000,
WMI_HOST_REQUEST_PMF_BCN_PROTECT_STAT = 0x8000, WMI_HOST_REQUEST_PMF_BCN_PROTECT_STAT = 0x8000,
WMI_HOST_REQUEST_VDEV_PRB_FILS_STAT = 0x10000, WMI_HOST_REQUEST_VDEV_PRB_FILS_STAT = 0x10000,
WMI_HOST_REQUEST_PDEV_EXTD_STAT = 0x20000,
WMI_HOST_REQUEST_PDEV_TELEMETRY_STAT = 0x40000, WMI_HOST_REQUEST_PDEV_TELEMETRY_STAT = 0x40000,
} wmi_host_stats_id; } wmi_host_stats_id;
@@ -4216,6 +4217,14 @@ struct wmi_host_peer_adv_stats {
* @rx_mcs: RX MCS array * @rx_mcs: RX MCS array
* @tx_mcs: TX MCS array * @tx_mcs: TX MCS array
* @ack_rssi: Ack rssi * @ack_rssi: Ack rssi
* @my_rx_count: What portion of time, as measured by the MAC HW clock was
* occupied by receiving PPDUs addressed to one of the vdevs
* within this pdev.
* @rx_matched_11ax_msdu_cnt: number of Rx 11ax MSDUs with matching BSS color
* counter updated at EOP (end of packet)
* @rx_other_11ax_msdu_cnt: number of Rx 11ax MSDUs with other BSS color counter
* updated at EOP (end of packet)
* @pdev_id: pdev id
*/ */
typedef struct { typedef struct {
uint32_t rx_rssi_comb; uint32_t rx_rssi_comb;
@@ -4226,6 +4235,10 @@ typedef struct {
uint32_t rx_mcs[10]; uint32_t rx_mcs[10];
uint32_t tx_mcs[10]; uint32_t tx_mcs[10];
uint32_t ack_rssi; uint32_t ack_rssi;
uint32_t my_rx_count;
uint32_t rx_matched_11ax_msdu_cnt;
uint32_t rx_other_11ax_msdu_cnt;
uint32_t pdev_id;
} wmi_host_pdev_ext_stats; } wmi_host_pdev_ext_stats;
/** /**

View File

@@ -641,6 +641,12 @@ extract_all_stats_counts_tlv(wmi_unified_t wmi_handle, void *evt_buf,
stats_param->stats_id |= stats_param->stats_id |=
WMI_HOST_REQUEST_VDEV_PRB_FILS_STAT; WMI_HOST_REQUEST_VDEV_PRB_FILS_STAT;
break; break;
case WMI_REQUEST_PDEV_EXTD_STAT:
stats_param->stats_id |=
WMI_HOST_REQUEST_PDEV_EXTD_STAT;
break;
case WMI_REQUEST_PDEV_TELEMETRY_STAT: case WMI_REQUEST_PDEV_TELEMETRY_STAT:
stats_param->stats_id |= stats_param->stats_id |=
WMI_HOST_REQUEST_PDEV_TELEMETRY_STAT; WMI_HOST_REQUEST_PDEV_TELEMETRY_STAT;
@@ -672,7 +678,7 @@ extract_all_stats_counts_tlv(wmi_unified_t wmi_handle, void *evt_buf,
stats_param->last_event = ev->last_event; stats_param->last_event = ev->last_event;
stats_param->num_pdev_stats = ev->num_pdev_stats; stats_param->num_pdev_stats = ev->num_pdev_stats;
stats_param->num_pdev_ext_stats = 0; stats_param->num_pdev_ext_stats = param_buf->num_pdev_extd_stats;
stats_param->num_vdev_stats = ev->num_vdev_stats; stats_param->num_vdev_stats = ev->num_vdev_stats;
stats_param->num_peer_stats = ev->num_peer_stats; stats_param->num_peer_stats = ev->num_peer_stats;
stats_param->num_peer_extd_stats = ev->num_peer_extd_stats; stats_param->num_peer_extd_stats = ev->num_peer_extd_stats;
@@ -797,7 +803,7 @@ extract_pdev_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf, uint32_t index,
param_buf = (WMI_UPDATE_STATS_EVENTID_param_tlvs *) evt_buf; param_buf = (WMI_UPDATE_STATS_EVENTID_param_tlvs *) evt_buf;
ev_param = (wmi_stats_event_fixed_param *) param_buf->fixed_param; ev_param = (wmi_stats_event_fixed_param *) param_buf->fixed_param;
pdev_stats->pdev_id = pdev_stats->pdev_id =
wmi_handle->ops->convert_pdev_id_target_to_host(wmi_handle, wmi_handle->ops->convert_target_pdev_id_to_host(wmi_handle,
ev_param->pdev_id); ev_param->pdev_id);
data = param_buf->data; data = param_buf->data;

View File

@@ -12407,6 +12407,26 @@ static QDF_STATUS extract_unit_test_tlv(wmi_unified_t wmi_handle,
static QDF_STATUS extract_pdev_ext_stats_tlv(wmi_unified_t wmi_handle, static QDF_STATUS extract_pdev_ext_stats_tlv(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t index, wmi_host_pdev_ext_stats *pdev_ext_stats) void *evt_buf, uint32_t index, wmi_host_pdev_ext_stats *pdev_ext_stats)
{ {
WMI_UPDATE_STATS_EVENTID_param_tlvs *param_buf;
wmi_pdev_extd_stats *ev;
param_buf = evt_buf;
if (!param_buf)
return QDF_STATUS_E_FAILURE;
if (!param_buf->pdev_extd_stats)
return QDF_STATUS_E_FAILURE;
ev = param_buf->pdev_extd_stats + index;
pdev_ext_stats->pdev_id =
wmi_handle->ops->convert_target_pdev_id_to_host(
wmi_handle,
ev->pdev_id);
pdev_ext_stats->my_rx_count = ev->my_rx_count;
pdev_ext_stats->rx_matched_11ax_msdu_cnt = ev->rx_matched_11ax_msdu_cnt;
pdev_ext_stats->rx_other_11ax_msdu_cnt = ev->rx_other_11ax_msdu_cnt;
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }