USB 3.0 1Gbit/s NIC with AX88179 Chipset only performing on ~25Mbit/s



  • Hi all

    I've plugged in a AX88179 based USB 3.0 1Gbit/s NIC to a USB 3.0 Port. I'm using axge driver built in FreeBSD and pfSense.

    I can not reach more speed as 20-40Mbit/s (max). The same behaviour on a USB 2.0 Port.
    I can reproduce the problem with pfSense 2.2.6 and 2.3.4 (both x64).

    ipconfig showing: media: Ethernet autoselect (1000baseT <full-duplex,master>)
    usbconfig showing: ugen0.7: <ax88179 asix="" elec.="" corp.="">> at usbus0, cfg=0 md=HOST spd=SUPER>> (5.0Gbps) pwr=ON (124mA)
    No packet loss or re-transmit detected; Just poor performance.

    If using internal <realtek 8111="" 8168="" b="" c="" cp="" d="" dp="" e="" f="" g="" pcie="" gigabit="" ethernet="">there is no such speed limit and good performance.

    Facts:
    USB 1.0/1.1 Full-Speed - 0,2 MByte/s
    USB 2.0 Highspeed - 60 MByte/s
    USB 3.0 Superspeed - 625 MByte/s

    Because of 0.2 MByte/s limitation by USB 1.0, my question is: Does the pfSense FreeBSD Kernel come with support of USB 2.0/3.0?
    If not, how can i add USB 2.0/3.0 support for my Intel BayTrail USB 3.0 controller?</realtek></ax88179></full-duplex,master>



  • I found USB 2.0/3.0 support should be available in the kernel:

    https://github.com/pfsense/FreeBSD-src/blob/devel/sys/amd64/conf/GENERIC

    usbconfig dump_device_desc

    (…)
    ugen0.7: <ax88179 asix="" elec.="" corp.="">at usbus0, cfg=0 md=HOST spd=SUPER
    (5.0Gbps) pwr=ON (124mA)

    bLength = 0x0012
      bDescriptorType = 0x0001
      bcdUSB = 0x0300
      bDeviceClass = 0x00ff  <vendor specific="">bDeviceSubClass = 0x00ff
      bDeviceProtocol = 0x0000
      bMaxPacketSize0 = 0x0009
      idVendor = 0x0b95
      idProduct = 0x1790
      bcdDevice = 0x0100
      iManufacturer = 0x0001  <asix elec.="" corp.="">iProduct = 0x0002  <ax88179>iSerialNumber = 0x0003  <00000000000001>
      bNumConfigurations = 0x0001

    plugged into this USB controller:

    dmesg | grep -i usb

    xhci0: <intel baytrail="" usb="" 3.0="" controller="">mem 0xd0800000-0xd080ffff irq 20
    at device 20.0 on pci0 usbus0 on xhci0
    ehci0: <intel baytrail="" usb="" 2.0="" controller="">mem 0xd0815000-0xd08153ff irq 23
    at device 29.0 on pci0
    usbus1: waiting for BIOS to give up control
    usbus1: timed out waiting for BIOS
    usbus1: EHCI version 1.0
    usbus1 on ehci0
    usbus0: 5.0Gbps Super Speed USB v3.0
    usbus1: 480Mbps High Speed USB v2.0
    ugen1.1: <intel>at usbus1
    uhub0: <intel 1="" 9="" ehci="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus1
    ugen0.1: <0x8086> at usbus0
    uhub1: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
    ugen0.2: <generic>at usbus0
    umass0: <generic 0="" 1="" usb="" storage,="" class="" 0,="" rev="" 2.00="" 94.51,="" addr="">on usbus0
    ugen0.3: <vendor 0x05e3="">at usbus0
    uhub2: <vendor 2="" 9="" 0x05e3="" usb2.0="" hub,="" class="" 0,="" rev="" 2.00="" 85.36,="" addr="">on
    usbus0
    ugen1.2: <vendor 0x8087="">at usbus1
    uhub3: <vendor 2="" 9="" 0x8087="" product="" 0x07e6,="" class="" 0,="" rev="" 2.00="" 0.14,="" addr="">on
    usbus1
    ugen0.4: <pcasl>at usbus0
    ukbd0: <pcasl remot="" control="">on usbus0
    uhid0: <pcasl remot="" control="">on usbus0
    ugen0.5: <vendor 0x05e3="">at usbus0
    uhub4: <vendor 4="" 9="" 0x05e3="" usb2.0="" hub,="" class="" 0,="" rev="" 2.00="" 85.36,="" addr="">on
    usbus0
    ugen0.6: <vendor 0x0461="">at usbus0
    ukbd1: <vendor 0="" 5="" 0x0461="" usb="" wired="" keyboard,="" class="" 0,="" rev="" 2.00="" 1.50,="" addr="">on usbus0
    uhid1: <vendor 0="" 5="" 0x0461="" usb="" wired="" keyboard,="" class="" 0,="" rev="" 2.00="" 1.50,="" addr="">on usbus0
    ugen0.7: <asix elec.="" corp.="">at usbus0
    axge0: <networkinterface>on usbus0
    ue0: <usb ethernet="">on axge0

    dmesg | grep -i axge

    axge0: <networkinterface>on usbus0
    miibus2: <mii bus="">on axge0
    ue0: <usb ethernet="">on axge0
    axge0: at uhub1, port 7, addr 6 (disconnected)
    axge0: <networkinterface>on usbus0
    miibus2: <mii bus="">on axge0
    ue0: <usb ethernet="">on axge0
    axge0: <networkinterface>on usbus0
    miibus2: <mii bus="">on axge0
    ue0: <usb ethernet="">on axge0

    ifconfig

    (...)
    ue0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
            options=8000b <rxcsum,txcsum,vlan_mtu,linkstate>ether a4:f7:d0:00:19:a0
            inet6 fe80::a6f7:d0ff:fe00:19a0%ue0 prefixlen 64 scopeid 0x7
            inet 1.2.3.4 netmask 0xfffffff8 broadcast 1.2.3.9
            inet 1.2.3.5 netmask 0xfffffff8 broadcast 1.2.3.9
            inet 1.2.3.6 netmask 0xfffffff8 broadcast 1.2.3.9
            inet 1.2.3.7 netmask 0xfffffff8 broadcast 1.2.3.9
            inet 1.2.3.8 netmask 0xfffffff8 broadcast 1.2.3.9
            nd6 options=21 <performnud,auto_linklocal>media: Ethernet autoselect (1000baseT <full-duplex,master>)
            status: active

    netstat -s | egrep -i 'loss|retran'

    0 data packets (0 bytes) retransmitted
                    0 data packets unnecessarily retransmitted
            0 retransmit timeouts
                    0 retransmitted
                    0 retransmitted DATA chunks
                    0 fast retransmitted DATA chunks
                    0 TSN's marked for Fast Retran

    #usbdump -i usbus0 -f 7 -s 65535 | grep -i ERR

    No errors get recorded.

    Did someone of you ever managed to reach a higher bandwidth with axge driver
    and AX88179 chipset?</full-duplex,master></performnud,auto_linklocal></rxcsum,txcsum,vlan_mtu,linkstate></up,broadcast,running,simplex,multicast></usb></mii></networkinterface></usb></mii></networkinterface></usb></mii></networkinterface></usb></networkinterface></asix></vendor></vendor></vendor></vendor></vendor></pcasl></pcasl></pcasl></vendor></vendor></vendor></vendor></generic></generic></intel></intel></intel></intel></ax88179></asix></vendor></ax88179>



  • those are notorious for high cpu use and slow speeds; can you add a pcie card?



  • I use AX88179 usb nic with Firmware Version: ASIX AX88179 USB 3.0 Gigabit Ethusb-0000:05:00.0-1 in a pfSense vm using vmxnet3 driver. No complaints so far. Interested in how you test.



  • USB NIC's are Generally not advisable, i would recommend using a PCI-E NIC by Intel. or Re branded as HP as thats my currently Daily for PFSense.



  • Hi all

    those are notorious for high cpu use and slow speeds; can you add a pcie card?
    I can not identify high CPU load/use. Unfortanetly, i can not add a PCIe card.

    I use AX88179 usb nic with Firmware Version: ASIX AX88179 USB 3.0 Gigabit Ethusb-0000:05:00.0-1 in a pfSense vm using vmxnet3 driver. No complaints so far. Interested in how you test.
    I use the axge driver (https://www.freebsd.org/cgi/man.cgi?query=axge&sektion=4) on a physical box - maybe the vmxnet3 driver on a virtual box is more stable.

    I configured tagged VLANs for now, but hope to be able to use the USB NIC somedays.