> 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
