qcacmn: Add stats for BA per Tid

Adds stats for number of ADDBA, DELBA requests,
pn size and window size per tid.

Change-Id: Ib7e3a9b948439695afd9a952fe46ac42ac58c653
CRs-fixed: 2151863
This commit is contained in:
sumedh baikady
2017-11-29 19:19:25 -08:00
committed by snandini
parent 8b7ea68fc0
commit e3947bd8d6
2 changed files with 28 additions and 1 deletions

View File

@@ -728,6 +728,12 @@ void dp_rx_tid_stats_cb(struct dp_soc *soc, void *cb_ctxt,
queue_status->msdu_frms_cnt, queue_status->total_cnt,
queue_status->late_recv_mpdu_cnt, queue_status->win_jump_2k,
queue_status->hole_cnt);
DP_PRINT_STATS("Num of Addba Req = %d\n", rx_tid->num_of_addba_req);
DP_PRINT_STATS("Num of Addba Resp = %d\n", rx_tid->num_of_addba_resp);
DP_PRINT_STATS("Num of Delba Req = %d\n", rx_tid->num_of_delba_req);
DP_PRINT_STATS("BA window size = %d\n", rx_tid->ba_win_size);
DP_PRINT_STATS("Pn size = %d\n", rx_tid->pn_size);
}
static inline struct dp_peer *dp_peer_find_add_id(struct dp_soc *soc,
@@ -1038,7 +1044,9 @@ int dp_rx_tid_setup_wifi3(struct dp_peer *peer, int tid,
if (rx_tid->hw_qdesc_vaddr_unaligned != NULL)
return dp_rx_tid_update_wifi3(peer, tid, ba_window_size,
start_seq);
rx_tid->num_of_addba_req = 0;
rx_tid->num_of_delba_req = 0;
rx_tid->num_of_addba_resp = 0;
#ifdef notyet
hw_qdesc_size = hal_get_reo_qdesc_size(soc->hal_soc, ba_window_size);
#else
@@ -1388,6 +1396,7 @@ int dp_addba_requestprocess_wifi3(void *peer_handle,
rx_tid->dialogtoken = dialogtoken;
rx_tid->statuscode = QDF_STATUS_SUCCESS;
rx_tid->ba_status = DP_RX_BA_ACTIVE;
rx_tid->num_of_addba_req++;
return 0;
}
@@ -1409,6 +1418,7 @@ void dp_addba_responsesetup_wifi3(void *peer_handle, uint8_t tid,
struct dp_peer *peer = (struct dp_peer *)peer_handle;
struct dp_rx_tid *rx_tid = &peer->rx_tid[tid];
rx_tid->num_of_addba_resp++;
/* setup ADDBA response paramters */
*dialogtoken = rx_tid->dialogtoken;
*statuscode = rx_tid->statuscode;
@@ -1437,6 +1447,7 @@ int dp_delba_process_wifi3(void *peer_handle,
* replace with a new one without queue extenstion descript to save
* memory
*/
rx_tid->num_of_delba_req++;
dp_rx_tid_update_wifi3(peer, tid, 1, 0);
rx_tid->ba_status = DP_RX_BA_INACTIVE;
@@ -1481,6 +1492,7 @@ dp_set_pn_check_wifi3(struct cdp_vdev *vdev_handle, struct cdp_peer *peer_handle
struct dp_pdev *pdev;
struct dp_soc *soc;
int i;
uint8_t pn_size;
struct hal_reo_cmd_params params;
/* preconditions */
@@ -1508,10 +1520,12 @@ dp_set_pn_check_wifi3(struct cdp_vdev *vdev_handle, struct cdp_peer *peer_handle
case cdp_sec_type_aes_gcmp_256:
params.u.upd_queue_params.pn_check_needed = 1;
params.u.upd_queue_params.pn_size = 48;
pn_size = 48;
break;
case cdp_sec_type_wapi:
params.u.upd_queue_params.pn_check_needed = 1;
params.u.upd_queue_params.pn_size = 128;
pn_size = 128;
if (vdev->opmode == wlan_op_mode_ap) {
params.u.upd_queue_params.pn_even = 1;
params.u.upd_queue_params.update_pn_even = 1;
@@ -1522,6 +1536,7 @@ dp_set_pn_check_wifi3(struct cdp_vdev *vdev_handle, struct cdp_peer *peer_handle
break;
default:
params.u.upd_queue_params.pn_check_needed = 0;
pn_size = 0;
break;
}
@@ -1548,6 +1563,7 @@ dp_set_pn_check_wifi3(struct cdp_vdev *vdev_handle, struct cdp_peer *peer_handle
params.u.upd_queue_params.pn_95_64 = rx_pn[2];
params.u.upd_queue_params.pn_127_96 = rx_pn[3];
}
rx_tid->pn_size = pn_size;
dp_reo_send_cmd(soc, CMD_UPDATE_RX_REO_QUEUE, &params,
dp_rx_tid_update_cb, rx_tid);
} else {