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.
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?
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
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.
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.
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!