datapath-windows: Refactor Conntrack Module in Hyper-V
authorSairam Venugopal <vsairam@vmware.com>
Thu, 14 Apr 2016 19:07:11 +0000 (12:07 -0700)
committerBen Pfaff <blp@ovn.org>
Thu, 21 Apr 2016 23:53:07 +0000 (16:53 -0700)
Minor refactors around naming and reusability in lieu of adding support for other
protocols for tracking connections.

Signed-off-by: Sairam Venugopal <vsairam@vmware.com>
Acked-by: Nithin Raju <nithin@vmware.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
datapath-windows/ovsext/Conntrack-tcp.c
datapath-windows/ovsext/Conntrack.c
datapath-windows/ovsext/Conntrack.h

index 3e25ba5..ebf0c95 100644 (file)
@@ -58,13 +58,6 @@ enum {
     TCPOPT_WINDOW = 3,
 };
 
-/* Given POINTER, the address of the given MEMBER in a STRUCT object, returns
-   the STRUCT object. */
-#define CONTAINER_OF(POINTER, STRUCT, MEMBER)                           \
-        ((STRUCT *) (void *) ((char *) (POINTER) - \
-         offsetof (STRUCT, MEMBER)))
-
-
 /* TCP sequence numbers are 32 bit integers operated
  * on with modular arithmetic.  These macros can be
  * used to compare such integers. */
@@ -227,7 +220,7 @@ OvsCastConntrackEntryToTcpEntry(OVS_CT_ENTRY* conn)
 }
 
 enum CT_UPDATE_RES
-OvsConntrackUpdateTcpEntry(struct OVS_CT_ENTRY* conn_,
+OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_,
                            const TCPHdr *tcp,
                            PNET_BUFFER_LIST nbl,
                            BOOLEAN reply,
@@ -488,9 +481,9 @@ OvsConntrackValidateTcpPacket(const TCPHdr *tcp)
 }
 
 OVS_CT_ENTRY *
-OvsNewTcpConntrack(const TCPHdr *tcp,
-                   PNET_BUFFER_LIST nbl,
-                   UINT64 now)
+OvsConntrackCreateTcpEntry(const TCPHdr *tcp,
+                           PNET_BUFFER_LIST nbl,
+                           UINT64 now)
 {
     struct conn_tcp* newconn = NULL;
     struct tcp_peer *src, *dst;
index fbeb70c..6391ce8 100644 (file)
@@ -164,7 +164,7 @@ OvsCtEntryCreate(const TCPHdr *tcp,
 
     state |= OVS_CS_F_NEW;
     if (commit) {
-        entry = OvsNewTcpConntrack(tcp, curNbl, currentTime);
+        entry = OvsConntrackCreateTcpEntry(tcp, curNbl, currentTime);
         NdisMoveMemory(&entry->key, &ctx->key, sizeof (OVS_CT_KEY));
         NdisMoveMemory(&entry->rev_key, &ctx->key, sizeof (OVS_CT_KEY));
         OvsCtKeyReverse(&entry->rev_key);
index 3a73f21..a754544 100644 (file)
@@ -82,6 +82,11 @@ typedef struct OvsConntrackKeyLookupCtx {
 #define CT_HASH_TABLE_MASK (CT_HASH_TABLE_SIZE - 1)
 #define CT_ENTRY_TIMEOUT (2 * 600000000)   // 2m
 #define CT_CLEANUP_INTERVAL (2 * 600000000) // 2m
+/* Given POINTER, the address of the given MEMBER in a STRUCT object, returns
+   the STRUCT object. */
+#define CONTAINER_OF(POINTER, STRUCT, MEMBER)                           \
+        ((STRUCT *) (void *) ((char *) (POINTER) - \
+         offsetof (STRUCT, MEMBER)))
 
 VOID OvsCleanupConntrack(VOID);
 NTSTATUS OvsInitConntrack(POVS_SWITCH_CONTEXT context);
@@ -91,10 +96,10 @@ NDIS_STATUS OvsExecuteConntrackAction(PNET_BUFFER_LIST curNbl,
                                       OvsFlowKey *key,
                                       const PNL_ATTR a);
 BOOLEAN OvsConntrackValidateTcpPacket(const TCPHdr *tcp);
-OVS_CT_ENTRY * OvsNewTcpConntrack(const TCPHdr *tcp,
-                                  PNET_BUFFER_LIST nbl,
-                                  UINT64 now);
-enum CT_UPDATE_RES OvsConntrackUpdateTcpEntry(struct OVS_CT_ENTRY* conn_,
+OVS_CT_ENTRY * OvsConntrackCreateTcpEntry(const TCPHdr *tcp,
+                                          PNET_BUFFER_LIST nbl,
+                                          UINT64 now);
+enum CT_UPDATE_RES OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_,
                                               const TCPHdr *tcp,
                                               PNET_BUFFER_LIST nbl,
                                               BOOLEAN reply,