Hi,
I am having a WAN performance issue after upgrading OpenWrt on a Banana Pi BPI R4, and I would like to ask if anyone has seen something similar or has ideas what else I should check.
Hardware:
Banana Pi BPI R4
WAN on sfp-wan
LAN on sfp-lan
both SFP slots use RJ45 10G copper transceivers
modules detected as:
SOURCEPHOTONICS ASF-10G-T rev 10
WAN module serial seen in logs:
HPF101L90899
LAN module serial seen in logs:
HPF101L90942
ISP connection is about 2 Gbit download
Previously, on an older OpenWrt version, I was able to reach the full ~2 Gbit on the same hardware and same transceiver.
Current software:
OpenWrt 25.12.2
kernel 6.12.74
target mediatek/filogic
Problem:
After the upgrade, link comes up correctly, WAN gets an IP address, routing works, internet works, but throughput dropped heavily.
Speedtest executed directly on the router only gives around 360 to 440 Mbit download and around 28 to 32 Mbit upload.
Before the upgrade, on the same hardware and same SFP module, I had the full ~2 Gbit.
What I already checked:
sfp-wanlink looks correct
ethtool sfp-wan shows:
Speed: 10000Mb/s
Duplex: Full
Link detected: yes
- WAN is logically up and working
ubus call network.interface.wan status shows a valid IPv4 address, default route and DNS.
- I removed the WAN bridge
Initially WAN was configured on br-wan, then I changed it to direct device mode.
Current config is:
network.wan.device='sfp-wan'
network.wan6.device='sfp-wan'
This did not fix the problem.
- Flow offloading is enabled
uci show firewall | grep flow
shows:
flow_offloading='1'
flow_offloading_hw='1'
nft list ruleset | grep -i flow also shows an active flowtable.
- Socket and network buffers were increased and tuning is active
Current values:
net.core.rmem_max=67108864
net.core.wmem_max=67108864
net.core.rmem_default=8388608
net.core.wmem_default=8388608
net.core.netdev_max_backlog=100000
net.ipv4.tcp_rmem=4096 262144 67108864
net.ipv4.tcp_wmem=4096 262144 67108864
/etc/sysctl.d/99-tuning.conf exists and loads correctly.
- Pause frames on both SFP interfaces were disabled
For both sfp-wan and sfp-lan:
RX: off
TX: off
- I also test disabled interface offloads on both SFP interfaces
I disabled GRO, GSO, TSO, RX checksum and TX checksum on sfp-wan and sfp-lan.
That partially improved local iperf in one direction, but it did not restore WAN performance.
- I also tested RPS changes
Default rps_cpus was 4, I tested changing it to f for both sfp-wan and sfp-lan.
No meaningful improvement in speedtest from the router.
Additional tests:
Local test between PC and router:
iperf3 -c 192.168.1.1 -P 4 -t 20
gives around 2.3 Gbit
so PC to router looks good.
However:
iperf3 -c 192.168.1.1 -P 4 -t 20 -R
initially gave around 746 Mbit, and after disabling offloads on the router it improved to around 939 Mbit, but it is still not ideal.
That looks like a separate local issue, but it does not explain the poor WAN result, because speedtest run directly on the router is still much too low.
Current network state:
network.globals.packet_steering='1'
LAN is on br-lan
WAN is directly on sfp-wan
Important detail:
On the previous OpenWrt version, everything worked correctly on the same hardware, same ISP, and same SFP+ RJ45 module.
Because of that I am starting to suspect a regression after upgrade, possibly in the driver, kernel, or SFP handling on BPI R4.
Questions:
-
Has anyone seen similar WAN throughput drops after moving to OpenWrt 25.12.2 or kernel 6.12.x on BPI R4
-
Is there any known issue with
sfp-wanor with RJ45 10G copper SFP+ modules such asSOURCEPHOTONICS ASF-10G-T -
Is there anything else worth checking before rolling back to 24.10.5
-
Has anyone compared WAN performance on BPI R4 between 24.10.x and 25.12.x
If needed, I can also provide full outputs from ethtool, ubus, ip -s link, nft ruleset and iperf3.
Thanks in advance for any suggestions.