Help with WiFi Streaming (ie noack) mode

("WiFi Streaming" is just a more descriptive name for the desired wifi behaviour.
The wifi keeps streaming packets without waiting for ACKS/Block ACKs.)

I'm working with ath10k-ct, the boot announceent shows:

[   17.250943] ath10k_pci 0000:00:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043222ff sub 0000:0000
[   17.260370] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   23.753344] ath10k_pci 0000:00:00.0: firmware ver 10.1-ct-8x-__fH-022-ecad3248 api 2 features wmi-10.x,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 1b2a161c

In noack mode, rate control algorithms won't know whether a packet transmission was successful or not, so a fixed rate has to be set, normally with only 1 try.

So far, I've patched mac80211 and ath10k-ct so that
root@Openwrt:/#iw dev wlan0 set bitrates ht-mcs-5 vht-mcs-5 1:9 2:9 sgi-5
sets a single rate bit in the ath10k_vif bitrate_mask.control[ band ].vht_mcs[ 0 ]
root@Openwrt:/#iw wlan0 set noack_map 0x00ff
sets the ieee80211_tx_info flag IEEE80211_TX_CTL_NO_ACK for data packets.

Also needed a patch to ath10k function ath10k_htt_tx_32 for the fixed rate to show in the gui association list

  • detect info->flags & IEEE80211_TX_CTL_NO_ACK and
  • set the variables pream_type, nss, mcs and num_retries from ath10k_vif
  • which then set up txbuf->cmd_tx.peerid.

While running iperf across a link:

  • setting the fixed rate causes the throughput to change accordingly
  • but setting the noack_map causes
    -- the rate shown on the gui to drop from 400 to 173 Mbps
    -- packets stop being aggregated.
    so the throughput drops from about 200 Mbps to about 80 Mbps

What am i missing?