From 13efe4209b6ab3671c3afadbc10c9136d6cce221 Mon Sep 17 00:00:00 2001 From: Sairam Venugopal Date: Wed, 26 Sep 2018 13:34:24 -0700 Subject: datapath-windows: Move OVS_IPHELPER_INSTANCE to IpHelper.h Move the IPHelper Instance to the main header file and update the usage to explicitly point to POVS_IPHELPER_INSTANCE instead of PVOID. Also rename the ipn->context to ipn->instance to make it more readable. Found by inspection. Signed-off-by: Sairam Venugopal Acked-by: Alin Gabriel Serdean Signed-off-by: Alin Gabriel Serdean --- datapath-windows/ovsext/IpHelper.c | 32 ++------------------------- datapath-windows/ovsext/IpHelper.h | 45 ++++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 39 deletions(-) (limited to 'datapath-windows') diff --git a/datapath-windows/ovsext/IpHelper.c b/datapath-windows/ovsext/IpHelper.c index c734b0ecc..876da9225 100644 --- a/datapath-windows/ovsext/IpHelper.c +++ b/datapath-windows/ovsext/IpHelper.c @@ -39,34 +39,6 @@ static LIST_ENTRY ovsInstanceList; /* Passive-level lock used to protect the internal adapter object list. */ static ERESOURCE ovsInstanceListLock; -/* - * This structure is used to define each adapter instance. - * - * Note: - * Only when the internal IP is configured and virtual - * internal port is connected, the IP helper request can be - * queued. - * - * We only keep internal IP for reference, it will not be used for determining - * SRC IP of the Tunnel. - * - * The lock must not raise the IRQL higher than PASSIVE_LEVEL in order for the - * route manipulation functions, i.e. GetBestRoute, to work. - */ -typedef struct _OVS_IPHELPER_INSTANCE -{ - LIST_ENTRY link; - - BOOLEAN isIpConfigured; - UINT32 portNo; - GUID netCfgId; - MIB_IF_ROW2 internalRow; - MIB_IPINTERFACE_ROW internalIPRow; - UINT32 ipAddress; - - ERESOURCE lock; -} OVS_IPHELPER_INSTANCE, *POVS_IPHELPER_INSTANCE; - /* * FWD_ENTRY --------> IPFORWARD_ENTRY * | @@ -1070,7 +1042,7 @@ OvsCreateIPNeighEntry(PMIB_IPNET_ROW2 ipNeigh, RtlCopyMemory(entry->macAddr, ipNeigh->PhysicalAddress, ETH_ADDR_LEN); InitializeListHead(&entry->fwdList); - entry->context = (PVOID)instance; + entry->instance = instance; return entry; } @@ -1934,7 +1906,7 @@ OvsStartIpHelper(PVOID data) ipAddr = ipn->ipAddr; MIB_IPNET_ROW2 ipNeigh; NTSTATUS status; - POVS_IPHELPER_INSTANCE instance = (POVS_IPHELPER_INSTANCE)ipn->context; + POVS_IPHELPER_INSTANCE instance = ipn->instance; NdisReleaseSpinLock(&ovsIpHelperLock); ExAcquireResourceExclusiveLite(&ovsInstanceListLock, TRUE); diff --git a/datapath-windows/ovsext/IpHelper.h b/datapath-windows/ovsext/IpHelper.h index 0556965cc..25adf6ea2 100644 --- a/datapath-windows/ovsext/IpHelper.h +++ b/datapath-windows/ovsext/IpHelper.h @@ -32,17 +32,44 @@ #define OVS_IPNEIGH_TIMEOUT 100000000 // 10 s + /* + * This structure is used to define each adapter instance. + * + * Note: + * Only when the internal IP is configured and virtual + * internal port is connected, the IP helper request can be + * queued. + * + * We only keep internal IP for reference, it will not be used for determining + * SRC IP of the Tunnel. + * + * The lock must not raise the IRQL higher than PASSIVE_LEVEL in order for the + * route manipulation functions, i.e. GetBestRoute, to work. + */ +typedef struct _OVS_IPHELPER_INSTANCE +{ + LIST_ENTRY link; + + BOOLEAN isIpConfigured; + UINT32 portNo; + GUID netCfgId; + MIB_IF_ROW2 internalRow; + MIB_IPINTERFACE_ROW internalIPRow; + UINT32 ipAddress; + + ERESOURCE lock; +} OVS_IPHELPER_INSTANCE, *POVS_IPHELPER_INSTANCE; typedef struct _OVS_IPNEIGH_ENTRY { - UINT8 macAddr[ETH_ADDR_LEN]; - UINT16 refCount; - UINT32 ipAddr; - UINT32 pad; - UINT64 timeout; - LIST_ENTRY link; - LIST_ENTRY slink; - LIST_ENTRY fwdList; - PVOID context; + UINT8 macAddr[ETH_ADDR_LEN]; + UINT16 refCount; + UINT32 ipAddr; + UINT32 pad; + UINT64 timeout; + LIST_ENTRY link; + LIST_ENTRY slink; + LIST_ENTRY fwdList; + POVS_IPHELPER_INSTANCE instance; } OVS_IPNEIGH_ENTRY, *POVS_IPNEIGH_ENTRY; typedef struct _OVS_IPFORWARD_ENTRY { -- cgit v1.2.1