qcacmn: 2k_jump error fix for sequence number mismatch

In some cases non aggregate packets with active BA session land in
2k_jump_error owing to sequence number mismatch.

Fix those cases by sending delba and the next addba is expected to reset
the sequence number

Change-Id: Ib95edf8744761abddb80cf28bf405d6fa52181c8
This commit is contained in:
Prathyusha Guduri
2019-03-15 17:41:19 +05:30
committed by nshrivas
parent a5ad5822aa
commit 9e4bb950e4

View File

@@ -541,7 +541,14 @@ dp_2k_jump_handle(struct dp_soc *soc,
}
qdf_spin_lock_bh(&rx_tid->tid_lock);
ppdu_id = hal_rx_attn_phy_ppdu_id_get(rx_tlv_hdr);
if (rx_tid->ppdu_id_2k != ppdu_id) {
/*
* If BA session is created and a non-aggregate packet is
* landing here then the issue is with sequence number mismatch.
* Proceed with delba even in that case
*/
if (rx_tid->ppdu_id_2k != ppdu_id &&
rx_tid->ba_status != DP_RX_BA_ACTIVE) {
rx_tid->ppdu_id_2k = ppdu_id;
qdf_spin_unlock_bh(&rx_tid->tid_lock);
goto free_nbuf;