High CPU Usage on OpenWRT When Port Forwarding to USB Network Interface

Hello everyone,

I have an OpenWRT router running on an Alix 6F board and a proprietary device. The proprietary device connects via a USB cable (USB A to B, printer-style) and creates a network interface on OpenWRT.

My goal is to have this device connected to my OpenWRT and configure NAT so that incoming WAN traffic on a specific port is forwarded to the proprietary device, allowing me to access its web interface remotely.

After installing the rndis kmod, I can ping and telnet into the proprietary device from OpenWRT. However, after setting up the NAT, whenever I try to access OpenWRT in my browser using the specified port, the ping to the proprietary device spikes, then stops responding. At the same time, the CPU load on OpenWRT becomes extremely high, and I lose access.

Has anyone encountered this issue? Could it be a NAT or routing loop problem? Any suggestions on how to fix this?

Thanks!

Does it work at good speed with onboard ethernet ports?

The onboard ethernet ports are fine, but the proprietary device I'm working with only allows for WebUI access via the USB A to B.

ubus call system board
cat /etc/config/network 
cat /etc/config/firewall
lsusb

Also make a screenshot from htop - in settings unhinde kernel threads, show cpu detail , when device becomes slow.

This is an extremely slow and old CPU (500 MHz AMD Geode LX800), combined with the rather high overhead of USB 2.0 transfers there isn't much to expect here. The pragmatic approach would be to do a quick test on more capable x86_64 hardware.

1 Like