BPI R4 WAN throughput dropped after upgrade to OpenWrt 25.12.2, 10G SFP+ link is up but speed stuck far below expected

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:

  1. sfp-wan link looks correct

ethtool sfp-wan shows:

Speed: 10000Mb/s
Duplex: Full
Link detected: yes

  1. WAN is logically up and working

ubus call network.interface.wan status shows a valid IPv4 address, default route and DNS.

  1. 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.

  1. 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.

  1. 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.

  1. Pause frames on both SFP interfaces were disabled

For both sfp-wan and sfp-lan:

RX: off
TX: off

  1. 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.

  1. 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:

  1. Has anyone seen similar WAN throughput drops after moving to OpenWrt 25.12.2 or kernel 6.12.x on BPI R4

  2. Is there any known issue with sfp-wan or with RJ45 10G copper SFP+ modules such as SOURCEPHOTONICS ASF-10G-T

  3. Is there anything else worth checking before rolling back to 24.10.5

  4. 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.