Well, recently Realtek has also released it's very low priced 10GbE PCI-E NIC, purchased it from China and it's less than $40.
Tested on my CWWK N100, running OpenWrt 24.10.3, with kmod-r8127-rss and things working pretty smooth.
With the other end connecting to HP Pro desk with Mellanox 10G using RJ45 SFP+, negotiation is quick:
[ 955.164429] r8127: eth2: Link is Up - 10Gbps/Full
Of course this won't be the final working system, because I made a stupid mistake: The Realtek 8127 PCI-E has 2 variants, one is PCI-E v4.0 x1, the other one is PCI-E v3.0x2, I completely forgot that my CWWK N100 has PCI-E v3.0 only and so I got degraded performance (iperf getting < 7Gbps).
However in future I might just get another platform with 2 PCI-E v4.0 slots to plug 2 cards: 1 with SFP+ dual port (uses at least x4/x8 slot), the other one will be this card (then the x1 is useful here) for internet facing (because internet provider only provides ethernet connection, this can avoid using RJ45 SFP+ module)
Unless you need multi-port and can get away with 10GBe-only, rtl8127 is more sensible in most cases, because it's running much cooler and does support 0.01/0.1/1/2.5/5/10 GBe, which makes it more compatible for contemporary home uses (and the prices are getting attractive, especially if you order from abroad).
Please post some alternatives you have reviewed for such platforms! Would be very interested to know what you found. As you pointed out, finding PCIe 10G boards is easy but not really worth it if the underlying platform does not have the bandwidth.
You are likely right and may have to boot a bleeding edge live usb of linux:
# dmesg | grep ASPM
# lspci -vvv
At idle, you should see C10 power state if ASPM is fully working.
Note 1: "CWWK N100" and other chinese boards may have completely broken ASPM support.
Note 2: Your ethernet appears to be i226 and one of intel's solution to make it work is turning off ASPM.
Alright, I can put it into my HP ProDesk 400G6 PC and check again later.
But I think it's related to driver as well? Looks like the current r8127 driver in OpenWrt is a backport, not sure any ASPM support there.
Manufacturer - BIOS/UEFI must support
PCI slot - connected to chipset, not cpu lanes
Driver - (https://github.com/openwrt/rtl8127) Looks to be latest.
Kernel - 6.15 might be needed?
Your HP should work if that "CWWK" doesn't. Booting fedora rawhide should be enough. Considering how tiny that heatsink is, ASPM might not do much.
Card supports ASPM fully (+), but is not active (-). Fastest way is to just turn on "Native ASPM" or whatever it is called in your BIOS setting. This forces ASPM globally across your entire system.
You know it worked if everything in "L1SubCtl1" has a + next to it.
OT, but if you want to go down the rabbit hole of getting your entire system to have it on: lspci -vv | awk '/ASPM/{print $0}' RS= | grep --color -P '(^[a-z0-9:.]+|ASPM )'
I actually observed this and went into BIOS, according to the manual of HP my setting should be already enabling that, however from dmesg I see that "ASPM setting not controlled by Linux kernel" which makes me confuse.
BTW, I just wiped my Linux Mint, and installed with Debian Trixie (using 6.16 kernel from backports), I know that since 6.16 the Realtek 8126/8127 both upstream into kernel (so it's different from Linux Mint I have to install vendor driver DKMS module), and I see that both new NICs are absorbed into r8169 driver.
That's a weird error. Triple check there aren't multiple places to turn on ASPM.
If OS controls ASPM, dmesg should provide:
[ 10.443179] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
Fedora rawhide is what I would recommend for testing out bleeding edge hardware/kernels.
My mistake. 6.16 should be in r8169
/sys/bus/pci/drivers/r8169/*/link/
" * " = whatever PCI slot you have e.g.
root@debian:/sys/bus/pci/drivers/r8169/0000:84:00.0/link# ls
clkpm l1_1_aspm l1_1_pcipm l1_2_aspm l1_2_pcipm l1_aspm
0 = - (disabled)
1 = + (enabled)
AFAIK, all mediatek drivers still have ASPM disabled by default. When Native ASPM is turned on, the driver will send this to dmesg informing you the default is being overridden by BIOS:
r8169 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control