qcacmn: Block Ack state machine enhancement in DP
Move the state to in_progress when we process addba request and upon tx comletion of addba response, move the state to active. Any addba request received during in_progress is ignored and reo queue is updated with window size 1 and set to inactive. Change-Id: I69cfbc162d873f9e6842ca3e7971146dafba2695 Crs-fixed: 2188927
This commit is contained in:
@@ -951,6 +951,35 @@ cdp_soc_detach(ol_txrx_soc_handle soc)
|
||||
soc->ops->cmn_drv_ops->txrx_soc_detach((void *)soc);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_addba_resp_tx_completion() - Indicate addba response tx
|
||||
* completion to dp to change tid state.
|
||||
* @soc: soc handle
|
||||
* @peer_handle: peer handle
|
||||
* @tid: tid
|
||||
* @status: Tx completion status
|
||||
*
|
||||
* Return: success/failure of tid update
|
||||
*/
|
||||
static inline int cdp_addba_resp_tx_completion(ol_txrx_soc_handle soc,
|
||||
void *peer_handle,
|
||||
uint8_t tid, int status)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: Invalid Instance:", __func__);
|
||||
QDF_BUG(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!soc->ops->cmn_drv_ops ||
|
||||
!soc->ops->cmn_drv_ops->addba_resp_tx_completion)
|
||||
return 0;
|
||||
|
||||
return soc->ops->cmn_drv_ops->addba_resp_tx_completion(peer_handle, tid,
|
||||
status);
|
||||
}
|
||||
|
||||
static inline int cdp_addba_requestprocess(ol_txrx_soc_handle soc,
|
||||
void *peer_handle, uint8_t dialogtoken, uint16_t tid,
|
||||
uint16_t batimeout, uint16_t buffersize, uint16_t startseqnum)
|
||||
|
Reference in New Issue
Block a user