Ethernet auto-negotiation defaults to 1Gbps between QNA-UC5G1T and X550T2BLK

I’m attempting to transfer files off my old Synology NAS to my new TrueNAS Scale SFF server and while things are going at a modest rate, I wanted to see if I could speed things up by leveraging its network capabilities.

The idea came to me because my QNA-UC5G1T shown up in the mail today and that made me wonder if I could somehow speed things up.

My SFF server is fitted with an Intel 10GbE X550T2BLK NIC and the Synology DS220+ is using the QNA-UC5G1T that I just got my hands on and I proceeded to first install the requisite drivers on their respective machines…

# TrueNAS server output
truenas@truenas:~$ sudo modinfo ixgbe
filename:       /lib/modules/5.10.120+truenas/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
version:        5.10.2
license:        GPL
description:    Intel(R) 10GbE PCI Express Linux Network Driver
author:         Intel Corporation, <[email protected]>
srcversion:     92DDE9F664CEE1615486B42
alias:          pci:v00008086d000015E5sv*sd*bc*sc*i*
alias:          pci:v00008086d000015E4sv*sd*bc*sc*i*
alias:          pci:v00008086d000015CEsv*sd*bc*sc*i*
alias:          pci:v00008086d000015CCsv*sd*bc*sc*i*
[cropped]
# Synology server output
synology@synology:~$ lsmod | grep aqc111
aqc111                 16145  0 
usbnet                 20412  1 aqc111
usbcore               199863  12 etxhci_hcd,usblp,uhci_hcd,usb_storage,aqc111,ehci_hcd,ehci_pci,usbhid,usbnet,xhci_hcd,xhci_pci

Then, I connected the two of them together without any intermediary with a CAT6 cable (I don’t have any switch or router that isn’t 1Gbps) and tried to see the kind of connection it would negotiate.

It defaulted to 1000Mbps and I couldn’t tell why.

Synology Diagnostics Info

lsusb (serial numbers redacted)

synology@synology:~$ lsusb
|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-2         0bda:5411:0117 09  2.10  480MBit/s 0mA 1IF  (Generic 4-Port USB 2.0 Hub ffffffffffffffffffffffffffffffffffff) hub
    |__1-2.3     051d:0002:0090 00  2.00   12MBit/s 2mA 1IF  (American Power Conversion Back-UPS RS 1000G FW000.000.0 USB FW:L10 FFFFFFFFFFFFFFF)
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation FFFFFFFFFFFFFFFFFFFFF)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.180+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__2-1         1c04:0015:0101 00  3.20 5000MBit/s 896mA 1IF  (QNAP QNAP QNA-UC5G1T USB to 5GbE Adapter FFFFFFF)
  |__2-2         0bda:0411:0117 09  3.00 5000MBit/s 0mA 1IF  (Generic 4-Port USB 3.0 Hub ffffffffffffffffffffffffffffffffffff) hub
    |__2-2.4     0781:5583:0100 00  3.20 5000MBit/s 896mA 1IF  ( USB  SanDisk 3.2Gen1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)

ethtool (eth2 corresponds to the QNAP device)

synology@synology:~$ sudo ethtool eth2
Settings for eth2:
	Supported ports: [ TP MII ]
	Supported link modes:   100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: MII
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: g
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

dmesg

[ 2046.505902] mii: module verification failed: signature and/or required key missing - tainting kernel
[ 2046.519430] usbcore: registered new interface driver aqc111
[ 2046.531514] aqc111 2-1:1.0 eth2: register 'aqc111' at usb-0000:00:15.0-1, QNAP QNA-UC5G1T USB to 5GbE Adapter, ff:ff:ff:ff:ff:ff
[ 2047.768234] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
[ 2054.060882] aqc111 2-1:1.0 eth2: Link Speed 1000, USB 3
[ 2054.084161] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
[ 6463.693541] perf interrupt took too long (2501 > 2500), lowering kernel.perf_event_max_sample_rate to 50000

TrueNAS Diagnostics Info

lsusb

Not Applicable

ethtool (enp119s0f0 corresponds to the Intel NIC)

truenas@truenas:~$ sudo ethtool enp119s0f0
Settings for enp119s0f0:
	Supported ports: [ TP ]
	Supported link modes:   100baseT/Full
	                        1000baseT/Full
	                        10000baseT/Full
	                        2500baseT/Full
	                        5000baseT/Full
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  100baseT/Full
	                        1000baseT/Full
	                        10000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Unknown! (255)
	Auto-negotiation: on
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
	Supports Wake-on: d
	Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: no

dmesg

truenas@truenas:~$ sudo dmesg | grep ixgbe
[    4.237237] ixgbe: loading out-of-tree module taints kernel.
[    4.237237] ixgbe: loading out-of-tree module taints kernel.
[    4.252229] ixgbe 0000:77:00.0 0000:77:00.0 (uninitialized): ixgbe_check_options: FCoE Offload feature enabled
[    4.634525] ixgbe 0000:77:00.0: Multiqueue Enabled: Rx Queue count = 16, Tx Queue count = 16 XDP Queue count = 0
[    4.713316] ixgbe 0000:77:00.0: 31.504 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x4 link)
[    4.762310] ixgbe 0000:77:00.0 eth0: MAC: 4, PHY: 3, PBA No: FFFFFF-001
[    4.762819] ixgbe 0000:77:00.0: ff:ff:ff:ff:ff:ff
[    4.763181] ixgbe 0000:77:00.0 eth0: Enabled Features: RxQ: 16 TxQ: 16 FdirHash vxlan_rx
[    4.768282] ixgbe 0000:77:00.0 eth0: Intel(R) 10 Gigabit Network Connection
[    4.772275] ixgbe 0000:77:00.1 0000:77:00.1 (uninitialized): ixgbe_check_options: FCoE Offload feature enabled
[    5.152489] ixgbe 0000:77:00.1: Multiqueue Enabled: Rx Queue count = 16, Tx Queue count = 16 XDP Queue count = 0
[    5.233145] ixgbe 0000:77:00.1: 31.504 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x4 link)
[    5.280272] ixgbe 0000:77:00.1 eth1: MAC: 4, PHY: 3, PBA No: FFFFFF-001
[    5.280785] ixgbe 0000:77:00.1: ff:ff:ff:ff:ff:ff
[    5.281147] ixgbe 0000:77:00.1 eth1: Enabled Features: RxQ: 16 TxQ: 16 FdirHash vxlan_rx
[    5.287801] ixgbe 0000:77:00.1 eth1: Intel(R) 10 Gigabit Network Connection
[    5.288947] ixgbe 0000:77:00.0 enp119s0f0: renamed from eth0
[    5.308382] ixgbe 0000:77:00.1 enp119s0f1: renamed from eth1
[  238.905704] ixgbe 0000:77:00.0: registered PHC device on enp119s0f0
[  263.199903] ixgbe 0000:77:00.1: registered PHC device on enp119s0f1
[  276.568376] ixgbe 0000:77:00.1 enp119s0f1: NIC Link is Up 1 Gbps, Flow Control: RX/TX
[ 3914.938223] ixgbe 0000:77:00.1 enp119s0f1: NIC Link is Down
[ 8055.959814] ixgbe 0000:77:00.1 enp119s0f1: NIC Link is Up 1 Gbps, Flow Control: RX/TX

This got me thinking cause even if USB3.0 is a bottleneck for 5GbE speeds, it is enough for 2.5GbE and I’m surprised the QNAP device isn’t even reporting anything above 1GbE as a supported link mode.

The ixgbe was downloaded and installed directly from Intel (source) while the aqc111 driver was courtesy of the community efforts made by bb-qq (source).

The appropriate versions were used (for ixgbe, it was corresponding the kernel version, 5.10) and for aqc111, it was the aqc111-geminilake-1.3.3.0-5.spk package (corresponding to the Celeron inside the DS220+)

The DS220+ is currently running on DSM 7.0.1-42218 Update 5 and the SFF server is running on TrueNAS-SCALE-22.02.2.1.

Any help would be really neat!