View Source

{page-title}
This issue is related to the Large Send Offload setting on the network adapter, and is most commonly experienced when using Broadcom NICs.

More information is available here regarding disabling this setting on a host with a physical NIC:
[http://wiki.r1soft.com/display/kb/Back+Up+Stopped]


h2. Symptom


----
Windows and Linux Server hosts stopped backing up due to this error. The error description from buagent:
{code}
Network timeout occurred after (3600) seconds closing connection to (XXX.XXX.XXX.XXX). ( ClosedChannelException)
{code}
Alternatively, you may notice poor network performance between the CDP Server and host as if they are both running on a XEN Virtual Machine.

h2. Cause


----
On a physical machine, the overhead associated with packet receipt verification (ie: computing checksums), is usually handed off to be calculated by the physical network card itself, effectively relieving the Operating System of these duties. In a Virtual Machine, there is no real physical Network Adapter with a hardware chipset that the Operating System can use to pass off the task of calculating the checksums.

h2.  Resolution


----
h3. Linux Virtual Machine

To check the settings (on each domU), you can use ethtool.
{code}
# ethtool \-k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: off
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off
{code}
If TX-checksumming is "on", you can turn it off with the following command:
{code}
# ethtool \-K eth0 tx off
{code}
You can use ethtool again to verify the change:
{code}
# ethtool \-k eth0
{code}
Keep in mind that these changes will be lost following a reboot, so you may want to add them to a preferred script that will run after the network is up. (You can add them to {color:blue}/etc/rc.local{color} which starts after networking is up.)

h3. Windows Virtual Machine

To disable the TCP task offload option in Windows, you will need to create a registry DWORD.

1. Click Start !arrow.gif! Search and type "{color:blue}regedit{color}" (Start !arrow.gif! Run in Windows XP/2003/2000).

!run.png!


!regedit.png!

This launches the Windows Registry Editor.

!regedit1.png!

2. Browse to the following registry key:

HKEY_LOCAL_MACHINE !arrow.gif! SYSTEM !arrow.gif! CurrentControlSet !arrow.gif! Services !arrow.gif! Tcpip !arrow.gif! Parameters

!regedit-parameters.png!

3. Right-click in the pane on the right and choose New !arrow.gif! DWORD (32-bit value).

!dword.png!

4. Name it "{color:blue}DisableTaskOffload{color}".

!DisableTaskOffload.png!

And set its value to _"1"_ (Either hex or decimal).

!DisableTaskOffload-modify.png! !value1.png!

Setting it to"_1_" will disable _TCP Task Offloading_.

If you wish to re-enable it at a later time, set it "_0_" or simply delete the the "DisableTaskOffload" DWORD.