summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/BufferMgmt.h
diff options
context:
space:
mode:
authorAlin Serdean <aserdean@cloudbasesolutions.com>2016-02-11 01:38:54 +0000
committerBen Pfaff <blp@ovn.org>2016-02-10 20:34:50 -0800
commit7b383a56a76e2496f630bcfbc8f9b46f82c62081 (patch)
tree578bc659fcc8851672bc028c0650b0dfba9938b4 /datapath-windows/ovsext/BufferMgmt.h
parent4b7396908d07a1a3576aad8b7ea2602e8fd072b5 (diff)
downloadopenvswitch-7b383a56a76e2496f630bcfbc8f9b46f82c62081.tar.gz
datapath-windows: Refactor sofware offloads and mss
The purpose of this patch is to refactor the software offloads found in the VXLAN and GRE code and also to refactor how the maximmum segment size for a given NBL is obtained. This patch introduces two functions OvsApplySWChecksumOnNB and OVSGetTcpMSS. OVSGetTcpMSS - will return the mss found in a given NBL. OvsApplySWChecksumOnNB - will compute and set software offloads for a given NBL. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Sorin Vinturis <svinturis at cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/BufferMgmt.h')
-rw-r--r--datapath-windows/ovsext/BufferMgmt.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/datapath-windows/ovsext/BufferMgmt.h b/datapath-windows/ovsext/BufferMgmt.h
index 79abc3d9d..11a05b2c5 100644
--- a/datapath-windows/ovsext/BufferMgmt.h
+++ b/datapath-windows/ovsext/BufferMgmt.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 VMware, Inc.
+ * Copyright (c) 2014, 2016 VMware, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -63,7 +63,6 @@ typedef union _OVS_BUFFER_CONTEXT {
UINT64 value[MEM_ALIGN_SIZE(16) >> 3];
} OVS_BUFFER_CONTEXT, *POVS_BUFFER_CONTEXT;
-
typedef struct _OVS_NBL_POOL {
NDIS_SWITCH_CONTEXT ndisContext;
NDIS_HANDLE ndisHandle;
@@ -83,11 +82,13 @@ typedef struct _OVS_NBL_POOL {
NDIS_STATUS OvsInitBufferPool(PVOID context);
+
VOID OvsCleanupBufferPool(PVOID context);
PNET_BUFFER_LIST OvsAllocateFixSizeNBL(PVOID context,
UINT32 size,
UINT32 headRoom);
+
PNET_BUFFER_LIST OvsAllocateVariableSizeNBL(PVOID context,
UINT32 size,
UINT32 headRoom);
@@ -106,20 +107,27 @@ PNET_BUFFER_LIST OvsPartialCopyToMultipleNBLs(PVOID context,
UINT32 copySize,
UINT32 headRoom,
BOOLEAN copyNblInfo);
+
PNET_BUFFER_LIST OvsFullCopyNBL(PVOID context, PNET_BUFFER_LIST nbl,
UINT32 headRoom, BOOLEAN copyNblInfo);
+
PNET_BUFFER_LIST OvsTcpSegmentNBL(PVOID context,
PNET_BUFFER_LIST nbl,
POVS_PACKET_HDR_INFO hdrInfo,
UINT32 MSS,
UINT32 headRoom);
+
PNET_BUFFER_LIST OvsAllocateNBLFromBuffer(PVOID context,
PVOID buffer,
ULONG length);
-PNET_BUFFER_LIST OvsFullCopyToMultipleNBLs(PVOID context,
- PNET_BUFFER_LIST nbl, UINT32 headRoom, BOOLEAN copyNblInfo);
+
+PNET_BUFFER_LIST OvsFullCopyToMultipleNBLs(PVOID context, PNET_BUFFER_LIST nbl,
+ UINT32 headRoom,
+ BOOLEAN copyNblInfo);
+
PNET_BUFFER_LIST OvsCompleteNBL(PVOID context, PNET_BUFFER_LIST nbl,
BOOLEAN updateRef);
+
NDIS_STATUS OvsSetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32 portNo);
NDIS_STATUS OvsGetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32 *portNo);