Belkin RT3200/Linksys E8450 WiFi AX discussion

@nbd With the latest master code, it seems that wed HW acceleration no longer works. Even if cat /sys/module/mt7915e/parameters/wed_enable responds with Y, I don't see anything when doing cat /sys/kernel/debug/mtk_ppe/bind. Could it be related to this commit https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=726ef8ba2dbe4d4a693c4d9300bc69e234e6d67d as it is something related to offloading with PPPoE (which is indeed fixed according to my tests using ethernet client). I am still using firewall3, could this be the cause?

@Gix how did you test wed HW acceleration? NAT between WLAN and WAN? Or were you testing bridger for LAN<->WLAN bridge offloading?

1 Like

First I tested NAT from WAN to WLAN where I noticed wed is not working. Then I've tested NAT between WAN and LAN to see the CPU usage and this confirmed me that HW offloading worked with PPPoE because it was almost no usage (while before this fix it was even higher than WAN - WLAN). Then I come back to another WLAN client to confirm again that wed is not working and noticed that bridger is busy on one core with 50% usage doing nothing (this also happened before from time to time, I don't know what triggers it). So I haven't tested wed with bridger and I reverted to a build from 4th of May including the PPPoE fix from MeIsReallyBa adapted to the 5.15 kernel, and now wed it's working fine.

3 Likes

I'm curious - when all the dust settles, will the magic combination to get offloading working/best performance on the parts that can be:

  1. Enable packet steering
  2. Enable SW offload
  3. Enable HW offload
  4. Enable 'performance' gov (I use 'schedutil' but this assumes you want full blast always)
  5. Install and enable 'bridger'
  6. Enable WED with 'Y' and check WED bind
  7. Apply patch/compile that fixes 47C passive cooling throttle point (probably fixed soon in 'master' anyway)
  8. Install and enable irqbalance (forgot this one again)

I typically do 1,2,3,5 and 8 on my devices and have held off on 6 and 7 for now.

I know we're bleeding edge here but that's where the fun is.

As I am using mainly WLAN clients, I prefer wed to be enabled by default (instead of disabled by default as it is currently set in the mt76 source code) but I think anyone can test by editing /etc/modules.d/mt7915e with "mt7915e wed_enable=Y".

3 Likes

excuse me, looks like i missed an event here... what is this "wed" ??

Wireless Ethernet Dispatch - hardware offloading from I think eth to wlan so downlink not uplink.

Thanks, just found where the discussion about this started
it seems to be about WAN --> WIFI HW offloading
this is only for MT7915e ? i have a MT7615e (only Wifi AC, not AX)

1 Like

The wed_enable module parameter is present in the source code only for mt7915.

  1. Doesn’t packet steering have some side effect?

Have you tried irqbalance?

  1. Is it the brigde package in opkg?

Aren't these mutually exclusive?

In Luci you need to enable SW offload before the option for HW offload appears.

Does the HW offloading work with the recent snapshots? I'm using few months old one and the HW offloading is broken there.

What firewall are you using firewall3 or 4? Version 3 uses iptables and 4 nftables and was something about compability with HW offloading.

I tested a recent build from master (from last week) and the H/W offloading seems to work OK. iperf3 for WAN-LAN traffic results in near zero sirq load. I'm still using firewall3 for my build. Not sure if firewall4 will cause problem, but it should not, as it's just a front-end to netfilter if my understanding is correct.

I have not tested PPPoE yet tho.

Too lazy to setup a PPPoE server to test ... haha.

4 Likes

I have 2 RT3200s working perfectly with 802.11s mesh. I replaced the basic ssl with wpad-openssl and libustream-openssl and use WPA3 encryption for the mesh settings. I set a static IP on the non-routing mesh point and disabled dnsmasq, firewall and odchpd on that device.

I do recall having to make a couple of changes to the LAN interface in the network settings area. I think that was setting the default gateway to my router's internal IP address and maybe the net mask. I remember the network part being a bit of trial and error to finally get it working so maybe that's what's needed? DHCP on the mesh node with a static IP assignment on the router side might work just as well as the static IP on the non-router.

I really didn't do much else as far as I can remember. I recall setting it up with a cable connected between the two before placing them in their final locations.

Hello,

I'm trying to install kmod-usb-net-cdc-ncm but I have a kernel version issue.

Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.10.113-1-d3a5d2af68dbbf43c631958a252f7270) for kmod-usb-core
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.10.113-1-d3a5d2af68dbbf43c631958a252f7270) for kmod-usb-net
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.10.113-1-d3a5d2af68dbbf43c631958a252f7270) for kmod-usb-net-cdc-ncm
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-net-cdc-ncm:
 * 	kernel (= 5.10.113-1-d3a5d2af68dbbf43c631958a252f7270)
 * opkg_install_cmd: Cannot install package kmod-usb-net-cdc-ncm.

I'm running the last firmware version "OpenWrt 22.03-SNAPSHOT r19228-0877953235 / LuCI openwrt-22.03 branch git-22.119.37115-66994a5" found on released owrt-ubi-installer.

I tried to install the last upgrade from OpenWRT website (https://downloads.openwrt.org/snapshots/targets/mediatek/mt7622/openwrt-mediatek-mt7622-linksys_e8450-squashfs-sysupgrade.bin) but 5Ghz wifi disappears for available devices.

I've a lot of packages that are outdated, and impossible to upgrade them, with the same kernel version error.

Does anybody knows how I can do to upgrade kernel version?

Thanks

It's probably best to just install the latest snapshot, or you can try 22.03.0-rc1, it's the release candidate for the next stable version and the packages will be persistent so no worry about kernel mismatch.

2 Likes

Curious if there is any benefit of enabling "Generic receive offload (GRO)" (rx-gro-list / rx-udp-gro-forwarding) and if it is even implemented/supported in the mt* drivers?

From what I am reading from the code when the patches were posted to the kernel mailing lists, it doesn't necessarily need special support from the chipset drivers involved.

Are any packages known to set UDP_GRO on sockets?

I haven't used the attended sysupgrade in a while and now see this:

{
    "url": "https://sysupgrade.openwrt.org",
    "revision": "r19315-d4053d2e8e",
    "advanced_mode": "0",
    "app_version": "git-22.068.37885-65266c4",
    "branch": "22.03",
    "efi": null,
    "rootfs_type": "squashfs",
    "profile": "linksys,e8450-ubi",
    "target": "mediatek/mt7622",
    "version": "22.03-SNAPSHOT",
    "packages": [
        "auc",
        "base-files",
        "blockd",
        "busybox",
        "ca-bundle",
        "dnsmasq",
        "dropbear",
        "firewall4",
        "fstools",
        "iperf3",
        "kernel",
        "kmod-fs-exfat",
        "kmod-fs-ext4",
        "kmod-fs-f2fs",
        "kmod-fs-vfat",
        "kmod-gpio-button-hotplug",
        "kmod-leds-gpio",
        "kmod-mt7615-firmware",
        "kmod-mt7615e",
        "kmod-mt7915e",
        "kmod-nft-offload",
        "kmod-nls-base",
        "kmod-nls-cp437",
        "kmod-nls-iso8859-1",
        "kmod-nls-utf8",
        "kmod-usb-storage",
        "kmod-usb-storage-uas",
        "kmod-usb3",
        "libc",
        "libustream-openssl",
        "logd",
        "luci",
        "luci-app-attendedsysupgrade",
        "luci-ssl-openssl",
        "luci-theme-openwrt-2020",
        "mtd",
        "netifd",
        "nftables-json",
        "odhcp6c",
        "odhcpd-ipv6only",
        "opkg",
        "ppp",
        "ppp-mod-pppoe",
        "procd",
        "procd-seccomp",
        "procd-ujail",
        "tcpdump",
        "uboot-envtools",
        "uci",
        "uclient-fetch",
        "urandom-seed",
        "urngd",
        "wpad-openssl"
    ],
    "diff_packages": true
}
root@OpenWrt:~# auc
auc (0.2.5-2)
Server:    https://sysupgrade.openwrt.org
Running:   22.03-SNAPSHOT r19315-d4053d2e8e on mediatek/mt7622 (linksys,e8450-ubi)
No data available (61)

What's the issue here?