datapath-windows: Compute checksums for VXLAN inner packets.
authorAlin Serdean <aserdean@cloudbasesolutions.com>
Wed, 30 Sep 2015 21:16:55 +0000 (21:16 +0000)
committerBen Pfaff <blp@nicira.com>
Fri, 2 Oct 2015 14:22:49 +0000 (07:22 -0700)
commit89d762f3d5339a1f257de4298f48b535878ddf20
tree3bca0e1fe9938510502d2b74f0642bbdf6a4ff9f
parent9f0c26b9bd116b13b52d050e990aa48e2393d98a
datapath-windows: Compute checksums for VXLAN inner packets.

Windows does not support VXLAN hardware offloading.

Currently we do not compute IP/TCP/UDP checksums for the inner packet. This
patch computes the checksums mentioned above in regards with the enabled
settings.

i.e. if IP checksum offloading is enabled for the inner packet we compute it.
The same applies for TCP and UDP packets.

This patch also revizes the computation of ones' complement over different
memory blocks, in the case the lengths are odd.

Also per documentation:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff568840%28v=vs.85%29.aspx
set the TCP flags FIN and PSH only for the last segment in the case LSO is
enabled.

Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Acked-by: Sairam Venugopal <vsairam@vmware.com>
Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
datapath-windows/ovsext/BufferMgmt.c
datapath-windows/ovsext/Checksum.c
datapath-windows/ovsext/Vxlan.c