Date: Mon, 16 Feb 2026 22:28:17 +0100 From: Chris Longros <chris.longros@gmail.com> To: freebsd-net@freebsd.org Subject: rge(4) RTL8125 2.5GbE testing: 2500baseT media type not available on 16.0-CURRENT Message-ID: <CAGnpK8Zj5SW6DGeLwTm50RSW0FVKuAxC8A5TXmEzkcBVbAthSg@mail.gmail.com>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Hi all,
I've been testing the rge(4) driver on FreeBSD 16.0-CURRENT
(main-n283549-6d37c3db62ba, Feb 2 2026) with a Realtek RTL8125 2.5GbE
Controller via VFIO/PCI passthrough from a Linux (Arch) host into a
QEMU/KVM virtual machine.
The driver attaches and works — DHCP, ping, DNS resolution, and general
traffic all function correctly. However, the NIC negotiates at 1000baseT
only, and 2500baseT is not available as a media type.
Attempting to set 2500baseT returns:
ifconfig rge0 media 2500baseT mediaopt full-duplex
ifconfig: unknown media subtype: 2500baseT
The OpenBSD rge(4) man page documents the RTL8125 as capable of 2500Mbps
operation, and the FreshPorts entry for net/realtek-rge-kmod lists it as a
2500baseT adapter. It appears the FreeBSD port does not yet expose this
media type.
Hardware:
Realtek RTL8125 2.5GbE Controller (rev 05)
Gigabyte subvendor (vendor=0x10ec device=0x8125 subvendor=0x1458
subdevice=0xe000)
dmesg:
rge0: <RTL8125> port 0xc000-0xc0ff mem
0xc000000000-0xc00000ffff,0xc000010000-0xc000013fff irq 11 at device 4.0 on
pci0
rge0: Ethernet address: xx:xx:xx:xx:xx:xx
rge0: link state changed to DOWN
rge0: link state changed to UP
pciconf -lv:
rge0@pci0:0:4:0: class=0x020000 rev=0x05 hdr=0x00 vendor=0x10ec
device=0x8125 subvendor=0x1458 subdevice=0xe000
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8125 2.5GbE Controller'
class = network
subclass = ethernet
ifconfig rge0:
rge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether xx:xx:xx:xx:xx:xx
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
sysctl dev.rge.0 (excerpt):
dev.rge.0.mac_stats.rge_tx_er: 6
dev.rge.0.mac_stats.rge_rx_ok: 26274
dev.rge.0.mac_stats.rge_tx_ok: 13115
dev.rge.0.drv_stats.intr_system_errcnt: 0
dev.rge.0.drv_stats.tx_watchdog_timeout_cnt: 0
dev.rge.0.drv_stats.transmit_full_cnt: 0
dev.rge.0.drv_stats.rx_ether_csum_err: 0
Additional observations:
- Hardware checksum offload (IPv4, TCP, UDP) works correctly — all
csum_valid counters match csum_exists.
- No system errors, no watchdog timeouts, no transmit queue overflows.
- The 6 TX errors appear related to early link negotiation.
- The options field (0x9b) is limited compared to em0 — missing TSO, LRO,
jumbo frames, WoL, etc.
- Testing was via VFIO passthrough, so the NIC had direct hardware access.
I'm happy to run additional tests or provide more data if useful. I
understand the driver was recently imported from OpenBSD and is still
maturing — just wanted to contribute a data point.
Cheers,
Chris
[-- Attachment #2 --]
<div dir="ltr">Hi all,<br><br>I've been testing the rge(4) driver on FreeBSD 16.0-CURRENT (main-n283549-6d37c3db62ba, Feb 2 2026) with a Realtek RTL8125 2.5GbE Controller via VFIO/PCI passthrough from a Linux (Arch) host into a QEMU/KVM virtual machine.<br><br>The driver attaches and works — DHCP, ping, DNS resolution, and general traffic all function correctly. However, the NIC negotiates at 1000baseT only, and 2500baseT is not available as a media type.<br><br>Attempting to set 2500baseT returns:<br> ifconfig rge0 media 2500baseT mediaopt full-duplex<br> ifconfig: unknown media subtype: 2500baseT<br><br>The OpenBSD rge(4) man page documents the RTL8125 as capable of 2500Mbps operation, and the FreshPorts entry for net/realtek-rge-kmod lists it as a 2500baseT adapter. It appears the FreeBSD port does not yet expose this media type.<br><br>Hardware:<br> Realtek RTL8125 2.5GbE Controller (rev 05)<br> Gigabyte subvendor (vendor=0x10ec device=0x8125 subvendor=0x1458 subdevice=0xe000)<br><br>dmesg:<br> rge0: <RTL8125> port 0xc000-0xc0ff mem 0xc000000000-0xc00000ffff,0xc000010000-0xc000013fff irq 11 at device 4.0 on pci0<br> rge0: Ethernet address: xx:xx:xx:xx:xx:xx<br> rge0: link state changed to DOWN<br> rge0: link state changed to UP<br><br>pciconf -lv:<br> rge0@pci0:0:4:0: class=0x020000 rev=0x05 hdr=0x00 vendor=0x10ec device=0x8125 subvendor=0x1458 subdevice=0xe000<br> vendor = 'Realtek Semiconductor Co., Ltd.'<br> device = 'RTL8125 2.5GbE Controller'<br> class = network<br> subclass = ethernet<br><br>ifconfig rge0:<br> rge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500<br> options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM><br> ether xx:xx:xx:xx:xx:xx<br> media: Ethernet autoselect (1000baseT <full-duplex>)<br> status: active<br><br>sysctl dev.rge.0 (excerpt):<br> dev.rge.0.mac_stats.rge_tx_er: 6<br> dev.rge.0.mac_stats.rge_rx_ok: 26274<br> dev.rge.0.mac_stats.rge_tx_ok: 13115<br> dev.rge.0.drv_stats.intr_system_errcnt: 0<br> dev.rge.0.drv_stats.tx_watchdog_timeout_cnt: 0<br> dev.rge.0.drv_stats.transmit_full_cnt: 0<br> dev.rge.0.drv_stats.rx_ether_csum_err: 0<br><br>Additional observations:<br>- Hardware checksum offload (IPv4, TCP, UDP) works correctly — all csum_valid counters match csum_exists.<br>- No system errors, no watchdog timeouts, no transmit queue overflows.<br>- The 6 TX errors appear related to early link negotiation.<br>- The options field (0x9b) is limited compared to em0 — missing TSO, LRO, jumbo frames, WoL, etc.<br>- Testing was via VFIO passthrough, so the NIC had direct hardware access.<br><br>I'm happy to run additional tests or provide more data if useful. I understand the driver was recently imported from OpenBSD and is still maturing — just wanted to contribute a data point.<br><br>Cheers,<br>Chris</div>
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGnpK8Zj5SW6DGeLwTm50RSW0FVKuAxC8A5TXmEzkcBVbAthSg>
