Large Receive Offload gets disabled when i start a Jail

Akai

Cadet
Joined
Apr 26, 2020
Messages
3
Hello,

First i want to say I apologize if this is the wrong section, i wasn't sure if this was more a Jail inquiry or a networking one.. but here is the deal. I have an ESXi host running a FreeNAS VM for quite some time using PCI passthrough and an HBA card -> everything has been working great. I have plex running inside a Jail on the FreeNAS box and again its worked perfectly fine.

FreeNAS: 11.3-U2.1
VMware: ESXi 6.5
CPU: Intel Xeon E3-1225v2
Memory: 32Gb DDR3
Motherboard: Gigabyte GA-B75M-D3H

Well I recently upgraded my 1Gb Intel NIC to an Aquantia AQC-107 10Gb network card as there are drivers available for ESXi support. That went smoothly, everything seemed to be working but i was having issues copying files to my SMB share on FreeNAS from Windows, i could read/write perfectly fine but when i tried to copy a large file up to the SMB it would fail.

When looking at the adapter in FreeNAS using ifconfig i realized that Large Receive Offload was disabled on the vmx0 (VMXNET3) interface so i added the applicable lro option to the vmx0 interface settings in FreeNAS and voila speeds were what i expected and everything was working again.

The problem comes into play when i start my Plex Jail as that seems to cause the vmx0 adapter to loose the lro setting that i had previously configured. If i manually reapply that setting using "ifconfig vmx0 lro" from the shell my writes to the SMB return to normal.. but i seem to have to manually do this after the Jail is started.

ifconfig when its working:
Code:
vmx0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        description: vmx0
        options=60079b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,TSO6,LRO,RXCSUM_IPV6,TXCSUM_IPV6>
        ether 00:50:56:90:d4:7d
        hwaddr 00:50:56:90:d4:7d
        inet 192.168.1.15 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        groups: lo
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:57:2e:66:e4:00
        nd6 options=1<PERFORMNUD>
        groups: bridge
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: vnet0.1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 4 priority 128 path cost 2000
        member: vmx0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 2000
vnet0.1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        description: associated with jail: plex as nic: epair0b
        options=8<VLAN_MTU>
    ether 02:ff:60:14:fa:09
    hwaddr 02:1c:d0:00:04:0a
    nd6 options=1<PERFORMNUD>
    media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
    status: active
    groups: epair


Does anyone have some insight into why the Jail causes the vmx0 interface to loose its options when its started? And is there a way to prevent this? Have i stumbled across a bug or am i just doing something wrong?

I appreciate your time and insight, i apologize if any of this is overly n00b-ish.
 
Top