Ath10k connection problems on R7800

Been struggling with some wifi connectivity issues on my Netgear R7800. Initially I was using the 19.07.3 image for this router. I was seeing disconnects and flaky internet with the 5Ghz radio. (I did not really investigate the 2.5G). It was not apparent on some connections because the internet would reconnect but in these cases, all LAN connection would cease. I have a NAS and any Wifi connected devices would loose connection to this and any mDNS advertisements would fail to get to the wifi connected device. Some devices would not reconnect even to the internet. Rebooting the device did not help. The only way to restore connections was to reboot the router. I believe the module in use for the 19.07.3 image was the ath10k_pci_ct.
In the interest of 'trying something (tm)', I loaded the generic 'snapshot'. It is 'better'. If a device looses connection, I can reconnect manually (it should auto reconnect, but does not) and all connections to the internet and the LAN reconnect and work, but it still disconnects periodically and does not reconnect.

The system log had already rolled over but these are the lines in the kernel log on the router:

[  131.034108] ath10k_pci 0000:01:00.0: mac flush null vif, drop 0 queues 0xffff
[  131.106220] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  131.106395] br-lan: port 3(wlan0) entered blocking state
[  131.111665] br-lan: port 3(wlan0) entered forwarding state
[  200.700863] ath10k_pci 0000:01:00.0: htt tx: fixing invalid VHT TX rate code 0xff
[  317.901245] ath10k_pci 0000:01:00.0: Invalid VHT mcs 15 peer stats
[ 7229.602252] ath10k_pci 0001:01:00.0: wmi: fixing invalid VHT TX rate code 0xff

I think the 'Invalid VHT' was when it disconnected. On the Rpi, this is what is showed when it disconnected:

Jun 27 19:21:17 rune64 connmand[290]: wlan0 {RX} 1842394 packets 2509475014 bytes
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {TX} 1689257 packets 198932483 bytes
Jun 27 19:21:17 rune64 iwd[289]: Received Deauthentication event, reason: 3, from_ap: false
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {update} flags 4099 <UP>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {newlink} index 3 address B8:27:xx:xx:xx:xx mtu 1500
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {newlink} index 3 operstate 2 <DOWN>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} address 192.168.2.41/24 label wlan0
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} route 192.168.2.0 gw 0.0.0.0 scope 253 <LINK>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} route 2601:241:4200:255:: gw :: scope 0 <UNIVERSE>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} route fdcb:9d61:70f3:: gw :: scope 0 <UNIVERSE>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} route fe80:: gw :: scope 0 <UNIVERSE>
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} address fdcb:9d61:70f3:0:ba27:xxff:fxxxx:xxxx/64 label (null)
Jun 27 19:21:17 rune64 connmand[290]: wlan0 {del} address 2601:241:4200:255:ba27:xxff:xxxx:xxxx/64 label (null)
Jun 27 19:21:17 rune64 connmand[290]: Service state machine inconsistency detected.

With this snapshot firmware on the R7800 router, I was able to reconnect with full connectivity when I experienced a disconnect, so it was 'better', but still not 'rock solid'.

I have moved one Rpi to connect to a dumb AP and this one does not disconnect even after extended time connected. The Dumb AP is a Netgear 3700V4. It is running OpenWRT 19.07.2 but is different hardware and a different radio chip, I think.

Keith

You could try the non-ct drivers

I am currently using the non-ct drivers and still having issues, just not as many. Like i said, it is better in that when it disconnects, I can force a reconnection and I get fully routed functionality (LAN/WAN) but it still should auto reconnect if it looses connection and it does not.

On the RPI that I have connecting to my dumbAP, It does not loose connection.On the RPI I have connected to this one, it does.

By the way, how do I change which module is loaded at boot time? If I want to see the difference between them? Ath10_pci versus Ath10k-pci-ct?

You can use ath10k-pci-ct with the non-ct drivers. A simple swap of the 'firmware-5.bin" file in /lib/firmware will do the trick.

I have had not so great luck with various firmware versions so I don't know which one would be considered 'best'. It seems not all R7800s are created alike or there are some out there with slight modifications than others.