VMware vSphere

 View Only
  • 1.  Proper settings for disabling Offloading.

    Posted Oct 31, 2012 08:33 PM

    Can someone tell me the proper settings for iSCSI NICs to disable the following? Our storage provider would like to see these settings in place.

    Large Receive Offload

    Receive Side Scaling

    TCP Checksum Offload(IPv4)

    Large Send Offload (IPv4)

    Offload TCP Segmentation

    I assume these are the availible settings of our current NIC:

    # ethtool -k vmnic5

    Offload parameters for vmnic5:

    Cannot get device udp large send offload settings: Function not implemented

    Cannot get device generic segmentation offload settings: Function not implemented

    rx-checksumming: on

    tx-checksumming: on

    scatter-gather: on

    tcp segmentation offload: on

    udp fragmentation offload: off

    generic segmentation offload: off

    Thanks for your help.



  • 2.  RE: Proper settings for disabling Offloading.

    Posted Oct 31, 2012 08:53 PM

    I'm guessing that I just need to turn off tcp segmentation offload? Is there somewhere else I should be looking?

    Also, I would like to know if Flow Control is enabled. My guess would be yes?



  • 3.  RE: Proper settings for disabling Offloading.

    Posted Oct 31, 2012 09:37 PM

    Hi Paul

    To disable the TCP Segmentation Offload:

    ethtool -K eth# tso off

    Configuring flow control using ethtool

    Some network drivers allow you to modify the configuration options using the ethtool command line utility on the console of the ESX/ESXi host.

    1. Open a console to the ESX/ESXi host. For more information, see Unable to connect to an ESX host using Secure Shell (SSH) (1003807) or Using Tech Support Mode in ESXi 4.1 (1017910).

    2. Obtain a list of network interface cards and names using the command:

    # esxcfg-nics -l

    For example:

    # esxcfg-nics -l

    Name    PCI         Driver Link Speed    Duplex MAC Address

    vmnic0  00:02:04.00 ACME   Up   1000Mbps Full   01:23:45:67:89:AB

    vmnic1  00:02:05.00 ACME   Up   1000Mbps Full   01:23:45:67:78:AC

    3. Use the ethtool --show-pause command to display pause frame parameter information for each of the network interfaces, specifying its name from Step 2:

    # ethtool --show-pause <VMNic Name>

    For example:

    # ethtool --show-pause vmnic0

    Pause parameters for vmnic0:

    Autonegotiate: on

    RX: off

    TX: off

    Note: In ESXi 4.0, fulltext switches are not parsable to the ethtool command. Use the switch types -A and -a instead.

    # ethtool -a|--show-pause DEVNAME

    # ethtool -A|--pause DEVNAME

    For example:

    # ethtool -a vmnic0

    Pause parameters for vmnic0:

    Autonegotiate: on

    RX: off

    TX: off

    Change the running configuration of a network interface using the ethtool --pause command, specifying its name from Step 2.

    To disable flow control for sent and received traffic, use the command:

    # ethtool --pause <VMNic Name> tx off rx off

    5. First make the /etc/rc.d/rc.local file executable by setting the permission using the command chmod 755 rc.local and then open /etc/rc.d/rc.local file using a text editor. For more information, see Editing configuration files in VMware ESX (1017022).

    Note: For ESX, you can verify if the rc.local file is correct by verifying /etc/rc/d/rc3.d file and check the directory listing with ls -l under /etc/rc/d/ directory and verify which file s99local is pointing to.

    6. Append the same commands used in Step 4, placing each on its own line.

    7. Save the file.

    8. For an ESXi host, save the configuration change using the command:

    # /sbin/auto-backup.sh

    The commands added to the /etc/rc.local file will be executed at startup, persisting the configuration changes across reboots. As they are executed in Step 4, no reboot is required for them to take effect.

    Thanks & regards

    Aakash jacob



  • 4.  RE: Proper settings for disabling Offloading.

    Posted Nov 01, 2012 11:19 PM

    Even though it say it's on this is what i get when i try to disable tso:

    [root@ESX2 ~]# ethtool -k vmnic5                                             

    Offload parameters for vmnic5:
    Cannot get device udp large send offload settings: Function not implemented
    Cannot get device generic segmentation offload settings: Function not implemented
    rx-checksumming: on
    tx-checksumming: on
    scatter-gather: on
    tcp segmentation offload: on
    udp fragmentation offload: off
    generic segmentation offload: off
    [root@ESX2 ~]# ethtool -K vmnic5 tso off

    Cannot set device tcp segmentation offload settings: Function not implemented

    This is on an Intel NIC for what it's worth.

    Please advise.



  • 5.  RE: Proper settings for disabling Offloading.

    Posted Nov 12, 2012 09:02 PM

    HI Paul

    TCP offload is a feature that can be disabled at the driver level or at the hardware itself.


    At the driver level, if we want to disable TSO we run the ethtool -K command for which we received "function not implemented" then that means that the driver does not allow the feature to be disabled.

    You can try to disable the feature from the BIOS (depends on the nic model) or can also verify with the vendor documentation if the feature could be disabled.



  • 6.  RE: Proper settings for disabling Offloading.

    Posted Aug 01, 2013 08:11 PM

    can you explain what some of these are? I noticed on ours for LAN traffic (not iscsi) I see this. Why would TX be off but not RX. These are teamed together using ip hash with cisco etherchannel mode. We are experiencing sluggishness and I came across this post discussing disabling tcp offload at the host level. Also I set the ports to be static, not autonegotiate at eh hosts's distributed switch section. not sure why they show up as autonegotiate here being on.

    ~ # ethtool --show-pause vmnic3

    Pause parameters for vmnic3:

    Autonegotiate:  on

    RX:             on

    TX:             off

    ~ # ethtool --show-pause vmnic4

    Pause parameters for vmnic4:

    Autonegotiate:  on

    RX:             on

    TX:             off

    Lastly why am I editing the config file? You reference step 4. but I don't see that labeled as such. Thanks so much!