summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/PacketParser.h
diff options
context:
space:
mode:
authorPaul Boca <pboca@cloudbasesolutions.com>2016-06-06 16:45:00 +0000
committerBen Pfaff <blp@ovn.org>2016-06-07 10:52:05 -0700
commitc3e85147d9067c9c19451ad36505bcf70eb470b9 (patch)
tree4cae12c3d7784a86e8b4deebff2b52636fddff8a /datapath-windows/ovsext/PacketParser.h
parentab7fc30e13b4f07acb659b6801d4f98ddba2f1a6 (diff)
downloadopenvswitch-c3e85147d9067c9c19451ad36505bcf70eb470b9.tar.gz
datapath-windows: Improved offloading on STT tunnel
*Added OvsExtractLayers - populates only the layers field without unnecessary memory operations for flow part *If in STT header the flags are 0 then force packets checksums calculation on receive. *Ensure correct pseudo checksum is set for LSO both on send and receive. Linux includes the segment length to TCP pseudo-checksum conforming to RFC 793 but in case of LSO Windows expects this to be only on Source IP Address, Destination IP Address, and Protocol. *Fragment expiration on rx side of STT was set to 30 seconds, but the correct timeout would be TTL of the packet Signed-off-by: Paul-Daniel Boca <pboca@cloudbasesolutions.com> Acked-by: Sairam Venugopal <vsairam@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/PacketParser.h')
-rw-r--r--datapath-windows/ovsext/PacketParser.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/datapath-windows/ovsext/PacketParser.h b/datapath-windows/ovsext/PacketParser.h
index 47d227f59..f1d7f283d 100644
--- a/datapath-windows/ovsext/PacketParser.h
+++ b/datapath-windows/ovsext/PacketParser.h
@@ -22,7 +22,7 @@
const VOID* OvsGetPacketBytes(const NET_BUFFER_LIST *_pNB, UINT32 len,
UINT32 SrcOffset, VOID *storage);
-NDIS_STATUS OvsParseIPv6(const NET_BUFFER_LIST *packet, OvsFlowKey *key,
+NDIS_STATUS OvsParseIPv6(const NET_BUFFER_LIST *packet, Ipv6Key *key,
POVS_PACKET_HDR_INFO layers);
VOID OvsParseTcp(const NET_BUFFER_LIST *packet, L4Key *flow,
POVS_PACKET_HDR_INFO layers);
@@ -30,8 +30,10 @@ VOID OvsParseUdp(const NET_BUFFER_LIST *packet, L4Key *flow,
POVS_PACKET_HDR_INFO layers);
VOID OvsParseSctp(const NET_BUFFER_LIST *packet, L4Key *flow,
POVS_PACKET_HDR_INFO layers);
-NDIS_STATUS OvsParseIcmpV6(const NET_BUFFER_LIST *packet, OvsFlowKey *key,
- POVS_PACKET_HDR_INFO layers);
+NDIS_STATUS OvsParseIcmpV6(const NET_BUFFER_LIST *packet,
+ Ipv6Key *ipv6Key,
+ Icmp6Key *flow,
+ POVS_PACKET_HDR_INFO layers);
static __inline ULONG
OvsPacketLenNBL(const NET_BUFFER_LIST *_pNB)