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

Send the pull request my way and I’ll add it in.

I have just flashed my R7800 with your build, thanks for adding openvpn. For the moment everything is working just fine, very smooth

1 Like

I just flashed a build that was created from your branch, this patch:

seems to break boot on at least the ea8500. I think it is because the patch changes the kernel config and adds:

CONFIG_CMDLINE_OVERRIDE=y

I'm going to remove this, rebuild and try again.

I’m adding the kernel panic patch and if that simple fix helps - we can add that too. Have a GitHub where I can get cherry-pick commits easily?

Can confirm, after removing CONFIG_CMDLINE_OVERRIDE=y your current tree with my gmac-nss fix boots.

3 Likes
2 Likes

Thanks for the link.

@Kostja_V @nos1609 @asturel - check the original post- Rebuilt for a wide range of ipq806x targets that have known NSS commits. Boot loop seems to be fixed for the ea8500. Untested on the rest - feel free to test.

Latest build boots OK on NBG6817, but according to speedtest NSS acceleration is not working. WAN -> LAN speed dropped from 900mbps to 400mbps compared to my build from your source. I think that difference is in gmac parameters that I copied from R7800 dts.

1 Like

I can probably help testing/fixing this... as my rt2600ac is very similar... ping me in a week or so if you get stuck and nobody else is able to assist...

i'd also love to know what becomes of the 'CONFIG_CMDLINE_OVERRIDE' dilemma as I need similar options for the rt2600ac ( CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y + #CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE is not set )
( did not think this option would be accepted globally )

1 Like

Thank you for assistance. But for me now, it looks that everything is working almost perfect. I am testing build with mac fix and modified dts file for 2 days, without a single issue.
My previous post was about the latest prebuild binary ACwifidude asked to test.

1 Like

With this gmac parameters in dts file, build from your source works great with NSS acceleration.

1 Like

Wow
Thanks for the fix
Didn't know that my router is capable of 300+ Mbps through Wi-Fi
That is the screenshot of wi-fi test on my Xperia 5, now my gigabit internet worth its fees:)

1 Like

Appreciate the code. The build is updated with a commit for the NBG6817 and should work now for the NBG6817. :sunglasses:

Updates:

  • Added several more ipq806x devices. The R7800 version is tested. I don't own a C2600, EA8500, NBG6817, R7500v1, or R7500v2 (builds for these are untested - make sure you known how to tftp if you get in trouble)
  • deleted upnp (default is that it is enabled, the ability to allow devices to change router settings is not my favorite)
  • added htop and ddns
2 Likes

Nice to hear, that there is now a build with NSS offloading. I was following the thread now well over a year now.

Are there any plans to make NSS offloading available in the official OpenWRT builds?

1 Like

I’m using this build for 802.11v and 802.11k.

It works great for the most part, but when connected to the “dumb AP” (via iPhone 11), the connection stays strong but there’s no access to the internet after a certain amount of time - apps I am on infinitely load waiting for a connection, which eventually returns.

Do you know of any way to diagnose the issue to maybe see what the problem is?

Also, is it worth enabling 802.11vk on the 2.4GHz radio?

I have two iPhones and several iPads that like this config. I have them on 5ghz SSID (have a separate 2.4ghz SSID that these devices don’t know the password to :grin:), two APs, and use different channels for each AP but otherwise the same config.

See if your config is similar or different. I’d love to troubleshoot it.

Here you go:


cat /etc/config/wireless

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 disabled '0'
	option cell_density '0'
	option country 'GB'
	option channel '100'

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

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 country 'GB'
	option cell_density '0'
	option htmode 'HT40'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option wpa_disable_eapol_key_retries '1'
	option key 'PWD'
	option ssid 'SSID'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option ieee80211r '1'
	option encryption 'psk2'
	option ieee80211w '1'
	option ieee80211v '1'
	option ieee80211k '1'
	option bss_transition '1'
	option wnm_sleep_mode '1'
	option time_advertisement '2'
	option time_zone 'GMT0BST,M3.2.0,M11.1.0'

cat /etc/config/dawn

config network
    option broadcast_ip         '10.0.0.255'
    option broadcast_port       '1025'
    option server_ip            ''
    option tcp_port             '1026'
    option network_option       '2' # 0 udp broadcast, 1 multicast, 2 tcp
    option shared_key           'Niiiiiiiiiiiiiik'
    option iv                   'Niiiiiiiiiiiiiik'
    option use_symm_enc         '1'
    option collision_domain     '-1'     # enter here aps which are in the same collision domain
    option bandwidth            '-1'     # enter network bandwidth

config ordering
    option sort_order           'cbfs'

config hostapd
    option hostapd_dir          '/var/run/hostapd'

config times
    option update_client         '10'
    option denied_req_threshold  '30'
    option remove_client         '15'
    option remove_probe          '30'
    option remove_ap             '460'
    option update_hostapd        '10'
    option update_tcp_con        '10'
    option update_chan_util      '5'
    option update_beacon_reports '20'

config metric
    option ap_weight            '0'
    option ht_support           '0'
    option vht_support          '0'
    option no_ht_support        '0'
    option no_vht_support       '0'
    option rssi                 '10'
    option low_rssi             '-500'
    option freq                 '100' # some kind of band-steering
    option chan_util            '0'
    option max_chan_util        '-500'
    option rssi_val             '-60'
    option low_rssi_val         '-80'
    option chan_util_val        '140'
    option max_chan_util_val    '170'
    option min_probe_count      '0'
    option bandwidth_threshold  '6'
    option use_station_count    '1'
    option max_station_diff     '1'
    option eval_probe_req       '0'
    option eval_auth_req        '0'     # no real reasoncode...
    option eval_assoc_req       '0'     # just deny assocs...
    option kicking              '0'
    option deny_auth_reason     '1'     # unspecified
    option deny_assoc_reason    '17'    # assoc rejected can't handle new station
    option use_driver_recog     '1'
    option min_number_to_kick   '3'
    option chan_util_avg_period '3'
    option set_hostapd_nr       '1'
    option op_class             '0' #802.11k stuff...
    option duration             '0'
    option mode                 '0'
    option scan_channel         '0'

cat /etc/config/umdns

config umdns
	option jail 1
	list network lan

Seems okay to me - think it could be the iPhone?

Try out a non-DFS channel for your 5ghz (if you get interference on channel 100 by default the router has to dip out and accept the interference):

For dawn this is critical to get it to work right:


uci add_list umdns.@umdns[0].network='wan'; uci commit

In your dawn config I’d change the value for HT support to ‘10’ and VHT support to ‘100’.

See if that helps!

Could anybody check if 5Ghz 160Mhz WiFi is working on this build?
For me when switching to 160Mhz Wlan0 interface crashes with

Mon Dec 28 18:58:35 2020 daemon.err hostapd: DFS start_dfs_cac() failed, -1
Mon Dec 28 18:58:35 2020 daemon.err hostapd: Interface initialization failed

On 80Mhz and less everything is working fine on non-DFS and DFS channels.

I managed to compile and succesfully boot my C2600. It's a dumb AP but the nss cores were fully loaded and the router is working well. This is the gmac part of the dts file that I used.

&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;
	};
};

&gmac2 {
	status = "okay";
	compatible = "qcom,nss-gmac";
	reg = <0x37400000 0x200000>;
	interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
	phy-mode = "sgmii";
	qcom,id = <2>;
	qcom,pcs-chanid = <1>;
	qcom,phy-mdio-addr = <0>; /* none */
	qcom,poll-required = <0>; /* no polling */
	qcom,rgmii-delay = <0>;
	qcom,phy_mii_type = <1>;
	qcom,emulation = <0>;
	qcom,forced-speed = <1000>;
	qcom,forced-duplex = <1>;
	qcom,socver = <0>;
	qcom,irq = <258>;
	mdiobus = <&mdio0>;

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

1 Like