[ovs-dev] [PATCH 2/4] datapath-windows: Cleanup Conntrack definitions and introduce related entries

Sairam Venugopal vsairam at vmware.com
Thu Dec 1 21:19:02 UTC 2016


Consolidate the reusable structs and includes. Introduce the new
OVS_CT_REL_ENTRY to track related connections.

Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
---
 datapath-windows/ovsext/Conntrack.c | 12 ------------
 datapath-windows/ovsext/Conntrack.h | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c
index f482783..d240c29 100644
--- a/datapath-windows/ovsext/Conntrack.c
+++ b/datapath-windows/ovsext/Conntrack.c
@@ -14,27 +14,15 @@
  * limitations under the License.
  */
 
-#ifdef OVS_DBG_MOD
-#undef OVS_DBG_MOD
-#endif
-#define OVS_DBG_MOD OVS_DBG_CONTRK
-
 #include "Conntrack.h"
 #include "Jhash.h"
 #include "PacketParser.h"
-#include "Debug.h"
 #include "Event.h"
 
 #define WINDOWS_TICK 10000000
 #define SEC_TO_UNIX_EPOCH 11644473600LL
 #define SEC_TO_NANOSEC 1000000000LL
 
-typedef struct _OVS_CT_THREAD_CTX {
-    KEVENT      event;
-    PVOID       threadObject;
-    UINT32      exit;
-} OVS_CT_THREAD_CTX, *POVS_CT_THREAD_CTX;
-
 KSTART_ROUTINE ovsConntrackEntryCleaner;
 static PLIST_ENTRY ovsConntrackTable;
 static OVS_CT_THREAD_CTX ctThreadCtx;
diff --git a/datapath-windows/ovsext/Conntrack.h b/datapath-windows/ovsext/Conntrack.h
index 428b12e..44fdfa0 100644
--- a/datapath-windows/ovsext/Conntrack.h
+++ b/datapath-windows/ovsext/Conntrack.h
@@ -19,6 +19,14 @@
 
 #include "precomp.h"
 #include "Flow.h"
+#include "Debug.h"
+#include "NetProto.h"
+#include <stddef.h>
+
+#ifdef OVS_DBG_MOD
+#undef OVS_DBG_MOD
+#endif
+#define OVS_DBG_MOD OVS_DBG_CONTRK
 
 struct ct_addr {
     union {
@@ -80,6 +88,19 @@ typedef struct OVS_CT_ENTRY {
     struct ovs_key_ct_labels labels;
 } OVS_CT_ENTRY, *POVS_CT_ENTRY;
 
+typedef struct OVS_CT_REL_ENTRY {
+    OVS_CT_KEY      key;
+    POVS_CT_ENTRY   parent;
+    UINT64          expiration;
+    LIST_ENTRY      link;
+} OVS_CT_REL_ENTRY, *POVS_CT_REL_ENTRY;
+
+typedef struct _OVS_CT_THREAD_CTX {
+    KEVENT      event;
+    PVOID       threadObject;
+    UINT32      exit;
+} OVS_CT_THREAD_CTX, *POVS_CT_THREAD_CTX;
+
 typedef struct OvsConntrackKeyLookupCtx {
     OVS_CT_KEY      key;
     POVS_CT_ENTRY   entry;
@@ -167,4 +188,20 @@ OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry,
                           UINT32 nlmsgPid,
                           UINT8 nfGenVersion,
                           UINT32 dpIfIndex);
+
+/* Tracking related connections */
+NTSTATUS OvsInitCtRelated(POVS_SWITCH_CONTEXT context);
+VOID OvsCleanupCtRelated(VOID);
+NDIS_STATUS
+OvsCtRelatedEntryCreate(UINT8 ipProto,
+                        UINT16 dl_type,
+                        UINT32 serverIp,
+                        UINT32 clientIp,
+                        UINT16 serverPort,
+                        UINT16 clientPort,
+                        UINT64 currentTime,
+                        POVS_CT_ENTRY parent);
+POVS_CT_ENTRY
+OvsCtRelatedLookup(OVS_CT_KEY key, UINT64 currentTime);
+
 #endif /* __OVS_CONNTRACK_H_ */
-- 
2.9.0.windows.1



More information about the dev mailing list