System hang/hard freeze on COMFAST CF-WR632AX (U-Boot layout) with 25.12.0-rc3 and rc4

System hang/hard freeze on COMFAST CF-WR632AX (U-Boot layout) with 25.12.0-rc3 and rc4

Description:
I am experiencing consistent system instability with the COMFAST CF-WR632AX (U-Boot layout) using the latest 25.12.0-rc3 and rc4 builds. After some time, the router suffers a hard freeze:

Wi-Fi networks (SSIDs) disappear completely.

Wired Ethernet connection (LAN) becomes unresponsive.

The device requires a physical power cycle to recover.

Comparison:
Using the exact same package set and configuration, the ImmortalWrt snapshot works perfectly stable on this hardware. The issue seems specific to the current OpenWrt release candidates.

Debug Information:
Unfortunately, since the router freezes completely and is located at a remote site, I cannot provide serial logs or dmesg output at this moment.

I am willing to provide any additional configuration details or perform specific tests within my capabilities to help diagnose and resolve this issue.

Which one is it then?

Try to run logread -f in a ssh session and wait for the crash. It MAY catch the last lines before device crashes.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button (red circle; this works best in the 'Markdown' composer view in the blue oval):

Screenshot 2025-10-20 at 8.14.14 PM

Remember to redact passwords, VPN keys, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network # very careful with regard to VPN secrets!!!
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

That's how I understand it. The router isn't mine and I don't have access to it, but I'll respond and provide information if I can.
I've disabled WED for now, and it's working. This router has non-standard interfaces. Usually, WAN+WAN6=eth1, but here it's WAN+WAN6=wan. I don't know if this matters, but the same GL.iNet GL-MT3000 router with the same settings works fine on OpenWRT. When I get a chance, I'll do what you asked.

By large you dont need offload or wed performance wise.
If you can just start logread in a ssh session. Some chance it says how it fails.

It works without WED. Experimentation is prohibited(((. Since it works, there are no error logs. But other routers work with WED enabled. It's clear that modern routers are quite powerful and can handle dozens of wireless clients without much load, but why this feature causes freezes on this particular router is unclear.

The issue is not solved! The freezes continue.

Bug Report: System Lockup and Network Collapse on Comfast CF-WR632AX (MT7981B)

Device Information:

  • Model: Comfast CF-WR632AX

  • Architecture: MediaTek Filogic 820 (MT7981B)

  • OpenWrt Version: 25.12.0-rc5 (Mainline/Master)

  • Comparison Device: GL.iNet GL-MT3000 (Beryl AX) running the same version.

Description of the Issue: The Comfast CF-WR632AX experiences a total system freeze under network load. Unlike standard interface drops, this issue results in a "hard lockup":

Wired Connectivity: All Ethernet ports (WAN/LAN) stop responding.

Wireless Connectivity: All Wi-Fi SSIDs (2.4GHz and 5GHz) immediately disappear from the air.

  1. System State: The device becomes completely unresponsive (SSH/WebUI inaccessible) and requires a hard power cycle to recover.

Technical Analysis and Comparison:

1. Interface Naming Discrepancy:

GL-MT3000: Maps the 2.5G WAN port to eth0.

+1

CF-WR632AX: Maps the 2.5G WAN port to a dedicated device labeled wan.

+1

  • In the Comfast DTS, the wan interface is defined as a separate device: network.@device[1].name='wan', whereas the MT3000 uses network.@device[1].name='eth0'.

    +1

2. Interrupt (IRQ) Distribution Anomalies: Analysis of /proc/interrupts shows a severe imbalance in how ethernet interrupts are handled on the CF-WR632AX compared to the MT3000:

GL-MT3000: Ethernet interrupts (lines 76 and 77) are effectively distributed between cores (CPU0: ~0.6M, CPU1: ~1.1M ).

CF-WR632AX: Recorded interrupt activity is significantly lower and poorly distributed (~3.3k on CPU0 and ~7.8k on CPU 1).

  • Enabling packet_steering on the CF-WR632AX appears to trigger the system-wide lockup, likely due to IRQ collisions or improper mapping in the DTS.

3. Hardware Features (ethtool): The ethtool -k wan output for the CF-WR632AX confirms that hardware offloading features are active by default, which may be contributing to the instability if the DTS implementation for the wan device is incompl ete.

Steps to Reproduce:

  1. Flash OpenWrt 25.12.0-rc5 on Comfast CF-WR632AX.

  2. Configure WAN using the default wan device map ping.

  3. Enable packet_steering and initiate high-bandwidth traffic via the 2.5G WAN port.

  4. Result: The system freezes completely; Ethernet link is lost, and Wi-Fi radios stop broadcasting.

Expected Behavior: The system should remain stable under load, with interrupts balanced across cores as seen on the GL-MT3000, without causing a total hardware lockup.

ssh Comfast

Summary

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:01 brd ff:ff:ff:ff:ff:ff
3: lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:02 brd ff:ff:ff:ff:ff:ff
4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:02 brd ff:ff:ff:ff:ff:ff
10: phy0-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:03 brd ff:ff:ff:ff:ff:ff
12: phy1-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:04 brd ff:ff:ff:ff:ff:ff

uci show network | grep "@device"

network.@device[0]=device
network.@device[0].name='br-lan'
network.@device[0].type='bridge'
network.@device[0].ports='lan'
network.@device[1]=device
network.@device[1].name='wan'
network.@device[1].macaddr='XX:XX:XX:XX:XX:01'

cat /proc/interrupts | grep -E "eth|wan|mtk"

76:       3301          0     GICv3 229 Level     15100000.ethernet
77:        133       7870     GICv3 230 Level     15100000.ethernet

ethtool -k wan

Features for wan:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
hw-tc-offload: on

ethtool --show-eee wan

EEE status: disabled

ssh MT3000

Summary

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether YY:YY:YY:YY:YY:01 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP mode DEFAULT group default qlen 1000
link/ether YY:YY:YY:YY:YY:02 brd ff:ff:ff:ff:ff:ff
6: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether YY:YY:YY:YY:YY:02 brd ff:ff:ff:ff:ff:ff

uci show network | grep "@device"

network.@device[0]=device
network.@device[0].name='br-lan'
network.@device[0].type='bridge'
network.@device[0].ports='eth1'
network.@device[1]=device
network.@device[1].name='eth0'
network.@device[1].macaddr='YY:YY:YY:YY:YY:01'

cat /proc/interrupts | grep -E "eth|wan|mtk"

76:     598793          0     GICv3 229 Level     15100000.ethernet
77:          0    1125058     GICv3 230 Level     15100000.ethernet

ethtool -k eth0

Features for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
generic-segmentation-offload: on
generic-receive-offload: on
hw-tc-offload: on

ethtool --show-eee eth0

EEE status: disabled

What versions of OpenWrt are you running, mostly ports are renamed to printed labels with upgrades, even they go with default eth0/eth1 names at initial support sometimes.

Please avoid posting unverified AI slop.
If there is a bug please verify slopbot claim about eg hw offloads by selectively disabling them YOURSELF.
We are not 4th line support for your chatbot.

This is better than my attempts to explain everything in English))). The COMFAST CF-WR632AX (OpenWrt U-Boot layout) doesn't have an official stable version. Everything is based on a “scientific experiment” on 25.12.0 rc2, 3, 4, and 5. A possible issue is incorrect processing due to non-standard interface naming. This is my guess, not the AI's. It just formatted it nicely.

These two routers are very similar in hardware, and with the same software and settings, you'd expect them to work the same way. But the Beryl works 24/7, while the Comfast would freeze or lose internet connection. I found this difference. If that's not the cause, then what is? Shouldn't they work the same way, or am I wrong?

Thank you for your feedback but please verify AI slop and post the facts. AI told you to treat ethtool -k/-K settings as suspect. That claim might be correct - disable thse offloads, then enable them one by one and find the culprit?

irqbalance is extra package, nothing to do with hardware support quality for example. By default irq-s shoot on CPU0 and packet steering distributes processing to other cores.

It needs profound human analysis, and you are one, and you have hardware in your hands.

Thanks for your reply. I've updated my post above. Is my conclusion about the operation of these two routers incorrect?

Absolutely unbased AI slop. There is no CONCLUSION in whole text. It is ANALYSIS made by chatbot directing you to research further in few directions.

What's clear is that nothing is clear. If all routers are supposed to work differently with the same inputs, then taking the same bus to work can lead to different results. To get to work, you have to try getting off at different stops and even going in the opposite direction. And even that doesn't guarantee results.
I understand.
Thank you!

Your assumption that all routers are same is absurd.

Do you have anything to say about router freezing?

If not, then...

I'll sort out my misconceptions myself.

Follow AI advice to investigate the problem further. Nobody can remote-sense what your router is up to.

Well, at least it's artificial, but it's still intelligence. Thanks for wasting my time.

Is there anyone reasonable who can explain what I'm doing wrong? The router is working as it should, but I'm stuck instead? Or is this all I can get on this forum regarding this issue?

I have 3 of these devices running at my parents’ house as dumb APs - wired to upstream ISP provided router. One of them runs WireGuard server.

They have been exceptionally stable. But I’m running stock uboot.

I don’t know why that would cause issues for a device if it’s already up and running, but since you’re running OpenWRT uboot, maybe you should upgrade that?

I know in snapshot build there have been recent fixes for the OpenWRT mediatek uboot…

I should add that I don’t use WED as you’ve stated you do. So as Brada suggested, turn that off if it solves your problem and move on for now. Unfortunatly nobody here will be able to guess as to why it’s not working for you I’m afraid.