WCN36xx - reason 34=DISASSOC_LOW_ACK when running with custom WiFi chip

Hello,

We are using the Linar0 18_01 release and wifi chip is WCN3660B (dual band supported)

We have seen some connection issues with few routers, our device disconnects and reconnects to the network (both 2.4GHz and 5GHz) multiple times with reason: 34=DISASSOC_LOW_ACK.

Error Logs :
[ 170.457479] wlan0: deauthenticated from 04:d9:f5:13:0a:28 (Reason: 34=DISASSOC_LOW_ACK)
[ 170.555008] wcn36xx: ERROR hal_remove_bsskey response failed err=16
[ 172.285937] wlan0: authenticate with 04:d9:f5:13:0a:28
[ 172.322197] wlan0: send auth to 04:d9:f5:13:0a:28 (try 1/3)
[ 172.324026] wlan0: authenticated
[ 172.330142] wlan0: associate with 04:d9:f5:13:0a:28 (try 1/3)
[ 172.412809] wlan0: RX AssocResp from 04:d9:f5:13:0a:28 (capab=0x411 status=0 aid=1)
[ 172.445391] wlan0: associated
> [ 176.498756] wlan0: deauthenticated from 04:d9:f5:13:0a:28 (Reason: 34=DISASSOC_LOW_ACK)
[ 176.598988] wcn36xx: ERROR hal_remove_bsskey response failed err=16
[ 178.318169] wlan0: authenticate with 04:d9:f5:13:0a:28
[ 178.354368] wlan0: send auth to 04:d9:f5:13:0a:28 (try 1/3)

More in depth, collected QXDM log, Delba is triggered from the DUT

[4511/0003] MSG 00:05:02.501 WLAN Reserved 5/Error [ hal.c 551] [E :HAL:21158] Rcvd UMAC msg WLAN_HAL_DEL_BA_REQ (40),len 12
[4511/0002] MSG 00:05:02.501 WLAN Reserved 5/High [ halDebug.c 559] [W :HAL:21159] baReleaseBuffer: 157: Restored Buffer Size - 64. Available Buffer Size - [2560]

[4511/0002] MSG 00:05:02.501 WLAN Reserved 5/High [ halDebug.c 559] [W :HAL:21160] baReleaseSessionID: 407: Reclaimed BA Session 1. Total - [0]

[4511/0002] MSG 00:05:02.500 WLAN Reserved 5/High [ halDebug.c 559] [W :HAL:21156] baDelBASession: 880: UseBATx 1, TxCompBA 1, TxBApolicy 1, txBufSize 64, tuTxBAWaitTimeout 0, UseBARx 0, RxCompBA 0, RxBApolicy 1, rxBufSize 64, tuRxBAWaitTimeout 0

Are you guys facing any similar issue with WCN36xx upstream driver? because we are not seen such issue with prima driver. (Compare the behavior with Android build).

Thanks,
Darshak

We have also tested same with DB410 and release 20_02 as well, seen the same behavior as mentioned above. So, Its not specific to WCN36xx chipset.

More investigation and observation based on the sniffer:

  • Station was disconnected by AP due to pure connection issue.

  • Reason code: Disassociated because excessive number of frames need to be acknowledged, but are not acknowledged due to AP transmissions and/or poor channel conditions (0x0022)

  • The problem is with QOS - voice - TID=6.

  • The AP send Block Ack request with TID=6 to get from station last received packet sequence number.

  • STA always respond with normal ACK, but this should be Block-ACK response.

  • This can be seen a lot of times and finally AP disconnects the STA because it can’t transmit on TID=6.

  • In the beginning of assoc AP open the traffic stream with TID=0 and TID=6 to the STA and STA respond with successful code.

  • BA frame was for TID=0 - background QOS, BA request was for TID=6 - VOICE.

  • STA respond on BA request with normal ACK - this must not happen

  • STA doesn’t send DELBA frame on RX aggregated packets - this must be done according 80211 standard to sync agreement - but instead just ACK them

Hello,

We have enable the debug log in the mac80211 driver

root@linaro-alip:~# nmcli dev wifi con “ASUS_B8_2G” password “12345678”
[ 72.045558] wlan0: authenticate with 04:d9:f5:c2:de:b8
[ 72.045602] wlan0: Allocated STA 04:d9:f5:c2:de:b8
[ 72.092798] wlan0: Inserted STA 04:d9:f5:c2:de:b8
[ 72.092835] wlan0: send auth to 04:d9:f5:c2:de:b8 (try 1/3)
[ 72.098863] wlan0: authenticated
[ 72.101928] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 2
[ 72.107119] wlan0: associate with 04:d9:f5:c2:de:b8 (try 1/3)
[ 72.115244] wlan0: RX AssocResp from 04:d9:f5:c2:de:b8 (capab=0x411 status=0 aid=1)
[ 72.116455] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 3
[ 72.157391] wlan0: associated
[ 72.206193] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 4

[ 75.570097] wlan0: AddBA Req buf_size=64 for 04:d9:f5:c2:de:b8
[ 75.572254] wlan0: Rx A-MPDU request on 04:d9:f5:c2:de:b8 tid 6 result 0
Device ‘wlan0’ successfully activated with ‘ccea6d2e-032c-42de-bc15-441cc5db617f’.
root@linaro-alip:~#
root@linaro-alip:~# [ 75.884983] wlan0: AddBA Req buf_size=64 for 04:d9:f5:c2:de:b8
[ 75.887515] wlan0: Rx A-MPDU request on 04:d9:f5:c2:de:b8 tid 0 result 0
[ 76.410569] wlan0: Open BA session requested for 04:d9:f5:c2:de:b8 tid 0
[ 76.431597] wlan0: activated addBA response timer on 04:d9:f5:c2:de:b8 tid 0
[ 76.433202] wlan0: switched off addBA timer for 04:d9:f5:c2:de:b8 tid 0
[ 76.437943] wlan0: Aggregation is on for 04:d9:f5:c2:de:b8 tid 0
[ 76.686390] wlan0: deauthenticated from 04:d9:f5:c2:de:b8 (Reason: 34=DISASSOC_LOW_ACK)
[ 76.703139] wlan0: Tx BA session stop requested for 04:d9:f5:c2:de:b8 tid 0
[ 76.723595] wlan0: Rx BA session stop requested for 04:d9:f5:c2:de:b8 tid 0 recipient reason: 36
[ 76.724596] wlan0: Rx BA session stop requested for 04:d9:f5:c2:de:b8 tid 6 recipient reason: 36
[ 76.732522] wlan0: Stopping Tx BA session for 04:d9:f5:c2:de:b8 tid 0
[ 76.784140] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 3
[ 76.784173] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 2
[ 76.790476] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 1
[ 76.794118] wlan0: Removed STA 04:d9:f5:c2:de:b8
[ 76.799860] wlan0: Destroyed STA 04:d9:f5:c2:de:b8
[ 76.847860] wcn36xx: ERROR hal_remove_bsskey response failed err=16
[ 78.869808] wlan0: authenticate with 04:d9:f5:c2:de:b8
[ 78.869837] wlan0: Allocated STA 04:d9:f5:c2:de:b8
[ 78.912461] wlan0: Inserted STA 04:d9:f5:c2:de:b8
[ 78.912524] wlan0: send auth to 04:d9:f5:c2:de:b8 (try 1/3)
[ 78.918661] wlan0: authenticated
[ 78.921662] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 2
[ 78.931193] wlan0: associate with 04:d9:f5:c2:de:b8 (try 1/3)
[ 78.937911] wlan0: RX AssocResp from 04:d9:f5:c2:de:b8 (capab=0x411 status=0 aid=1)
[ 78.937942] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 3
[ 78.978414] wlan0: associated
[ 79.007301] wlan0: dropped frame to 04:d9:f5:c2:de:b8 (unauthorized port)
[ 79.019373] random: crng init done
[ 79.025989] wlan0: moving STA 04:d9:f5:c2:de:b8 to state 4
[ 79.221966] wlan0: AddBA Req buf_size=64 for 04:d9:f5:c2:de:b8
[ 79.225349] wlan0: Rx A-MPDU request on 04:d9:f5:c2:de:b8 tid 6 result 0
root@linaro-alip:~# [ 83.219059] wlan0: Open BA session requested for 04:d9:f5:c2:de:b8 tid 0
[ 83.231598] wlan0: activated addBA response timer on 04:d9:f5:c2:de:b8 tid 0
[ 83.235545] wlan0: switched off addBA timer for 04:d9:f5:c2:de:b8 tid 0
[ 83.237739] wlan0: Aggregation is on for 04:d9:f5:c2:de:b8 tid 0

Well, I reproduce this issue in case I start multiple AMPDU sessions with different QOS ids (TID). On my side the following patch fixes the issue: https://fileserver.linaro.org/s/LtR8cHDrRzcNSRG
Le me know if it fixes your issue.

1 Like

Hello @Loic

With your patch, issue not reproduced at our side, we have tested it overnight.
Thanks for your support here.