VMware Cloud Community
PDXPaulee
Contributor
Contributor

Proper settings for disabling Offloading.

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.

0 Kudos
5 Replies
PDXPaulee
Contributor
Contributor

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?

0 Kudos
admin
Immortal
Immortal

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

0 Kudos
PDXPaulee
Contributor
Contributor

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.

0 Kudos
admin
Immortal
Immortal

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.

0 Kudos
DITGUY2012
Enthusiast
Enthusiast

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!

0 Kudos