Usb-Nic with AX88179 on pfSense 2.4.2



  • hi,

    (i know there are some other threads about this nic, but they were not solved or on older versions of pfsense. and yes i know usb-nics are not the best choice ;) )

    i have some trouble getting my digitus dn3023 (AX88179 chip) to work on pfsense 2.4.2.
    strange thing is, that if i install pfsense while it is connected and i configure it on the console during first start, it works. but after first reboot of pfsense it wont work again. un/replugging doesnt help.
    the nic itself seems to be ok since i can use it under windows or inside a pf-vm.

    ok, here some information:
    when i plug it in and configure it to use dhcpv4, i get these messages in syslog:

    Dec 17 14:50:31 	kernel 		ugen0.5: <asix elec.="" corp.="" ax88179="">at usbus0
    Dec 17 14:50:31 	kernel 		axge0 on uhub0
    Dec 17 14:50:31 	kernel 		axge0: <networkinterface>on usbus0
    Dec 17 14:50:32 	kernel 		miibus0: <mii bus="">on axge0
    Dec 17 14:50:32 	kernel 		rgephy0: <rtl8169s 8211="" 8110s="" 1000base-t="" media="" interface="">PHY 3 on miibus0
    Dec 17 14:50:32 	kernel 		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
    Dec 17 14:50:32 	kernel 		ue0: <usb ethernet="">on axge0
    Dec 17 14:50:32 	kernel 		ue0: Ethernet address: 00:24:9b:21:52:37
    Dec 17 14:51:05 	kernel 		ue0: link state changed to UP
    Dec 17 14:51:05 	check_reload_status 		Linkup starting ue0
    Dec 17 14:51:06 	php-fpm 	41721 	/rc.linkup: DEVD Ethernet attached event for opt1
    Dec 17 14:51:06 	php-fpm 	41721 	/rc.linkup: HOTPLUG: Configuring interface opt1
    Dec 17 14:51:07 	check_reload_status 		Linkup starting ue0
    Dec 17 14:51:07 	kernel 		ue0: link state changed to DOWN
    Dec 17 14:51:10 	kernel 		ue0: link state changed to UP
    Dec 17 14:51:10 	check_reload_status 		Linkup starting ue0
    Dec 17 14:51:13 	php-fpm 	41721 	/rc.linkup: The command '/sbin/dhclient -c /var/etc/dhclient_opt1.conf ue0 > /tmp/ue0_output 2> /tmp/ue0_error_output' returned exit code '15', the output was ''
    Dec 17 14:51:13 	check_reload_status 		Restarting ipsec tunnels
    Dec 17 14:51:14 	check_reload_status 		Syncing firewall
    Dec 17 14:51:17 	check_reload_status 		Syncing firewall
    Dec 17 14:51:17 	check_reload_status 		updating dyndns opt1
    Dec 17 14:51:17 	check_reload_status 		Reloading filter
    Dec 17 14:51:17 	php-fpm 	45034 	/rc.linkup: DEVD Ethernet detached event for opt1
    Dec 17 14:51:17 	check_reload_status 		Reloading filter
    Dec 17 14:51:17 	php-fpm 	49806 	/rc.linkup: DEVD Ethernet attached event for opt1
    Dec 17 14:51:17 	php-fpm 	49806 	/rc.linkup: HOTPLUG: Configuring interface opt1
    Dec 17 14:51:36 	check_reload_status 		Syncing firewall
    Dec 17 14:51:37 	php-fpm 	49806 	/rc.linkup: The command '/sbin/dhclient -c /var/etc/dhclient_opt1.conf ue0 > /tmp/ue0_output 2> /tmp/ue0_error_output' returned exit code '15', the output was ''
    Dec 17 14:51:37 	check_reload_status 		Restarting ipsec tunnels
    Dec 17 14:51:42 	check_reload_status 		updating dyndns opt1
    Dec 17 14:51:42 	check_reload_status 		Reloading filter
    Dec 17 14:52:39 	check_reload_status 		Restarting ipsec tunnels
    Dec 17 14:52:44 	check_reload_status 		updating dyndns opt1
    Dec 17 14:52:46 	php-fpm 	74808 	/interfaces.php: Removing static route for monitor 8.8.8.8 and adding a new route through 192.168.150.1
    Dec 17 14:52:46 	check_reload_status 		Reloading filter
    Dec 17 14:52:46 	php-fpm 	74808 	/interfaces.php: Creating rrd update script</usb></rtl8169s></mii></networkinterface></asix> 
    

    after this, the interface is shown as up but gets no ip.

    on dhcp log i see that it tries to get an ip from the fritzbox. other devices connected to that fritzbox-port dont have problems getting an ip.

    Dec 17 15:13:19 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 1 
    Dec 17 15:13:20 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 2
    Dec 17 15:13:22 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 2
    Dec 17 15:13:24 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 5
    Dec 17 15:13:29 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 12
    Dec 17 15:13:41 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 11
    Dec 17 15:13:52 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 8
    Dec 17 15:14:00 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 7
    Dec 17 15:14:07 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 11
    Dec 17 15:14:18 	dhclient 	32206 	DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 2
    Dec 17 15:14:20 	dhclient 	32206 	No DHCPOFFERS received.
    Dec 17 15:14:20 	dhclient 	32206 	No working leases in persistent database - sleeping.
    Dec 17 15:14:20 	dhclient 		FAIL
    

    according to my fritzbox the pfsense got the ip 192.168.179.24 but the pfsense doesnt show or use it. after a short time the fritzbox deletes the dhcp-lease again (i guess because of no answer of the pfsense).
    if i set a static ip, i dont get any traffic in or out in that nic (i have a set an allow all protocols for all destinations on that interface).

    here some more info, maybe its useful:

    usbconfig dump_device_desc

    ugen0.5: <asix elec.="" corp.="" ax88179="">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  <0000249B215237>
      bNumConfigurations = 0x0001</ax88179></asix></vendor></asix> 
    

    tcpdump -vvv -i ue0

    tcpdump: listening on ue0, link-type EN10MB (Ethernet), capture size 262144 bytes
    14:47:25.053876 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
        0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 00:24:9b:21:52:37 (oui Unknown), length 300, xid 0xc4fe505c, secs 21, Flags [none] (0x0000)
              Client-Ethernet-Address 00:24:9b:21:52:37 (oui Unknown)
              Vendor-rfc1048 Extensions
                Magic Cookie 0x63825363
                DHCP-Message Option 53, length 1: Discover
                Client-ID Option 61, length 8: hardware-type 112, 66:73:65:6e:73:65:32
                Hostname Option 12, length 8: "pfsense2"
                Parameter-Request Option 55, length 9:
                  Subnet-Mask, BR, Time-Zone, Classless-Static-Route
                  Default-Gateway, Domain-Name, Domain-Name-Server, Hostname
                  Option 119
                END Option 255, length 0
                PAD Option 0, length 0, occurs 25
    14:47:25.055479 d5:37:65:e5:08:00 (oui Unknown) > 9b:21:52:37:38:10 (oui Unknown), ethertype Unknown (0x4500), length 588:
            0x0000:  0240 0000 0000 4011 9143 c0a8 b301 c0a8  .@....@..C......
            0x0010:  b317 0043 0044 022c 38f2 0201 0600 c4fe  ...C.D.,8.......
            0x0020:  505c 0015 0000 0000 0000 c0a8 b317 c0a8  P\..............
            0x0030:  b301 0000 0000 0024 9b21 5237 0000 0000  .......$.!R7....
            0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0060:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0080:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x00f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0100:  0000 0000 0000 6382 5363 3501 0236 04c0  ......c.Sc5..6..
            0x0110:  a8b3 0133 0400 0d2f 003a 0400 0697 803b  ...3.../.:.....;
            0x0120:  0400 0b89 2001 04ff ffff 0003 04c0 a8b3  ................
            0x0130:  0106 04c0 a8b3 010f 0966 7269 747a 2e62  .........fritz.b
            0x0140:  6f78 1c04 c0a8 b3ff ff00 0000 0000 0000  ox..............
            0x0150:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0160:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0170:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0180:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0190:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x01f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0200:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0210:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0220:  0000 0000 0000 0000 0000 0000 0000 0000  ................
            0x0230:  0000 0000 0000 0000 0000 0000 0000       ..............
    ^C
    2 packets captured
    2 packets received by filter
    0 packets dropped by kernel
    

    anyone got any tipps for me, how to get it to work?


  • Netgate Administrator

    Did you disable ALL hardware offloading?

    Not much else you can do though. As you said USB NICs often suck badly!  :-\

    Steve



  • yep, forgot to mention:
    Hardware Checksum Offloading, Hardware TCP Segmentation Offloading and Hardware Large Receive Offloading is disabled.


  • Netgate Administrator

    Probably not a lot further we can go there then.

    I recommend using a real NIC if you can or VLANs and a switch to get more interfaces.

    Steve



  • Hi,

    am having a similar problem with a intel NUCi3.. , initialy orderd a GORITE internal nic but it never arrived, went with an "amazon basics" usb nic with the  AX889179 chipset (works well with vmware, just google for drivers) , the usb nic periodicaly powers down and i have to restart the nuc , have looked at power setings etc but every 4 to 8 hrs it goes offline.

    I have tried installing vmware 6.5 then pfsense 2.4.2 as a vm on my NUC, this worked perfectly, put 2 usb nics on the nuc 1st one to manage esx , 2nd as wan to pfsense and used the onboard as the lan for pfsense, its easy to use vswitches to map the nics accordingly, may go back to that method if i cant get it stable nativly

    would be nice to hear of any way to solve the usb nic issue , i am using it at home with virgin 'vivid 300mb' service superhub 2 in modem mode, nighthawk r7000 etc. and dont want to buy any more kit,

    Log output

    Dec 30 15:40:07 check_reload_status rc.newwanip starting ue0
    Dec 30 15:40:07 php-fpm 15884 /status_interfaces.php: Accept router advertisements on interface ue0
    Dec 30 15:40:08 php-fpm 28048 /rc.newwanip: rc.newwanip: Info: starting on ue0.
    Dec 30 15:40:08 php-fpm 28048 /rc.newwanip: rc.newwanip: on (IP address: 192.168.0.249) (interface: WAN[wan]) (real interface: ue0).
    Dec 30 15:40:09 kernel ue0: link state changed to DOWN
    Dec 30 15:40:09 kernel ue0: link state changed to UP
    Dec 30 15:40:09 check_reload_status Linkup starting ue0
    Dec 30 15:40:09 check_reload_status Linkup starting ue0
    Dec 30 15:40:14 check_reload_status rc.newwanip starting ue0
    Dec 30 15:40:14 php-fpm 42231 /rc.linkup: Accept router advertisements on interface ue0
    Dec 30 15:40:15 php-fpm 53223 /rc.newwanip: rc.newwanip: Info: starting on ue0.
    Dec 30 15:40:15 php-fpm 53223 /rc.newwanip: rc.newwanip: on (IP address: 192.168.0.249) (interface: WAN[wan]) (real interface: ue0).
    Dec 30 16:11:06 check_reload_status rc.newwanip starting ue0
    Dec 30 16:11:07 php-fpm 59539 /rc.newwanip: rc.newwanip: Info: starting on ue0.
    Dec 30 16:11:07 php-fpm 59539 /rc.newwanip: rc.newwanip: on (IP address: 192.168.0.249) (interface: WAN[wan]) (real interface: ue0).

    thanks



  • i cant really help you with the solution to the problem, but i tested a bit more:

    first i installed pfsense 2.4.2 on an old computer with complete different hardware and i had the same problems

    then i installed pfsense 2.3.5 (32bit) on that old computer, and voila: it worked.
    After a restart it didnt work and i always had to reassign the interfaces again. using the tricks to avoid that didnt help, since the interface itself was found on boot but wasnt available as ue0.
    the only way to get the interface to work after a restart: when the reassign-dialog came up, unplug the usb-interface and plug it in again. then just assign whatever interface you want and in the end, where you have to answer the question if you want to continue with that settings, just say no. and then it uses the re-plugged interface correct.

    after all the testing i think the interface or the interface-driver itself is not the problem. i think its the usb-driver itself or maybe some energy-saving-stuff inside it.
    i gave up after that since i dont have many options to change energy-saving in bios.

    maybe you can try and disable all energy-saving-stuff in bios that could interfere with usb.


Log in to reply