USB gigabit network adapter - or alternatives



  • Hi Forum,

    I have an Intel NUC with the interfaces configured using VLANs and a managed switch. Recently, the Internet connection was upgraded to 1,000 Mb/s. The combination of hardware and upstream speed creates a bottleneck, as all Internet traffic has to pass through the same gigabit network adapter.
    In the first place, I have tried to use an USB-C gigabit network adapter with Realtek RTL8153 chipset. From reading other posts here and on FreeBSD Forum, I know this might not be the best solution. Buying new (expensive) hardware is not an option at this time, and I don't know what else I should try.
    To be able to use the adapter, I had to add
    hw.usb.quirk.0="0x2d1c 0x8153 0 0xffff UQ_CFG_INDEX_1
    to /boot/loader.conf.local.
    The adapter is working as the WAN interface, but it seems to support only 100 Mb/s.
    In order to use the newest URE driver, I upgraded to the pfSense 2.5.0-DEVELOPMENT branch. That didn't really change anything. The output from ifconfig ue0:

    ue0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
            ether 9c:eb:e8:c5:85:41
            inet6 fe80::9eeb:e8ff:fec5:8541%ue0 prefixlen 64 scopeid 0x6
            inet xxx.xxx.xxx.xxx netmask 0xfffffff8 broadcast yyy.yyy.yyy.239
            nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
    

    I'll appreciate any advice and any similar experiences.

    Best regards,
    Jon Theil Nielsen


  • Netgate Administrator

    How much throttling were you seeing just using VLANs?

    Most USB NICs are flawed in some way, some are outright terrible! It's almost impossible to recommend using a USB NIC but those based on the axe driver seem most reliable. I'm not sure any are USB 3 though so you won't see actual gigabit throughput.

    Steve



  • Thank you so much for the answer.

    I don't know if the NIC should should deliver gigabit throughput. Some are sold as such. I don't know how to check it. I guess the output of usbconfig is not enough:

    usbconfig -d 1.2
    ugen1.2: <Realtek USB 10/100/1000 LAN> at usbus1, cfg=1 md=HOST spd=SUPER (5.0Gbps) pwr=ON (64mA)
    

    I haven't configured any throttling through Firewall/Traffic Shaper. Should I do that? Or does the firewall somehow do another type of throttling - and if so, how do I measure that?

    Thanks,
    Jon


  • Netgate Administrator

    The device can report whatever it wants in the description there. It is USB3 though so that's not a restriction.

    Is it actually linked at 100Mb or just only passes that? What does ifconfig -vv ue0 show?

    Steve



  • The NIC in question is actually connected to an USB-C port.

    As I don't want other people suffer too much, I have restored the old VLAN configuration.
    Right now, I have no network cables attached to the USB NIC. The requested output:

    ifconfig -vv ue0
    ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            ether 9c:eb:e8:c5:85:41
            inet6 fe80::9eeb:e8ff:fec5:8541%ue0 prefixlen 64 scopeid 0x6
            inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
            nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
    

    Regards,
    Jon



  • BTW,
    My signature is not correct any more. Due to a silly rule, I can't change it.
    The system is
    Intel® NUC Kit NUC8i7BEH


  • Netgate Administrator

    Hmm, it doesn't report the media status? Odd. Can you connect a cable to it just so it will link and see if it reports that?

    Steve



  • One other alternative to consider might to try an adapter based on the ASIX axge driver (assuming this works as well as those adapters based on the ASIX axe driver):

    https://www.freebsd.org/cgi/man.cgi?query=axge&apropos=0&sektion=4&manpath=FreeBSD+11.2-RELEASE+and+Ports&arch=default&format=html

    https://www.amazon.com/Plugable-Ethernet-Gigabit-10-100-1000-Compatible/dp/B00AQM8586

    Hope this helps.



  • Yeah, it's strange with the ifconfig command. Connecting a network cable doesn't change anything. Has it something to do with the driver not being loaded?

    I think I'll give it a try with one of the ASIX adapters. But I'm a little bit confused: The manual says "Set 1000Mbps (Gigabit Ethernet) operation (AX88178 only)". But as I see it, the chipset should be AX88179?

    Regards,
    Jon



  • @jontheil said in USB gigabit network adapter - or alternatives:

    Yeah, it's strange with the ifconfig command. Connecting a network cable doesn't change anything. Has it something to do with the driver not being loaded?

    I think I'll give it a try with one of the ASIX adapters. But I'm a little bit confused: The manual says "Set 1000Mbps (Gigabit Ethernet) operation (AX88178 only)". But as I see it, the chipset should be AX88179?

    Regards,
    Jon

    Hi @jontheil - I think this might be an accidental mistake / oversight in the manual entry for axge. If you look at the entry for axe, only the ASIX AX88178 has 1000Mbit support among those chipsets listed:

    https://www.freebsd.org/cgi/man.cgi?query=axe&apropos=0&sektion=4&manpath=FreeBSD+11.2-RELEASE+and+Ports&arch=default&format=html

    It also appears that the 1000Mbit section was a direct copy from the axe manual entry to the axge entry (without removing the reference to the axe supported AX88178 in the process).

    I think it's fair to assume that both the AX88178A and AX88179 ASIX chipsets will have native support for 1000Mbit using the axge driver.

    Hope this helps.



  • Hi again,

    Now I have switched to another USB NIC, namely a Startech USB31000S, which should have a AX88179 ASIX chipset.

    It works–sort of...

    usbconfig -d 0.3
    ugen0.3: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (124mA)
    
    ifconfig -vv ue0
    ue0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
            ether 00:24:9b:4f:86:e8
            hwaddr 00:24:9b:4f:86:e8
            inet6 fe80::224:9bff:fe4f:86e8%ue0 prefixlen 64 scopeid 0x6
            inet 213.150.58.234 netmask 0xfffffff8 broadcast 213.150.58.239
            inet 213.150.58.236 netmask 0xfffffff8 broadcast 213.150.58.239
            nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
            media: Ethernet autoselect (1000baseT <full-duplex,master>)
            status: activeifconfig -vv ue0
            ue0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
                    options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
                    ether 00:24:9b:4f:86:e8
                    hwaddr 00:24:9b:4f:86:e8
                    inet6 fe80::224:9bff:fe4f:86e8%ue0 prefixlen 64 scopeid 0x6
                    inet xxx.xxx.xxx.xxx netmask 0xfffffff8 broadcast yyy.yyy.yyy.yyy
                    inet zzz.zzz.zzz.zzz netmask 0xfffffff8 broadcast aaa.aaa.aaa.aaa
                    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                    media: Ethernet autoselect (1000baseT <full-duplex,master>)
                    status: active
    

    (IP addresses obfuscated, but correct)

    I have to problems:

    When I reboot the firewall from a shell or the web GUI, the USB interface is no longer online. If I shut the system completely down with the power switch, it starts up again correctly. I can't find any descriptions in the forum or elsewhere of anything to put in /boot/loader.conf.local or /conf/config.xml.

    I know that I should expect challenges regarding the real bandwidth of this type of NIC. And to be honest, I don't really know what to expect from a system connected to a 1,000 Mb/s line upstream. With the actual configuration – WAN assigned to ue0 and LAN to em0.100 – I get a speed of about 100 Mb/s (download) and 300 Mb/s upload. Both measurements are slow which could be related to the hardware challenge. But I don't understand the prominent difference. Could it be related to the setup with VLANs?

    As usual, all comments and suggestions are very welcome.

    Regards,
    Jon


  • Netgate Administrator

    When you warm boot what does the NIC come up as? It is detected correctly and ue0 is present? Just not linked?



  • Hmm. Haven't seen this until now, but for some reason the system log is completely empty after the warm reboots. So I can only say that the box seems active (HD activity), but no activity for the NIC (LEDs are off but there and at the connection to the gateway). I can easily post the output after the cold restart, but I guess that wouldn't give any clues.

    Regards,
    Jon


  • Netgate Administrator

    Indeed, I would check the boot log and the output from usbconfig after the warm boot for clues/errors.



  • It seems that dmesg.log is cleared after each reboot. I don't know if I can configure something to keep dmesg messages between reboots.
    What I can do is to swap the new firewall with the old one. Then I can connect it to a keyboard and a monitor and examine dmesg.log and usbconfig.
    If that's the only way, I'll try it outside "office hours" and report back here.

    Regards,
    Jon



  • Hi @jontheil - what does CPU usage look like on the NUC when you run the speed test on your gigabit connection? Is it fully maxed out or still some room left?

    Hope this helps.



  • I can't figure out what happens after the hot restart. I can't see anything in the boot log (dmesg.log) about Asix or ue0. I can't find any information about the ugen0.3: <vendor 0x8087 product 0x0aaa> at usbus0 entrance in the log though. I have attached the file. dmesg.boot.txt.
    usbconfig doesn't show anything about the NIC (I think):

    ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
    ugen0.2: <Logitech USB Keyboard> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (90mA)
    ugen0.3: <vendor 0x8087 product 0x0aaa> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
    ugen0.4: <Kingston DataTraveler 3.0> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
    

    Regards,
    Jon



  • @tman222, I'll have a look, when it's swapped back again. As I recall it, there are enough of resources. I'll report back.

    Thanks,
    Jon



  • @jontheil said in USB gigabit network adapter - or alternatives:

    It seems that dmesg.log is cleared after each reboot. I don't know if I can configure something to keep dmesg messages between reboots.

    dmesg.boot is simply a capture of the output of the command dmesg after the current boot finished. this is done so you can see your current dmesg output before it potentially gets flooded with kernel messages about funky packets or other such things. each time the system reboots, this file is recreated from scratch, probably via...

    /sbin/dmesg > /var/log/dmesg.boot

    at the very end of the boot sequence.


  • Netgate Administrator

    Check the bios for any sort of USB power saving features that might be shutting down the NIC at reboot.


Log in to reply