RTL8125 Chipset Options

Does anyone know where to get the technical documentation on RTL8125?

Back story I was having upload issues where it would burst to top speed and then slowly reduce to half. What I ended up finding is the RTL8125 chipset has options on the ports by default that seem to be causing this.

Using 'ethtools' I was able to see those options and full disable all of them. Now my connection doesn't burst and slow down anymore its steady and stable through full speed tests. Putting this out there for others using the Realtek chipsets as word on the street is they are more problematic than the intel options. Feel free to correct me if I did something wrong or there are specific settings these ports should have on that I have turned off.

I also have not found how to make 2500 advertised as well because each time I reboot the device I have to manually set the speed after it nego's 1Gbps. 'ethtool -s eth1 autoneg on speed 2500 duplex full'. The sister port on the same card doesn't have this issue with my Wifi AP so not sure why the Fiber ONT wont by default nego that speed.

ethtool -k eth1>

Features for eth1:
rx-checksumming: off
tx-checksumming: off
        tx-checksum-ipv4: off
        tx-checksum-ip-generic: off [fixed]
        tx-checksum-ipv6: off
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: off
        tx-scatter-gather: off
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
        tx-tcp-segmentation: off
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]

Looks more like ethtool -a/-A thing?

I tried to use that command yesterday and it locked up the port. I had to hard power cycle the device to get it back. Would you happen to know the syntax of the command I would use to make sure 2500 is by default advertised? Right now I just have a bot script that waits for eth1(LAN) "Up" then executes the command. Takes about 1.5 min for the port to come online and useable at 2.5Gbps after full boot of the device.

You might try the following as a workaround in the meantime:

 /etc/hotplug.d/iface/000-eth1:

[ ifup = "$ACTION" ] && [ "$DEVICE" = eth1 ] {
        ethtool -s eth1 autoneg on speed 2500 duplex full
}

What's the device? Perhaps the DTS needs tweaking.

Heh, it is in help text

ethtool -a wan
ethtool -A wan tx off rx off autoneg on
ethtool -r wan
ethtool -a wan
ethtool wan

Raspberry Pi 5 with the following HAT.

https://www.amazon.com/PCIE-2-5G-Ethernet-HAT-High-Speed/dp/B0CZHZJ89S

Do you have a good power supply headroom for hat?

Yes, 50W should be way more than enough.

Not sure why you are asking about the power to the unit?

Can you explain, "Perhaps the DTS needs tweaking." ?

Finally found what appears to be the solution to the advertising issue.

QA
if you're not the right speed, please check this command.

# https://forum.openwrt.org/t/realtek-8156b-2-5g-for-pi-4-and-openwrt-21-02-2/125102/11

ethtool -s eth1 autoneg on advertise 0x80000000002f

I might pull out the default RTL8169 driver and see if this specific driver from this repository shows any better performance.

1 Like

Just to close out this topic. The stock, and two GitHub versions of the RTL8125 drivers actually seemed to be far more problematic than RTL8169. I took a different route from the PCIe dual HAT and am now experimenting with two USB UNI adapters running the RTL8156 chipset.

Seems to work far better than the HAT and allows me to swap in an NVME M.2 main drive improving stored data speeds dramatically over the SDCard.

At the end of the day RPI5 with a bit more time and ingenuity could be a power house Router / Firewall device. Most enterprise and even some consumer routers use OpenWRT as a base and I'm seeing a lot more router options on ARM chips which is a good thing, I believe.

For things I have learned, SQM, IRQ Balance, and a few other notable packages I remember from back in the WRT54G are now essentially useless when you are on Gigabit or even Muti-Gigabit network speeds. I never fully got to experimenting with installing and experimenting with packet inspection packages. My purpose was more to see if the RPI5 could match or exceed the speed and throughput of current options that go for $400 - $1000 dollars.

While I didn't fully test it the data showed that with OpenWRT the RPI5 would probably not break a sweat till the 6Gbps mark but that's theoretical based on a few measuring factors achieve at 2.5Gbps saturation on the ports.

PS. I really liked APK a lot more than OPKG hopefully that gets ironed out and put into the main distro. Thanks everyone for helping with this experimentation!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.