Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Supported and working external Gigabit NIC

    Scheduled Pinned Locked Moved Hardware
    7 Posts 2 Posters 1.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      C_C
      last edited by C_C

      Hi.

      I have seen multiple people asking the same question I have about a good external gigabit adapter that would work nicely with pfSense.

      I just wanted to share my experience with 2 different USB 3.0 adapters that did not work as expected, and my current solution that works flawlessly, even though not optimal.

      To verify the bandwidth I used iperf3 to the pfsense box from a machine connected to the NIC's network.

      Tests were conducted on an Intel NUC (NUC11TNKi3) with a Tiger Lake CPU, which should not be a bottleneck at all for this (also, I checked the CPU usage while testing and it was very low).

      Version of pfSense: 2.5.2-RELEASE.

      Results:

      • ASUS OH102, Realtek RTL8153 chipset: https://www.asus.com/Accessories/Docks-Dongles-and-Cable/ASUS-Docks-Dongles-and-Cable/OH102-U3-TO-RJ45-DONGLE/ : approximately 90Mbps maximum

      • TRENDnet TU3-ETG, Asix ax88179 chipset:
        https://www.trendnet.com/products/usb-adapter/usb-3.0-to-gigabit-adapter-TU3-ETG : approximately 120Mbps maximum

      Current solution:

      I had an unused Apple Thunderbolt 3 to Thunderbolt 2 adapter as well as an Apple Thunderbolt to Ethernet adapter.

      It is not optimal in the practical sense of having 2 dongles connected in a row to the computer, but the performance is here: well over 900Mbps.

      Freebsd uses the bge Broadcom BCM57xx/BCM590x Gigabit/Fast Ethernet driver:

      bge0: <Thunderbolt Ethernet, ASIC rev. 0x57766000> mem 0x6000010000-0x600001ffff,0x6000000000-0x600000ffff at device 0.0 on pci4
      bge0: CHIP ID 0x57766000; ASIC REV 0x57766; CHIP REV 0x577660; PCI-E
      miibus0: <MII bus> on bge0
      brgphy0: <BCM57765 1000BASE-T media interface> PHY 1 on miibus0
      brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
      bge0: Using defaults for TSO: 65518/35/2048
      bge0: Ethernet address: XX:XX:XX:XX:XX:XX [redacted]
      

      I would appreciate if someone has found an alternative compact solution for a performant usb 3 or thunderbolt 3 NIC that does not involve a thunderbolt external dock, and in a reasonable price range.

      In any case, best of luck everyone with your installation endeavours.

      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        The axe(4) driver is usually about as good as it gets for USB NICs.
        Was is using axe or cdce? The generic cdce driver usually works but with limited features/speed.

        Really though just don't use USB if you can avoid it.

        It is interesting that it's using a PCI device driver in that via Thunderbolt.

        Steve

        C 1 Reply Last reply Reply Quote 0
        • C
          C_C @stephenw10
          last edited by C_C

          @stephenw10 Hi Steve, thanks for your message!

          Here is the detection log:

          ugen1.2: <ASIX Elec. Corp. AX88179> at usbus1
          axge0 on uhub0
          axge0: <NetworkInterface> on usbus1
          miibus1: <MII bus> on axge0
          rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 3 on miibus1
          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: XX:XX:XX:XX:XX:XX [redacted]
          

          So, axge is being used.

          The device is set as super speed (USB 3.0), and has only 1 configuration (so, no set_config magic):

          ugen1.2: <ASIX Elec. Corp. AX88179> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (124mA)
          
          ...
            bNumConfigurations = 0x0001
          ...
          

          No issue with the interface speed detection, 1000baseT:

          ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
          	description: WAN
          	options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
          	ether XX:XX:XX:XX:XX:XX [redacted]
          	inet6 XXXX::XXXX:XXXX:XXXX:XXXX%ue0 prefixlen 64 scopeid 0x7 [redacted]
          	inet XXX.XXX.XXX.XXX netmask 0xffffff00 broadcast XXX.XXX.XXX.255 [redacted]
          	media: Ethernet autoselect (1000baseT <full-duplex>)
          	status: active
          	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
          

          Also, no packet error shown with netstat, before anyone asks.

          Here is a top excerpt while testing:

          last pid: 54074;  load averages:  0.19,  0.25,  0.24  up 0+10:59:43    08:20:17
          176 threads:   5 running, 146 sleeping, 25 waiting
          CPU:  0.0% user,  0.0% nice,  0.1% system,  0.0% interrupt, 99.9% idle
          Mem: 24M Active, 48M Inact, 290M Wired, 73M Buf, 7119M Free
          Swap: 3881M Total, 3881M Free
          
            PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
             11 root        155 ki31     0B    64K CPU1     1 659:00 100.00% [idle{idle: cpu1}]
             11 root        155 ki31     0B    64K RUN      3 658:51 100.00% [idle{idle: cpu3}]
             11 root        155 ki31     0B    64K CPU2     2 658:49  98.10% [idle{idle: cpu2}]
             11 root        155 ki31     0B    64K CPU0     0 658:39  91.06% [idle{idle: cpu0}]
             16 root        -72    -     0B   176K -        1   0:11   8.98% [usb{usbus1}]
             12 root        -88    -     0B   400K WAIT     0   0:07   6.88% [intr{irq272: xhci1}]
              0 root        -76    -     0B   624K -        2   0:03   1.27% [kernel{if_io_tqg_2}]
              0 root        -76    -     0B   624K -        0   0:02   0.39% [kernel{if_io_tqg_0}]
              0 root        -76    -     0B   624K -        1   0:01   0.29% [kernel{if_io_tqg_1}]
              0 root        -76    -     0B   624K -        3   0:00   0.20% [kernel{if_io_tqg_3}]
          ...
          

          I get approximately 90Mbps of real internet traffic bandwidth (through fast.com), so not great at all compared to 900Mbps+ for the thunderbolt adapter.

          C 1 Reply Last reply Reply Quote 0
          • C
            C_C @C_C
            last edited by C_C

            @c_c Oh wow.

            I have randomly tried ifconfig ue0 media auto mediaopt flow, even though I did not see any particular error in netstat and the bandwidth jumped to ~280Mbps.

            Not optimal, but that's a great improvement...!

            Anyway, this adapter is still not a great option for gigabit internet with pfSense.

            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              What is it connected to? The fact it requires flow control is unusual. Most connections work fine or better without it. It implies it's being overloaded somewhere.
              There's not much you can do though, there are no tunables for that driver listed. It is using the driver correctly as you say.

              Steve

              C 1 Reply Last reply Reply Quote 0
              • C
                C_C @stephenw10
                last edited by

                @stephenw10 it’s connected to the fiber appliance from the isp.

                I think it’s a driver issue with that particular USB-ethernet chipset though: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210488

                Looks like flow control improves the performance of the driver for some reason.

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  @c_c said in Supported and working external Gigabit NIC:

                  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210488

                  Ah, interesting, Do you see the very high error rate when flow control is not enabled?

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.