Unstable WiFi on WNDR3700 v1 and ath79 driver

Hi,

first of all, thank you guys for your work on OpenWRT; I have been using it on my WNDR3700v1 for many years and I'm really happy with the usability, stability and documentation of the project. Big thumbs-up!

I just want to report some unstable WiFi performance after a clean upgrade to 19.7 with the ath79 driver. This is on the 5G band (I haven't tested 2.4G).

My setup is very simple; I have a 2G and a 5G network, mostly standard configuration, both using 40MHz channels, GB regulatory domain, legacy rates disabled and KRACK countermeasures enabled. In addition, I have a guest network on the 5G band.

In general, the WiFi performance is down from what I'm used to. With the ar71xx driver I used get easily MCS 6 rates, but with the ath79 driver I got max MCS 3 and 40 MHz would be seldom used; a (non-scientific) internet speed test gives me solid 50 Mbps with the ar71xx driver, and a jittery 30 Mbps using the ath79 driver.

Occasionally (relatively rarely) the WiFi would disconnect, and I believe that coincides with a kernel oops like this one:

Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: interface state ENABLED->DISABLED                                                                       
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: AP-STA-DISCONNECTED 5c:87:9c:d9:4e:b4     
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: AP-DISABLED                                                                                             
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: CTRL-EVENT-TERMINATING                                                                                  
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: nl80211: deinit ifname=wlan1 disabled_11b_rates=0          
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.176003] device wlan1 left promiscuous mode                                                     
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.180638] br-lan: port 3(wlan1) entered disabled state    
Sat Jan 25 13:10:36 2020 daemon.notice netifd: Network device 'wlan1' link is down                          
Sat Jan 25 13:10:36 2020 daemon.err hostapd: Configuration file: /var/run/hostapd-phy1.conf                           
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.976213] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready           
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.986292] br-lan: port 3(wlan1) entered blocking state                  
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.991702] br-lan: port 3(wlan1) entered disabled state     
Sat Jan 25 13:10:36 2020 kern.info kernel: [  101.997366] device wlan1 entered promiscuous mode              
Sat Jan 25 13:10:36 2020 kern.info kernel: [  102.002173] br-lan: port 3(wlan1) entered blocking state                            
Sat Jan 25 13:10:36 2020 kern.info kernel: [  102.007541] br-lan: port 3(wlan1) entered forwarding state                                                       
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: interface state UNINITIALIZED->COUNTRY_UPDATE                                                           
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: ACS: Automatic channel selection started, this may take a bit         
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: interface state COUNTRY_UPDATE->ACS                            
Sat Jan 25 13:10:36 2020 daemon.notice hostapd: wlan1: ACS-STARTED                                                                                             
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.152822] ------------[ cut here ]------------                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.157552] WARNING: CPU: 0 PID: 1975 at backports-4.19.85-1/net/mac80211/ieee80211_i.h:1429 0x832064c4 [mac80211
@83200000+0x6c280]                                                                                                                                             
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.169469] Modules linked in: ath9k ath9k_common pppoe ppp_async ath9k_hw ath pppox ppp_generic nf_conntrack_ipv
6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCP
MSS xt_REDIRECT xt_LOG xt_FLOWOFFLOAD xt_CT slhc owl_loader nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_nat nf_log_i
pv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_mangle iptable_filter ip_tables crc_ccitt compat led
trig_usbport nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 ohci_platform ohci_hcd ehci_platform ehci
_hcd gpio_button_hotplug usbcore nls_base usb_common                                                                                                           
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.239593] CPU: 0 PID: 1975 Comm: hostapd Not tainted 4.14.162 #0
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.245790] Stack : 00000058 800b2af4 80500000 804af5d0 00000000 00000000 00000000 00000000
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.254214]         00000000 00000000 00000000 00000000 00000000 00000001 8242fa50 217d2004
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.262682]         8242fae8 00000000 00000000 00004aa0 00000038 804480b8 00000007 00000000
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.271082]         000000f9 6bbf7f9e 000000f8 00000000 8242fa30 80000000 00000000 83266490                      
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.279559]         832064c4 00000595 014000c0 00000010 00000001 8027fda4 00000000 80630000
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.287981]         ...                                                                                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.290425] Call Trace:                                                                                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.290435] [<800b2af4>] 0x800b2af4                                     
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.296389] [<80500000>] 0x80500000                                       
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.299917] [<804480b8>] 0x804480b8                               
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.303407] [<832064c4>] 0x832064c4 [mac80211@83200000+0x6c280]           
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.309346] [<8027fda4>] 0x8027fda4                            
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.312891] [<8006a56c>] 0x8006a56c                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.316391] [<8006a574>] 0x8006a574                            
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.319873] [<80084c60>] 0x80084c60                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.323411] [<832064c4>] 0x832064c4 [mac80211@83200000+0x6c280]              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.329382] [<80084d48>] 0x80084d48                                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.332864] [<801543d4>] 0x801543d4                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.336432] [<832064c4>] 0x832064c4 [mac80211@83200000+0x6c280]
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.342342] [<801543d4>] 0x801543d4                                                                
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.345865] [<83220ac0>] 0x83220ac0 [mac80211@83200000+0x6c280]                                                  
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.351820] [<801543d4>] 0x801543d4                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.355344] [<8319e70c>] 0x8319e70c [cfg80211@83180000+0x36430]                                                  
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.361281] [<80350ad8>] 0x80350ad8                                     
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.364812] [<803507ec>] 0x803507ec                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.368297] [<8034f184>] 0x8034f184                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.371786] [<8034fa50>] 0x8034fa50                       
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.375334] [<8034cffc>] 0x8034cffc                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.378842] [<8034e848>] 0x8034e848                     
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.382334] [<8034ed24>] 0x8034ed24                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.385960] [<802f816c>] 0x802f816c                                                                
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.389463] [<8034c338>] 0x8034c338                            
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.392947] [<8034e948>] 0x8034e948                           
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.396468] [<802f83cc>] 0x802f83cc                                       
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.399961] [<8034c338>] 0x8034c338                                       
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.403470] [<8011dd78>] 0x8011dd78                      
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.406956] [<80121430>] 0x80121430                       
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.410441] [<802f6c68>] 0x802f6c68                          
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.414004] [<80071808>] 0x80071808                                                                
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.417489] [<80123424>] 0x80123424                                                                
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.420972] [<802f8c54>] 0x802f8c54                                                                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.424479] [<802f6c68>] 0x802f6c68                                               
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.427997] [<8006f72c>] 0x8006f72c                                               
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.431488] [<802f89f4>] 0x802f89f4                              
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.434999]                                                                                                      
Sat Jan 25 13:10:37 2020 kern.warn kernel: [  102.436485] ---[ end trace 401496a63b1edff5 ]---                 
Sat Jan 25 13:10:37 2020 kern.info kernel: [  102.443524] br-lan: port 3(wlan1) entered disabled state                                                       
Sat Jan 25 13:10:37 2020 daemon.notice hostapd: wlan1: STA 5c:87:9c:d9:4e:b4 IEEE 802.11: Could not add STA to kernel driver                                   
Sat Jan 25 13:10:37 2020 daemon.notice hostapd: send_auth_reply: send failed                                                                                   
Sat Jan 25 13:10:37 2020 daemon.notice hostapd: wlan1: STA 5c:87:9c:d9:4e:b4 IEEE 802.11: Could not add STA to kernel driver    
Sat Jan 25 13:10:37 2020 daemon.notice hostapd: send_auth_reply: send failed                                                                                   

For completeness my WiFi setup:

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path 'pci0000:00/0000:00:11.0'
        option htmode 'HT40'
        option channel 'auto'
        option country 'GB'
        option legacy_rates '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option wpa_disable_eapol_key_retries '1'
        option key 'sikkrit'
        option encryption 'psk2'
        option ssid 'TwoGFour'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11a'
        option path 'pci0000:00/0000:00:12.0'
        option htmode 'HT40'
        option channel 'auto'
        option legacy_rates '0'
        option country 'GB'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option wpa_disable_eapol_key_retries '1'
        option key 'sikkrit'
        option encryption 'psk2'
        option ssid 'FiveG'

config wifi-iface 'wifinet2'
        option network 'guest'
        option ssid 'guest'
        option encryption 'psk2'
        option device 'radio1'
        option mode 'ap'
        option wpa_disable_eapol_key_retries '1'
        option key 'sikkrit'
        option isolate '1'

For now I have switched to the openwrt-19.07.0-ar71xx-generic-wndr3700 image, and the WiFi performance and stability is back to what it used to be.

I did a factory install with openwrt-19.07.2-ath79-generic-netgear_wndr3700-squashfs-factory.img, and my 2.4GHZ wifi is not working. It just says "disabled" even though it's enabled. Restarting it doesn't do anything. The 5GHZ is working fine.

I noticed on the device page (https://openwrt.org/toh/netgear/wndr3700), it mentions that "There are rumours that a certain batch of version 1 routers have problems with the 2,4 GHz radio suddenly dying. These came in boxes marked as -01R14 or -01R15 on the barcode label." However, I don't have the box with me to check. What can I do to figure this thing out?

Edit: It seems to me that this is an hardware issue. Tried sysupgrade -n with various firmwares, all giving the same problems. In reality it's extremely weak 2.4ghz signal (I have to be within <1m to connect to the 2.4ghz, and even then, it's a weak signal). With stock firmware, I was getting signal but actually it was very buggy connection. I think doing this firmware flashes kinda exposed the hardware issues--which exist with OEM firmware: https://community.netgear.com/t5/General-WiFi-Routers-Non/WNDR3700-major-loss-of-signal-strength-on-2-4Ghz/td-p/481241

If anyone actually found a fix, please let me know. In the meantime, I will consider this unit toast...