> While testing OVS-windows flows for the DNAT/SNAT action, the checksum in
> TCP header is set incorrectly when TCP offload is enabled by default. As a
> result,the packet will be dropped on the Windows VM when processing the packet
>  from Linux VM which has included correct checksum at first.  On the Windows 
> VM,
>  it has gone through two NAT actions and OVS Windows kernel will reset the
> checksum to PseudoChecksum and then it will lose the original correct checksum
> value which is set outside.
> 
> Back to the Nat TCP/UDP checksum value reset logic,it should reset it TCP 
> checksum
> To be PseudoChecksum value only on Tx direction for TCP Offload case.  For 
> the packet
> From the outside,  OVS Windows Kernel does not need reset the TCP/UDP 
> checksum as
> It should be the job of the received network driver to get out a correct 
> checksum
> Value.
> 
> >>>sample flow on default configuration on both Windows VM and Linux VM
> (src=192.168.252.1,dst=10.110.225.146)-->dnat/snat-> (src=169.254.169.253,
> Dst=10.176.26.107) Without the fix the return back packet(src=10.176.26.107,
> Dst=169.254.169.253) will have the correct TCP checksum. After the reverse NAT
> Actions, it will be changed to be packet (src=10.110.225.146, 
> Dst=192.168.252.1)
> But with incorrect TCP checksum 0xa97a which is
> The PseudoChecksum. Related packet is put on the reported issue below.
> 
> Reported-at:https://github.com/openvswitch/ovs-issues/issues/231
> Signed-off-by: Wilson Peng <[email protected]>
> ---

Applied on master and backported until branch-2.13.

Thank you for the patch!


Alin.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to