Message ID | 20161216222812.128904-3-vsairam@vmware.com |
---|---|
State | Accepted |
Headers | show |
Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> > -----Original Message----- > From: ovs-dev-bounces@openvswitch.org [mailto:ovs-dev- > bounces@openvswitch.org] On Behalf Of Sairam Venugopal > Sent: Saturday, December 17, 2016 12:28 AM > To: dev@openvswitch.org > Subject: [ovs-dev] [PATCH v3 2/4] datapath-windows: Cleanup Conntrack > definitions and introduce related entries > > Consolidate the reusable structs and includes. Introduce the new > OVS_CT_REL_ENTRY to track related connections. > > Signed-off-by: Sairam Venugopal <vsairam@vmware.com> > --- > datapath-windows/ovsext/Conntrack.c | 12 --------- datapath- > windows/ovsext/Conntrack.h | 51 ++++++++++++++++++++++++++++++--- > ---- > 2 files changed, 42 insertions(+), 21 deletions(-) > > diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath- > windows/ovsext/Conntrack.c > index 47dba9d..70c32a4 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 733596d..7f1ec6f 100644 > --- a/datapath-windows/ovsext/Conntrack.h > +++ b/datapath-windows/ovsext/Conntrack.h > @@ -19,6 +19,13 @@ > > #include "precomp.h" > #include "Flow.h" > +#include "Debug.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 +87,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; > @@ -158,13 +178,26 @@ enum CT_UPDATE_RES > OvsConntrackUpdateOtherEntry(OVS_CT_ENTRY *conn_, enum > CT_UPDATE_RES OvsConntrackUpdateIcmpEntry(OVS_CT_ENTRY* conn_, > BOOLEAN reply, > UINT64 now); -NTSTATUS - > OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > - PVOID outBuffer, > - UINT32 outBufLen, > - UINT8 eventType, > - UINT32 nlmsgSeq, > - UINT32 nlmsgPid, > - UINT8 nfGenVersion, > - UINT32 dpIfIndex); > +NTSTATUS OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, > + PVOID outBuffer, > + UINT32 outBufLen, > + UINT8 eventType, > + UINT32 nlmsgSeq, > + 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 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index 47dba9d..70c32a4 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 733596d..7f1ec6f 100644 --- a/datapath-windows/ovsext/Conntrack.h +++ b/datapath-windows/ovsext/Conntrack.h @@ -19,6 +19,13 @@ #include "precomp.h" #include "Flow.h" +#include "Debug.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 +87,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; @@ -158,13 +178,26 @@ enum CT_UPDATE_RES OvsConntrackUpdateOtherEntry(OVS_CT_ENTRY *conn_, enum CT_UPDATE_RES OvsConntrackUpdateIcmpEntry(OVS_CT_ENTRY* conn_, BOOLEAN reply, UINT64 now); -NTSTATUS -OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, - PVOID outBuffer, - UINT32 outBufLen, - UINT8 eventType, - UINT32 nlmsgSeq, - UINT32 nlmsgPid, - UINT8 nfGenVersion, - UINT32 dpIfIndex); +NTSTATUS OvsCreateNlMsgFromCtEntry(POVS_CT_ENTRY entry, + PVOID outBuffer, + UINT32 outBufLen, + UINT8 eventType, + UINT32 nlmsgSeq, + 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_ */
Consolidate the reusable structs and includes. Introduce the new OVS_CT_REL_ENTRY to track related connections. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> --- datapath-windows/ovsext/Conntrack.c | 12 --------- datapath-windows/ovsext/Conntrack.h | 51 ++++++++++++++++++++++++++++++------- 2 files changed, 42 insertions(+), 21 deletions(-)