rge(4) RTL8125 2.5GbE testing: 2500baseT media type not available on 16.0-CURRENT
Chris Longros <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.net |
|---|---|
| Message-ID | <CAGnpK8Zj5SW6DGeLwTm50RSW0FVKuAxC8A5TXmEzkcBVbAthSg@mail.gmail.com> |
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