1
0

qcacmn: Add API to update DP rx tid BA window size

Currently, in case where AP advertizes BA window size
which is different than our max supported BA window size,
the HW gets configured for BA window size advertized by
the AP, whereas the ADDBA response indicates the window
size of the STA, which is less than the AP.
This mismatch leads to the BA bitmap to be incorrect.

Fix this by exposing an API from datapath for the update
of the final BA window size which is populated in the
ADDBA response.

Change-Id: I81a039f47a775990b426e9aca1daaaa9bdb6e88f
CRs-Fixed: 3187941
Este cometimento está contido em:
Rakesh Pillai
2022-05-02 23:07:17 -07:00
cometido por Madan Koyyalamudi
ascendente 40dacfa471
cometimento f74f73dc68
5 ficheiros modificados com 79 adições e 0 eliminações

Ver ficheiro

@@ -1307,6 +1307,36 @@ cdp_tso_soc_detach(ol_txrx_soc_handle soc)
return soc->ops->cmn_drv_ops->txrx_tso_soc_detach(soc);
}
/**
* cdp_tid_update_ba_win_size() - Update the DP tid BA window size
* @soc: soc handle
* @peer_mac: mac address of peer handle
* @vdev_id: id of vdev handle
* @tid: tid
* @buffersize: BA window size
*
* Return: success/failure of tid update
*/
static inline QDF_STATUS
cdp_tid_update_ba_win_size(ol_txrx_soc_handle soc,
uint8_t *peer_mac, uint16_t vdev_id, uint8_t tid,
uint16_t buffersize)
{
if (!soc || !soc->ops) {
dp_cdp_debug("Invalid Instance:");
QDF_BUG(0);
return 0;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->tid_update_ba_win_size)
return 0;
return soc->ops->cmn_drv_ops->tid_update_ba_win_size(soc, peer_mac,
vdev_id, tid,
buffersize);
}
/**
* cdp_addba_resp_tx_completion() - Indicate addba response tx
* completion to dp to change tid state.