qcacld-3.0: Let IOT APs recover by avoiding back to back DELBA
Station sends the BA and upgrades to the next possible BA window size upon receiving all frames successfully from the current window. Some IOT APs go out of sync from BA window size of the station when AP fails to receive the BA sent from station. AP transmits the frames again with previous window sequence number and won't be ack'ed by station hardware as BA window has already moved ahead. So, station deletes the upgraded BA and tries to fallback. Ideally, AP is supposed to consider the fact that "the previous window transmission was successful when station upgrades to next window size". But some APs take little longer time to recover/upgrade to next window size. Don't delete the BA immediately and have some tolerance(3 seconds) as the previous negotiated BA just got deleted. Change-Id: I6b277223f02dac521316cec20bd5d958785cc2e9 CRs-Fixed: 2970714
This commit is contained in:

committed by
Madan Koyyalamudi

parent
14d84bf050
commit
c65ead975b
@@ -3240,4 +3240,43 @@ wlan_mlme_is_data_stall_recovery_fw_supported(struct wlan_objmgr_psoc *psoc);
|
||||
*/
|
||||
QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
|
||||
tDot11fIEeht_cap *eht_cap);
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_ba_2k_jump_iot_ap() - Set a flag if ba 2k jump IOT AP is found
|
||||
* @vdev: vdev pointer
|
||||
* @found: Carries the value true if ba 2k jump IOT AP is found
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_ba_2k_jump_iot_ap(struct wlan_objmgr_vdev *vdev, bool found);
|
||||
|
||||
/**
|
||||
* wlan_mlme_is_ba_2k_jump_iot_ap() - Check if ba 2k jump IOT AP is found
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: true if ba 2k jump IOT AP is found
|
||||
*/
|
||||
bool
|
||||
wlan_mlme_is_ba_2k_jump_iot_ap(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_last_delba_sent_time() - Cache the last delba sent ts
|
||||
* @vdev: vdev pointer
|
||||
* @delba_sent_time: Last delba sent timestamp
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_set_last_delba_sent_time(struct wlan_objmgr_vdev *vdev,
|
||||
qdf_time_t delba_sent_time);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_last_delba_sent_time() - Get the last delba sent ts
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: Last delba timestamp if cached, 0 otherwise
|
||||
*/
|
||||
qdf_time_t
|
||||
wlan_mlme_get_last_delba_sent_time(struct wlan_objmgr_vdev *vdev);
|
||||
#endif /* _WLAN_MLME_API_H_ */
|
||||
|
Reference in New Issue
Block a user