summaryrefslogtreecommitdiff
path: root/datapath-windows
diff options
context:
space:
mode:
authorWilson Peng <pweisong@vmware.com>2022-08-22 16:02:55 +0800
committerAlin-Gabriel Serdean <aserdean@ovn.org>2022-09-20 02:04:54 +0300
commit7a9dc1950f6a6c06f184b734a9f3a24b918088d7 (patch)
tree197f8e4412f8d47e1f99835ac0d27b6f8d03aedc /datapath-windows
parent753c4f57b3ebbc1f82de084be088b51b46e3f21f (diff)
downloadopenvswitch-7a9dc1950f6a6c06f184b734a9f3a24b918088d7.tar.gz
datapath-windows: Correct Geneve IPV6 header checksum parameter
In the recent upstream OVS Geneve IPV6 tunnel coding job, it is only supportting the case when the uplink offload (UDP v6 offload parameter setting on the network adapter configuration) is disabled. For Geneve IPV6 header setting, it needs set Transmit.IpHeaderChecksum in NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO to be 0. Elsewise we could observe the found issue on the report page. After this patch, even the uplink UDP v6 offload is enabled(On WindowsServer 2019) by default the IPV6 Geneve tunnel could send/receive packets without issues now. I have tested four kinds of network adapter drivers( E1000e ,vmxnet3 and physical network adapter "Intel(R) Ethernet 10G X710 rNDC " and "Mellanox ConnectX-5 Adapter”. On the default offload setting for the network adapter(Windows server2019) the IPV6 Geneve tunnel could be setup. This patch needs to be applied to master and branch-3.0. Test topo, Setup one IPV6 Geneve Tunnel between 1 Windows VM and 1 Ubuntu server. Windows VM(Windows server2019), vif0( 6000::2/40.1.1.10) vif1(5000:ed4d::2) ------ Ubuntu VM Eth2(5000:ed4d::9), name space ns1 with interface ns1_link(6000::9/40.1.1.2) WinVM: ovs-vsctl.exe add-port br-int bms-tun0 -- set interface bms-tun0 type=geneve options:key=flow options:csum=true options:local_ip="5000:ed4d::2" options:remote_ip="5000:ed4d::9" options:tos=inherit Ubuntu VM:ovs-vsctl add-port br-int dst_tunnel -- set interface dst_tunnel type=geneve options:local_ip="5000:ed4d::1" options:remote_ip="5000:ed4d::2" Reported-at: https://github.com/openvswitch/ovs-issues/issues/260 Signed-off-by: Wilson Peng <pweisong@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'datapath-windows')
-rw-r--r--datapath-windows/ovsext/Geneve.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/Geneve.c b/datapath-windows/ovsext/Geneve.c
index e4e81c157..793cee36b 100644
--- a/datapath-windows/ovsext/Geneve.c
+++ b/datapath-windows/ovsext/Geneve.c
@@ -286,6 +286,7 @@ NDIS_STATUS OvsEncapGeneve(POVS_VPORT_ENTRY vport,
} else if (tunKey->dst.si_family == AF_INET6) {
csumInfo.Transmit.IsIPv4 = 0;
csumInfo.Transmit.IsIPv6 = 1;
+ csumInfo.Transmit.IpHeaderChecksum = 0;
}
if (tunKey->flags & OVS_TNL_F_CSUM) {