Can the throughput of an AX88179-based USB Ethernet adapter be improved?

FreeBSD Friends,

Today I tried an Amazon Basics USB 3.0 to 10/100/1000 Gigabit Ethernet Internet Adapter on a ThinkPad X1 Carbon Gen 9 running 13.2-RELEASE.

It seems a little slow:

Desired TX~ 940 Mbps
Actual TX~ 515 Mbps
Desired RX~ 940 Mbps
Actual RX~ 168 Mbps

The test is iperf3 -s on one end, and iperf3 -c hostname on the other.

Is this throughput normal? And if not, how can I improve it?

Thank you very much.

Its kernel messages:
Code:
axge0 on uhub0
axge0: <NetworkInterface> on usbus1
miibus0: <MII bus> on axge0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 3 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
ue0: <USB Ethernet> on axge0
ue0: Ethernet address: a0:ce:c8:85:46:37

How it shows up:
Code:
# usbconfig | grep AX88179
ugen1.8: <ASIX Elec. Corp. AX88179> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (124mA)
# ifconfig ue0
ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
        ether a0:ce:c8:85:46:37
        inet 192.168.32.20 netmask 0xffffff00 broadcast 192.168.32.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

IMG_4715.JPG

IMG_4714.JPG
 
I think you need a red (USB 3.2 Gen 2) USB port with a USB 3 AX88179 chipset Ethernet adapter to get the throughput that you want.

I use that combination on my ZFS server to connect to the administrative LAN (providing access to the default router). There's a timing problem with the ue0 interface when the system boots, and I had to add the following to /etc/rc.local to get the default route up:
Code:
#!/bin/sh

# There's a fleeting message on the console at boot indicating that a "route"
# command has failed.  The USB port used by ue0 is coming up AFTER the default
# route is set (through ue0) and this is causing the default route to be
# missing.  So I'm fixing that, and logging it for further observation.
# PMC.  Sat Oct 29 11:47:39 AEDT 2022.

unset defaultrouter
[ -r /etc/rc.conf ] && . /etc/rc.conf
[ "X$defaultrouter" = "X" ] && exit 0
/usr/bin/netstat -rn | /usr/bin/grep -q "^default" && exit 0
ME=$(/usr/bin/basename $0)
MSG="setting default route to \"$defaultrouter\""
echo "$ME: $MSG"
/usr/bin/logger -t "$ME" "$MSG"
/sbin/route add -net 0.0.0.0/0 $defaultrouter
 
I have D-link DUB-1312 usb3.0 (RTL8169s/8110s/8211 1000Base-T) which perform similar around send/receive 470Mbits/sec but with very high rate of retransmissions Retr~450 in iperf3. On the same laptop i have another build-in ethernet Intel 82579LM which give around send/receive 930Mbits/sec with 0 retransmissions.

This is on HP Folio9470m with FreeBSD 13.1 using axge driver. On the same laptop with another OS and official driver the same usb ethernet adapter performance is ~860Mbits/sec send/receive.
 
Back
Top