USB Ethernet Adapter setup issues



  • Hi,

    I am building firewall using pfsense 2.4.0-BETA Dell E6330, with Microsoft USB Ethernet adapter. Even though it is not on the compatible HW list, I am able to bring it up as LAN interface, and the firewall works properly with multiples PCs on the LAN. However, the throughput was slow. The same USB Ethernet adapter was able to reach gigabit throughput under Debian 9.

    Is there any driver configuration needed to properly setup this USB Ethernet device ? or there is a limitation in the current driver ?

    Thanks for any directions.

    DETAILS -

    Using iperf3 to test the throughput over the USB Ethernet interface -

    Download -

    [  5] local 192.168.60.1 port 37618 connected to 192.168.60.129 port 5201
    [ ID] Interval          Transfer    Bitrate        Retr  Cwnd
    [  5]  0.00-1.00  sec  11.0 MBytes  92.3 Mbits/sec    0    177 KBytes     
    [  5]  1.00-2.00  sec  11.0 MBytes  92.1 Mbits/sec    0    251 KBytes     
    [  5]  2.00-3.00  sec  11.0 MBytes  91.9 Mbits/sec    0    308 KBytes     
    [  5]  3.00-4.00  sec  10.9 MBytes  91.4 Mbits/sec    0    355 KBytes     
    [  5]  4.00-5.00  sec  10.9 MBytes  91.6 Mbits/sec    0    398 KBytes     
    [  5]  5.00-6.00  sec  10.9 MBytes  91.6 Mbits/sec    0    435 KBytes     
    [  5]  6.00-7.00  sec  10.9 MBytes  91.3 Mbits/sec    0    470 KBytes     
    [  5]  7.00-8.00  sec  10.9 MBytes  91.5 Mbits/sec    0    503 KBytes     
    [  5]  8.00-9.00  sec  10.9 MBytes  91.6 Mbits/sec    0    533 KBytes     
    [  5]  9.00-10.00  sec  10.9 MBytes  91.5 Mbits/sec    0    562 KBytes


    [ ID] Interval          Transfer    Bitrate        Retr
    [  5]  0.00-10.00  sec  109 MBytes  91.7 Mbits/sec    0            sender
    [  5]  0.00-10.00  sec  109 MBytes  91.2 Mbits/sec                  receiver

    Upload -

    [  4] local 192.168.60.129 port 38370 connected to 192.168.60.1 port 5201
    [ ID] Interval          Transfer    Bandwidth      Retr  Cwnd
    [  4]  0.00-1.00  sec  5.63 MBytes  47.3 Mbits/sec  198  25.5 KBytes
    [  4]  1.00-2.00  sec  4.56 MBytes  38.2 Mbits/sec  161  33.9 KBytes
    [  4]  2.00-3.00  sec  5.20 MBytes  43.6 Mbits/sec  222  24.0 KBytes
    [  4]  3.00-4.00  sec  5.38 MBytes  45.1 Mbits/sec  191  29.7 KBytes
    [  4]  4.00-5.00  sec  4.37 MBytes  36.7 Mbits/sec  166  31.1 KBytes
    [  4]  5.00-6.00  sec  3.19 MBytes  26.8 Mbits/sec  147  25.5 KBytes
    [  4]  6.00-7.00  sec  5.38 MBytes  45.1 Mbits/sec  193  29.7 KBytes
    [  4]  7.00-8.00  sec  5.47 MBytes  45.9 Mbits/sec  200  26.9 KBytes
    [  4]  8.00-9.00  sec  5.47 MBytes  45.9 Mbits/sec  198  24.0 KBytes
    [  4]  9.00-10.00  sec  5.38 MBytes  45.1 Mbits/sec  197  31.1 KBytes


    [ ID] Interval          Transfer    Bandwidth      Retr
    [  4]  0.00-10.00  sec  50.0 MBytes  42.0 Mbits/sec  1873            sender
    [  4]  0.00-10.00  sec  49.9 MBytes  41.8 Mbits/sec                  receiver

    Device Information from

    usbconfig -d ugen0.4 dump_device_desc

    ugen0.4: <ethernet adapter="" microsoft="">at usbus0, cfg=1 md=HOST spd=SUPER (5.0Gbps) pwr=ON (64mA)

    bLength = 0x0012
      bDescriptorType = 0x0001
      bcdUSB = 0x0300
      bDeviceClass = 0x0000  <probed by="" interface="" class="">bDeviceSubClass = 0x0000
      bDeviceProtocol = 0x0000
      bMaxPacketSize0 = 0x0009
      idVendor = 0x045e
      idProduct = 0x07c6
      bcdDevice = 0x3000
      iManufacturer = 0x0001  <microsoft>iProduct = 0x0002  <ethernet adapter="">iSerialNumber = 0x0006  <02BDFF000000>
      bNumConfigurations = 0x0002

    I bring up the ethernet interface via
    usbconfig -d ugen0.4 set_config 1

    The output from ifconfig

    ue0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
      ether 58:82:a8:8d:96:fc
      hwaddr 58:82:a8:8d:96:fc
      inet6 fe80::5a82:a8ff:fe8d:96fc%ue0 prefixlen 64 scopeid 0x7
      inet 192.168.60.1 netmask 0xffffff00 broadcast 192.168.60.255
      nd6 options=21 <performnud,auto_linklocal></performnud,auto_linklocal></up,broadcast,running,simplex,multicast></ethernet></microsoft></probed></ethernet>



  • USB network adapter is usually accompanied with the word issues, replace it or use vlans.



  • Thanks for the suggestion. However In my case, I have Fios Gigabit service, and would like to get to the full gigabit speed for both WAN / LAN interface.

    I got another USB Ethernet adapter with AX88179 Chip (its on FreeBSD supported devices list), the throughput is about the same as the original 'Microsoft USB Ethernet adapter'.

    I also setup the same pc to dual boot with Debian 9, with the same test approaches, I was able to get to full gigabit speed with no retr.

    I would like to get any suggestions regarding the USB Ethernet setup; thanks in advanced.


  • Netgate Administrator

    Unfortunately I'm not going to tell you anything different here. USB Ethernet is bad and will always be bad even if you can get better than what you're seeing currently.

    You check for other configs. I could believe it's running in usb 1.0 mode with throughput that low.

    But you will see far better throughput with VLANs and a switch.

    Steve



  • @keouchao:

    …would like to get to the full gigabit speed for both WAN / LAN interface.

    Then your best bet are Intel NICs. Just forget that USB-Ethernet adapters exist. They are useless in your case and will never get anything near Gbps speed.



  • @keouchao:

    Thanks for the suggestion. However In my case, I have Fios Gigabit service, and would like to get to the full gigabit speed for both WAN / LAN interface.

    I got another USB Ethernet adapter with AX88179 Chip (its on FreeBSD supported devices list), the throughput is about the same as the original 'Microsoft USB Ethernet adapter'.

    I also setup the same pc to dual boot with Debian 9, with the same test approaches, I was able to get to full gigabit speed with no retr.

    I would like to get any suggestions regarding the USB Ethernet setup; thanks in advanced.

    You can either buy different hardware, or use something other than pfsense as your firewall.



  • USB Ethernet adapters are bad, don't use them. If you must: get a supported one but don't expect high reliability or speed. Desktop users often don't notice problems because the way they use it often doesn't show much problems. Firewalls/gateways have a different usage pattern and different needs, so the same hardware might not work as well as you think. On top of that, the drivers are often lacking and have firmwares missing (which is what you currently might be experiencing – the chip [ not made by microsoft ] probable is functioning in a basic 100Mbit mode because the driver in FreeBSD can't or won't load the chip firmware via USB into the adapter to enable the extra functions).