Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

@palibrzuch - uploaded a G10 image. See what you think.

@castiel652 Thanks for the encap offloading. I’ve included your commits in today’s build to see what the wifi performance looks like.

Otherwise:

  1. Added NSS wifi offloading back in with an updated patch.
  2. deleted NSS crypto (no real performance improvement)
2 Likes

@ACwifidude
Unfortunately, the image does not install. I tried to change the dts file myself but also to no avail. Logs from seriall from your image.

From openwrt sysupgrade -n

Watchdog handover: fd=3
- watchdog -
killall: telnetd: no process killed
killall: ash: no process killed
Sun Feb 28 07:50:08 UTC 2021 upgrade: Sending TERM to remaining processes ... hostapd wpa_supplicant[28143.375561] wlan1: deauthenticating from fc:6f:b7:88:a1:c8 by local choice (Reason: 3=DEAUTH_LEAVING)
[28143.375683] ath10k_pci 0001:01:00.0: mac flush vdev 1 drop 1 queues 0x2 ar->paused: 0x0  arvif->paused: 0x0
[28143.384588] ath10k_pci 0001:01:00.0: mac flush vdev 1 drop 0 queues 0x2 ar->paused: 0x0  arvif->paused: 0x0
[28143.399734] ath10k_pci 0001:01:00.0: peer-unmap-event: unknown peer id 2
[28143.405106] ath10k_pci 0001:01:00.0: peer-unmap-event: unknown peer id 2
 netifd odhcpd apcupsd crond uhttpd zerotier-one[28143.423492] device wlan1-1 left promiscuous mode
[28143.423582] br-lan: port 2(wlan1-1) entered disabled state
 ntpd dnsmasq ubusd askfirst urngd[28143.464097] ath10k_pci 0001:01:00.0: mac flush null vif, drop 0 queues 0xffff
[28143.466377] ath10k_pci 0001:01:00.0: peer-unmap-event: unknown peer id 0
[28143.470254] ath10k_pci 0001:01:00.0: peer-unmap-event: unknown peer id 0
 logd rpcd
[28143.522901] device wlan0 left promiscuous mode
[28143.522973] br-lan: port 3(wlan0) entered disabled state
[28143.554288] ath10k_pci 0000:01:00.0: mac flush null vif, drop 0 queues 0xffff
[28143.556621] ath10k_pci 0000:01:00.0: peer-unmap-event: unknown peer id 0
[28143.560522] ath10k_pci 0000:01:00.0: peer-unmap-event: unknown peer id 0
Sun Feb 28 07:50:11 UTC 2021 upgrade: Sending KILL to remaining processes ... zerotier-one
[28147.740245] sh (4744): drop_caches: 3
Sun Feb 28 07:50:13 UTC 2021 upgrade: Switching to ramdisk...
[28149.908245] UBIFS (ubi0:2): background thread "ubifs_bgt0_2" stops
[28149.921983] UBIFS (ubi0:2): un-mount UBI device 0
Sun Feb 28 07:50:15 UTC 2021 upgrade: Performing system upgrade...
384+0 records in
384+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
Unlocking /dev/mtd12 ...

Writing from /tmp/mtd12 to /dev/mtd12 ...
removing ubiblock0_1
[28150.694247] block ubiblock0_1: released
Volume ID 0, size 33 LEBs (4190208 bytes, 3.9 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "kernel", alignment 1
Volume ID 1, size 64 LEBs (8126464 bytes, 7.7 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs", alignment 1
Set volume size to 33394688
Volume ID 2, size 263 LEBs (33394688 bytes, 31.8 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs_data", alignment 1
sysupgrade successful
umount: can't unmount /dev: Resource busy
umount: can't unmount /tmp: Resource busy
[28155.719538] reboot: Restarting system


U-Boot 2012.07 [Standard IPQ806X.LN,r40331] (Jun 22 2015 - 19:44:46)

smem ram ptable found: ver: 0 len: 5
DRAM:  491 MiB
NAND:  SF: Unsupported manufacturer 00
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
128 MiB
MMC:
NAND read from offset 1180000 failed -74
*** Warning - readenv() failed, using default environment

PCI0 Link Intialized
PCI1 Link Intialized
In:    serial
Out:   serial
Err:   serial
cdp: get part failed for 0:HLOS
Net:   MAC1 addr:0:3:7f:ba:db:1
athrs17_reg_init: complete
athrs17_vlan_config ...done
S17c init  done
MAC2 addr:0:3:7f:ba:db:2
eth0, eth1
Hit any key to stop autoboot:  0
MMC Device 0 not found
MMC Device 0 not found
Creating 1 MTD partitions on "nand0":
0x0000048a0000-0x0000078a0000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            48 MiB
UBI: number of good PEBs:        384
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             17
UBI: total number of reserved PEBs: 367
UBI: number of PEBs reserved for bad PEB handling: 3
UBI: max/mean erase counter: 62/31
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (4190208)
## Booting kernel from FIT Image at 44000000 ...
   Using 'config@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  ARM OpenWrt Linux-5.4.99
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x440000e4
     Data Size:    4031602 Bytes = 3.8 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x42208000
     Entry Point:  0x42208000
     Hash algo:    crc32
     Hash value:   e5108131
     Hash algo:    sha1
     Hash value:   4157b762e5d9e86c2744b78b3eb9ac5c8beb6550
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Flattened Device Tree from FIT Image at 44000000
   Using 'config@1' configuration
   Trying 'fdt@1' FDT blob subimage
     Description:  ARM OpenWrt asrock_g10 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x443d868c
     Data Size:    31929 Bytes = 31.2 KiB
     Architecture: ARM
     Hash algo:    crc32
     Hash value:   6aa54ae3
     Hash algo:    sha1
     Hash value:   1a235325a9b240668b97ccec64bba14e8a0e726e
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x443d868c
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 5eaf5000, end 5eaffcb8 ... OK
Using machid 0x1260 from environment

Starting kernel ...



U-Boot 2012.07 [Standard IPQ806X.LN,r40331] (Jun 22 2015 - 19:44:46)

smem ram ptable found: ver: 0 len: 5
DRAM:  491 MiB
NAND:  SF: Unsupported manufacturer 00
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
128 MiB
MMC:
NAND read from offset 1180000 failed -74
*** Warning - readenv() failed, using default environment

PCI0 Link Intialized
PCI1 Link Intialized
In:    serial
Out:   serial
Err:   serial
cdp: get part failed for 0:HLOS
Net:   MAC1 addr:0:3:7f:ba:db:1
athrs17_reg_init: complete
athrs17_vlan_config ...done
S17c init  done
MAC2 addr:0:3:7f:ba:db:2
eth0, eth1
Hit any key to stop autoboot:  0
MMC Device 0 not found
MMC Device 0 not found
Creating 1 MTD partitions on "nand0":
0x000001340000-0x000004340000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            48 MiB
UBI: number of good PEBs:        384
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 384
UBI: number of PEBs reserved for bad PEB handling: 3
UBI: max/mean erase counter: 73/19
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (2031616)
   Image Name:   linux-3.4.103
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1955608 Bytes = 1.9 MiB
   Load Address: 41508000
   Entry Point:  41508000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

device nand0 <nand0>, # parts = 1
 #: name                size            offset          mask_flags
 0: fs                  0x03000000      0x01340000      0

active partition: nand0,0 - (fs) 0x03000000 @ 0x01340000

defaults:
mtdids  : none
mtdparts: none
Using machid 0x1260 from environment

Starting kernel ...

init started: BusyBox v1.19.4 (2017-03-07 17:41:12 CST)
377+0 records in
377+0 records out
377+0 records in
377+0 records out
NVRAM access daemon Ver. 1.0 Build 20170306160814
daemonize process
insmod: can't insert 'xt_mark': File exists

CMD_TEST

CMD_MODE
0+1 records in
1+0 records out
Unlocking BOOTCONFIG ...
Erasing BOOTCONFIG ...

Writing from <stdin> to BOOTCONFIG ...

 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.

1970-01-01 00:00:18: (plugin.c.131) Cannot load plugin mod_fastcgi more than once, please fix your config (we may not accept such configs in future releases
Interface doesn't accept private ioctl...
AMPDU (8BE0): Operation not permitted
Interface doesn't accept private ioctl...
vhtmubfee (8BE0): Invalid argument
Interface doesn't accept private ioctl...
AMPDU (8BE0): Operation not permitted
Interface doesn't accept private ioctl...
vhtmubfee (8BE0): Invalid argument
/bin/sh: can't create /sys/fast_classifier/skip_to_bridge_ingress: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/sync_freq: nonexistent directory
sysctl: short write
killall: thermald: no process killed

[G10 Media Center] running

cp: can't stat 'usr/lib/opkg/info_data/*': No such file or directory
Configuration file: /tmp/config_ap_w2g0

Please press Enter to activate this console. ath0: Could not connect to kernel driver
Using interface ath0 with hwaddr 74:da:38:6a:65:f6 and ssid "ASRock"
WPS: Converting display to virtual_display for WPS 2.0 compliance
WPS: Converting push_button to virtual_push_button for WPS 2.0 compliance
ath0: interface state UNINITIALIZED->ENABLED
ath0: AP-ENABLED
Configuration file: /tmp/config_ap_w5g0
athi5: Could not connect to kernel driver
Using interface athi5 with hwaddr 74:da:38:6a:65:f7 and ssid "ASRock_5G"
WPS: Converting display to virtual_display for WPS 2.0 compliance
WPS: Converting push_button to virtual_push_button for WPS 2.0 compliance
athi5: interface state UNINITIALIZED->ENABLED
athi5: AP-ENABLED
cat: can't open '/tmp/wan_status': No such file or directory

From original software factory

The system is going down NOW!
Sent SIGTERM to all processes
quit

[G10 Media Center] stopped

Sent SIGKILL to all processes
Requesting system reboot


U-Boot 2012.07 [Standard IPQ806X.LN,r40331] (Jun 22 2015 - 19:44:46)

smem ram ptable found: ver: 0 len: 5
DRAM:  491 MiB
NAND:  SF: Unsupported manufacturer 00
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
128 MiB
MMC:
NAND read from offset 1180000 failed -74
*** Warning - readenv() failed, using default environment

PCI0 Link Intialized
PCI1 Link Intialized
In:    serial
Out:   serial
Err:   serial
cdp: get part failed for 0:HLOS
Net:   MAC1 addr:0:3:7f:ba:db:1
athrs17_reg_init: complete
athrs17_vlan_config ...done
S17c init  done
MAC2 addr:0:3:7f:ba:db:2
eth0, eth1
Hit any key to stop autoboot:  0
MMC Device 0 not found
MMC Device 0 not found
Creating 1 MTD partitions on "nand0":
0x0000048a0000-0x0000078a0000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: fixable bit-flip detected at PEB 260
UBI: fixable bit-flip detected at PEB 268
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            48 MiB
UBI: number of good PEBs:        384
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 384
UBI: number of PEBs reserved for bad PEB handling: 3
UBI: max/mean erase counter: 64/32
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (4190208)
## Booting kernel from FIT Image at 44000000 ...
   Using 'config@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  ARM OpenWrt Linux-5.4.99
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x440000e4
     Data Size:    4031602 Bytes = 3.8 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x42208000
     Entry Point:  0x42208000
     Hash algo:    crc32
     Hash value:   e5108131
     Hash algo:    sha1
     Hash value:   4157b762e5d9e86c2744b78b3eb9ac5c8beb6550
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Flattened Device Tree from FIT Image at 44000000
   Using 'config@1' configuration
   Trying 'fdt@1' FDT blob subimage
     Description:  ARM OpenWrt asrock_g10 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x443d868c
     Data Size:    31929 Bytes = 31.2 KiB
     Architecture: ARM
     Hash algo:    crc32
     Hash value:   6aa54ae3
     Hash algo:    sha1
     Hash value:   1a235325a9b240668b97ccec64bba14e8a0e726e
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x443d868c
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 5eaf5000, end 5eaffcb8 ... OK
Using machid 0x1260 from environment

Starting kernel ...



U-Boot 2012.07 [Standard IPQ806X.LN,r40331] (Jun 22 2015 - 19:44:46)

smem ram ptable found: ver: 0 len: 5
DRAM:  491 MiB
NAND:  SF: Unsupported manufacturer 00
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
128 MiB
MMC:
NAND read from offset 1180000 failed -74
*** Warning - readenv() failed, using default environment

PCI0 Link Intialized
PCI1 Link Intialized
In:    serial
Out:   serial
Err:   serial
cdp: get part failed for 0:HLOS
Net:   MAC1 addr:0:3:7f:ba:db:1
athrs17_reg_init: complete
athrs17_vlan_config ...done
S17c init  done
MAC2 addr:0:3:7f:ba:db:2
eth0, eth1
Hit any key to stop autoboot:  0
MMC Device 0 not found
MMC Device 0 not found
Creating 1 MTD partitions on "nand0":
0x000001340000-0x000004340000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            48 MiB
UBI: number of good PEBs:        384
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 384
UBI: number of PEBs reserved for bad PEB handling: 3
UBI: max/mean erase counter: 73/19
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (2031616)
   Image Name:   linux-3.4.103
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1955608 Bytes = 1.9 MiB
   Load Address: 41508000
   Entry Point:  41508000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

device nand0 <nand0>, # parts = 1
 #: name                size            offset          mask_flags
 0: fs                  0x03000000      0x01340000      0

active partition: nand0,0 - (fs) 0x03000000 @ 0x01340000

defaults:
mtdids  : none
mtdparts: none
Using machid 0x1260 from environment

Starting kernel ...

init started: BusyBox v1.19.4 (2017-03-07 17:41:12 CST)
377+0 records in
377+0 records out
377+0 records in
377+0 records out
NVRAM access daemon Ver. 1.0 Build 20170306160814
daemonize process
insmod: can't insert 'xt_mark': File exists

CMD_TEST

CMD_MODE
0+1 records in
1+0 records out
Unlocking BOOTCONFIG ...
Erasing BOOTCONFIG ...

Writing from <stdin> to BOOTCONFIG ...

 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.


 SSDK Init OK!
operate done.

1970-01-01 00:00:18: (plugin.c.131) Cannot load plugin mod_fastcgi more than once, please fix your config (we may not accept such configs in future releases
Interface doesn't accept private ioctl...
AMPDU (8BE0): Operation not permitted
Interface doesn't accept private ioctl...
vhtmubfee (8BE0): Invalid argument
Interface doesn't accept private ioctl...
AMPDU (8BE0): Operation not permitted
Interface doesn't accept private ioctl...
vhtmubfee (8BE0): Invalid argument
/bin/sh: can't create /sys/fast_classifier/skip_to_bridge_ingress: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq: nonexistent directory
/bin/sh: can't create /sys/devices/system/cpu/cpufreq/ondemand/sync_freq: nonexistent directory
sysctl: short write
killall: thermald: no process killed

[G10 Media Center] running

cp: can't stat 'usr/lib/opkg/info_data/*': No such file or directory
Configuration file: /tmp/config_ap_w2g0

Please press Enter to activate this console. ath0: Could not connect to kernel driver
Using interface ath0 with hwaddr 74:da:38:6a:65:f6 and ssid "ASRock"
WPS: Converting display to virtual_display for WPS 2.0 compliance
WPS: Converting push_button to virtual_push_button for WPS 2.0 compliance
ath0: interface state UNINITIALIZED->ENABLED
ath0: AP-ENABLED
Configuration file: /tmp/config_ap_w5g0
athi5: Could not connect to kernel driver
Using interface athi5 with hwaddr 74:da:38:6a:65:f7 and ssid "ASRock_5G"
WPS: Converting display to virtual_display for WPS 2.0 compliance
WPS: Converting push_button to virtual_push_button for WPS 2.0 compliance
athi5: interface state UNINITIALIZED->ENABLED
athi5: AP-ENABLED
cat: can't open '/tmp/wan_status': No such file or directory

I tried the stable version and 21.02. Same result on both.

I'M curious id someone else has the same problem, with the last update (yesterday build) (r7800)
everyhting is ok, but wireguard gives me only 2-300 kbits instead of 150mbps...

I flashed with sysupgrade, finaly, I reset, and start from scratch. start from scratch wireguard 2-3 times, still the same.

I use a commercial vpn provider but elsewhere, the wireguard works at full speed.

Wireguard has undergone tons of updates in master. Looks like one of the new patches broke it.

1 Like

yes I saw it in the open wrt git log..... a lot yes :wink:
it must be about that.

Looks like the G10 needs some small edits in gmac1 (2 changes: poll is not required and there should be rgmii-delay)

This should be what right looks like:


&gmac1 {
	status = "okay";
	compatible = "qcom,nss-gmac";
	reg = <0x37200000 0x200000>;
	interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
	phy-mode = "rgmii";
	qcom,id = <1>;
	qcom,pcs-chanid = <0>;
	qcom,phy-mdio-addr = <4>;
	qcom,poll-required = <0>;
	qcom,rgmii-delay = <1>;
	qcom,phy_mii_type = <0>;
	qcom,emulation = <0>;
	qcom,forced-speed = <1000>;
	qcom,forced-duplex = <1>;
	qcom,socver = <0>;
	qcom,irq = <255>;
	mdiobus = <&mdio0>;

	pinctrl-0 = <&rgmii2_pins>;
	pinctrl-names = "default";

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

I'm compiling a new image. I'll let you know.

Unfortunately, I made changes to dts but image doesn't install. It doesn't install with openwrt. Does not install from original software. I do not have a screenshot from the seriall because I uploaded to the second g10 in which I do not have cables pulled out.

Are you on kernel 5.4.100 or 101?

  1. Built just prior to the bump.
1 Like

First of all, thanks for all of your hard work! I've been using your build for the past couple of weeks and have had good results.

My connection/setup:

  • Centurylink 1gbit/s Up/Down
  • R7800
  • Your latest master build
  • PPPOE and VLAN tagging (for the centurylink connection to work)
  • Using C3000z as a dumb AP with both wireless radios disabled on r7800
  • Using your recommended tweaks except for DAWN & Fqcodel. I have them entered in my rc.local as follows (I hope I did that right):
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

echo performance > /sys/devices/system/cpu/cpufreq/policy1/scaling_governor

uci set irqbalance.irqbalance.enabled=1; uci commit

exit 0

My results:

  • Full line speed when wired with very low latency
  • Asymmetric wireless speeds, iPhone 12 Pro max gets 200/300mbps d/u(speedtest app) and macbook air gets 300/500mbps d/u (speedtest CLI). I have tested this with the built in radio and get roughly the same results. Still works great!

Let me know if I can help in anyway by testing stuff.

Glad it is working well for you. Just keep me posted if you see any strange behavior, issues, or if you recommend any improvements. Trying to make the build have the best performance for ipq806x OpenWrt has to offer. Speedtest can be finicky sometimes for sure- especially with the nuances of wifi. I just tried two servers back to back and got very different results. First server was 400/35. Second server (closer) was this:

Did some additional testing just now. Was able to replicate the attached speed across my desktop, phone and multiple servers after re-enabling the R7800 radios.

I'm wondering if it could be:
-Ath10k vs Ath10k-ct.
-The VLAN tagging (CL requires all traffic to be tagged with 201 vlan) + PPPOE required for CenturyLink creating extra overhead. Although I read that this build has PPPOE NSS offloading.
-The recommended performance tweaks not taking, new to openwrt but I'm assuming if I have everything in rc.local startup script, I should be good? I went in via ssh and made sure it was executable via chmod +x /etc/rc.local and verified that it contains the recommended commands.

The /etc/rc.local file runs after you have started up your router. If you haven’t restarted your router you are still running your old settings.

You can SSH in and check:


root@OpenWrt:~# cat /sys/devices/system/cpu/cpufreq/policy*/scaling_governor
performance
performance

If your wired is getting full line rate and you aren’t getting upper 400-mid 500 via a 80Mhz wide 2x2 client from a couple feet away - it has to be something regarding the wireless settings or wireless driver/firmware.

Feel free to post your wireless settings (minus your password):

cat /etc/config/wireless

Here is mine for comparison:


root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '36'
        option hwmode '11a'
        option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option htmode 'VHT80'
        option txpower '20'
        option country 'US'
        option cell_density '0'
        option beacon_int '100'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid ''
        option encryption 'psk2+ccmp'
        option key ''
        option ieee80211r '1'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option wpa_disable_eapol_key_retries '1'
        option ieee80211v '1'
        option ieee80211k '1'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'CST6CDT,M3.2.0,M11.1.0'


config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option htmode 'VHT80'
        option cell_density '0'
        option channel 'auto'

config wifi-device 'radio1'
        option type 'mac80211'
        option channel '11'
        option hwmode '11g'
        option path 'soc/1b700000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'wifinet0'
        option device 'radio0'
        option mode 'ap'
        option encryption 'psk-mixed'
        option network 'lan'

I have transmitting power set as default which is going at 20 dBm. Verified that the performance settings are good. However I did notice that you mention that firewall software and hardware offloading should be disabled. Aren't these disabled by default or do I need to change them manually?

I’d change your wireless security to at least wpa2 + AES (makes sure you have fast speed and good security). I like to select a channel instead of using auto. Try channel 36 - if the other AP is turned on make sure it is a high channel to prevent interference like 161.

If you check the firewall section you can see the software / hardware offloading checkboxes. You can turn them off.

-Changed the wireless settings per your suggestion.
-firewall offloading has been off from the start.

Speeds are still the same.. I’ll try switching the athk drivers tomorrow to see if that does anything. The fact that it was displaying the same behavior when using the dumb AP makes me think it’s got something to do with how it’s handling the traffic. I’m going to keep looking into it, I’ll let you know if I find anything out.

EDIT *
After using htop and running speedtests, it looks like the issue might be the CPU work across cores. Download doesn't utilize nearly as much CPU as upload.

  • When downloading -> cpu1: 40-50% cpu2: 1-10% .
  • When uploading -> cpu1: 70-80% cpu2: 10-15% .

Replicated with:

  • irqbalance off and on,
  • non-ct athk10
  • fresh sysupgrade image
  • performance governor off and on

It looks like @iLoveRamen is using your build with a 1gb CenturyLink connection over PPPOE. Ramen, what do your WiFi speeds look like?

1 Like

I have been 10 days and 15 hours, it is still early, but it is already more stable.

I'm using:
OpenWrt SNAPSHOT r15851-31a06f8fcc, kernel 5.4.99, with perforance governor and irqbalance (I get 100% case of my line, 570mb / 600mb).

I will wait longer, but if everything goes well, the problem is the NSS driver? or have the latest kernel solved the problem?

Could be either. I had two r7800 NSS based builds at 14+ days recently with no issue.

sure yes, my friend also has the SSN with many more days, but with the workload that I have, it lasted a short time. I have not changed the workload, only the firmware, it is the test that I am doing, and for the moment, more stable without NSS. Now I don't know if it will be this kernel, or the NSS, or a combination of both. Will I wait more days, 1 month? and I will switch back to your new versions with 5.4.99 and NSS. Same kernel, but with NSS. If it crashes, then it's clear to me.

what difference between the 21.04 stable and the master?

21.04 is new?