Bug 657540

Summary: xenpv-win net driver can not do tcp with other guests on the same hyperhost.
Product: Red Hat Enterprise Linux 5 Reporter: Kirby Zhou <kirbyzhou>
Component: xenpv-winAssignee: Paolo Bonzini <pbonzini>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 5.5CC: drjones, jzheng, leiwang, pbonzini, pcao, qguan, qwan, tom, yuzhou
Target Milestone: rcKeywords: TestOnly
Target Release: ---   
Hardware: x86_64   
OS: Windows   
Whiteboard:
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 05:35:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 518405    

Description Kirby Zhou 2010-11-26 12:13:04 UTC
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 12:16:05 UTC
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 16:11:22 UTC
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 09:25:02 UTC
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 14:32:26 UTC
The workaround worked, thanks!

Comment 6 Pengzhen Cao 2011-07-05 09:59:47 UTC
(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 11:03:44 UTC
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 10:05:50 UTC
Patch included as part of bug 718329, leaving bug open as TestOnly.

Comment 10 Paolo Bonzini 2011-09-01 10:10:35 UTC
*** Bug 731293 has been marked as a duplicate of this bug. ***

Comment 11 Paolo Bonzini 2011-10-19 14:25:17 UTC
Documented at https://access.redhat.com/kb/docs/DOC-65073

Comment 12 Qin Guan 2011-12-12 09:50:11 UTC
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 09:01:01 UTC
    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 05:35:10 UTC
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