OSDN Git Service

ath10k: add reorder and change PN check logic for mac80211
authorWen Gong <wgong@codeaurora.org>
Wed, 21 Aug 2019 06:23:25 +0000 (14:23 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 10 Sep 2019 13:21:01 +0000 (16:21 +0300)
commitdb8deae0327173d54ce5466abf9e05224614eabf
treeb516b395a6724467602e148a0cf4fac076ba9165
parent83ac260151e73fb688d159eb3326eec28527bbb6
ath10k: add reorder and change PN check logic for mac80211

For sdio chip, if the rssi is not good, then it have some retry,
firmware will indicate the msdu list of a ppdu with a hole, it
means it lost the hole msdu, after the msdu retry from AP, the
hole msdu will indicate from firmware later. The hole msdu's PN
check will fail and the hole msdu will be dropped.

PN check fail example:
Sequence number PN number  PN check status
     3814         6101         success
     3815         6102         success
     3816         6103         success
     3818         6105         success
     3819         6106         success
     3820         6107         success
     3817         6104         fail

The correct logic is reorder the msdu list and then do PN check.
ieee80211_rx_reorder_ampdu of mac80211 will do the reorer logic
and then do PN check in ieee80211_rx_h_decrypt of mac80211.

example after reorder:
Sequence number PN number  PN check status
     3814         6101         success
     3815         6102         success
     3816         6103         success
     3817         6104         success
     3818         6105         success
     3819         6106         success
     3820         6107         success

Tested with QCA6174 SDIO with firmware
WLAN.RMH.4.4.1-00017-QCARMSWP-1.

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/htt_rx.c