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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.