Bug 657540 - xenpv-win net driver can not do tcp with other guests on the same hyperhost.
xenpv-win net driver can not do tcp with other guests on the same hyperhost.
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: xenpv-win (Show other bugs)
5.5
x86_64 Windows
low Severity medium
: rc
: ---
Assigned To: Paolo Bonzini
Virtualization Bugs
: TestOnly
: 731293 (view as bug list)
Depends On:
Blocks: 518405
  Show dependency treegraph
 
Reported: 2010-11-26 07:13 EST by Kirby Zhou
Modified: 2012-02-21 00:35 EST (History)
9 users (show)

See Also:
Fixed In Version: xenpv-win-1.3.11-1.el5
Doc Type: Bug Fix
Doc Text:
Cause - Different requirements imposed by Linux and Windows on the implementation of checksum offloading. Consequence - A Windows machine running with paravirtualized drivers will not be able to communicate with other guests running on the same host. Fix - Checksum offloading has been disabled in this release of the drivers. Result - Communication between Windows guests running on the same host will work correctly.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-02-21 00:35:10 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Kirby Zhou 2010-11-26 07:13:04 EST
Description of problem:

xenpv-win net driver can not do tcp with other guests on the same hyperhost.

Version-Release number of selected component (if applicable):

xenpv-win-1.2.0-1

How reproducible:

100%

Steps to Reproduce:
1. Install a Windows 7 (x86 or x64 as your wish)
2. Install the xenpv-win inside guest
3. reboot and reboot
4. telnet otherguest 22,  (otherguest is linux xen domu on the same hyperhost)
  
Actual results:

connection established, but no welcome message of openssh display.

Expected results:

welcome message such as 'SSH-2.0-OpenSSH_4.3' shows.

Additional info:
Comment 1 Kirby Zhou 2010-11-26 07:16:05 EST
BTW: 
1. I can not do tcp with the hypervisor host.
2. I can do tcp with other hosts inside the Windows guest.
Comment 2 Tamas Vincze 2011-04-03 12:11:22 EDT
Same here with xenpv-win-1.3.1-1.el5
XP Home SP3 guest cannot access apache running on a centos guest under the same hypervisor. Tried with IE8 and Wget.
All guests are connected to br0, no firewall.
Other hosts on the LAN/internet work fine.
Comment 3 Paolo Bonzini 2011-04-06 05:25:02 EDT
There is a workaround.  Add a DWORD value NetworkNoChecksumOffload and set it to 1 under HKLM\SYSTEM\CurrentControlSet\Services\rhelscsi.
Comment 4 Tamas Vincze 2011-04-06 10:32:26 EDT
The workaround worked, thanks!
Comment 6 Pengzhen Cao 2011-07-05 05:59:47 EDT
(In reply to comment #3)
> There is a workaround.  Add a DWORD value NetworkNoChecksumOffload and set it
> to 1 under HKLM\SYSTEM\CurrentControlSet\Services\rhelscsi.

Paolo, 
Do you think this bug is duplicate of bug 617435?

Regards,
Pengzhen
Comment 7 Paolo Bonzini 2011-07-05 07:03:44 EDT
No, that one was about guest->host and host->guest communication and affected all Windows versions.  This is only for Windows 2003 and XP.  These versions require the TCP and/or UDP (do not remember the details, sorry) checksums to be correct when offloading is on, while Xen leaves them blank.
Comment 9 Paolo Bonzini 2011-08-09 06:05:50 EDT
Patch included as part of bug 718329, leaving bug open as TestOnly.
Comment 10 Paolo Bonzini 2011-09-01 06:10:35 EDT
*** Bug 731293 has been marked as a duplicate of this bug. ***
Comment 11 Paolo Bonzini 2011-10-19 10:25:17 EDT
Documented at https://access.redhat.com/kb/docs/DOC-65073
Comment 12 Qin Guan 2011-12-12 04:50:11 EST
Verify this fix with xenpv-win-1.3.12-3.el5.

Host:
2.6.18-298.el5xen
xen-3.0.3-135.el5

Guest:
Win7
Win2k3

Steps:
1. Check that the tx-checksumming of the host is on:
# 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: on
udp fragmentation offload: off
generic segmentation offload: off
generic-receive-offload: off
2. check that no DWORD value NetworkNoChecksumOffload set in Win guest register table
3. install winscp on Win guest, use winscp to connect the host:
1) local Hypervisor
2) Linux host on the same Hypervisor
4. use ftp connect between the Win guests on the same host

All above tests PASS with file transferred successfully.
Comment 13 Paolo Bonzini 2012-01-16 04:01:01 EST
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause - Different requirements imposed by Linux and Windows on the implementation of checksum offloading.

Consequence - A Windows machine running with paravirtualized drivers will not be able to communicate with other guests running on the same host.

Fix - Checksum offloading has been disabled in this release of the drivers.

Result - Communication between Windows guests running on the same host will work correctly.
Comment 14 errata-xmlrpc 2012-02-21 00:35:10 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0195.html

Note You need to log in before you can comment on or make changes to this bug.