From patchwork Wed Nov 18 16:13:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Raju X-Patchwork-Id: 546103 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (li376-54.members.linode.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id F0A1114144B for ; Thu, 19 Nov 2015 03:14:27 +1100 (AEDT) Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id D126F102F3; Wed, 18 Nov 2015 08:13:46 -0800 (PST) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e4.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id 8E8F6102B2 for ; Wed, 18 Nov 2015 08:13:43 -0800 (PST) Received: from bar2.cudamail.com (unknown [192.168.21.12]) by mx1e4.cudamail.com (Postfix) with ESMTPS id D1FCC1E05DE for ; Wed, 18 Nov 2015 09:13:42 -0700 (MST) X-ASG-Debug-ID: 1447863222-03dc5308826b2f90001-byXFYA Received: from mx1-pf1.cudamail.com ([192.168.24.1]) by bar2.cudamail.com with ESMTP id Sd0VEoSWTR0KvDts (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 18 Nov 2015 09:13:42 -0700 (MST) X-Barracuda-Envelope-From: nithin@vmware.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.24.1 Received: from unknown (HELO smtp-outbound-2.vmware.com) (208.91.2.13) by mx1-pf1.cudamail.com with ESMTPS (DHE-RSA-AES256-SHA encrypted); 18 Nov 2015 16:13:41 -0000 Received-SPF: pass (mx1-pf1.cudamail.com: SPF record at _spf.vmware.com designates 208.91.2.13 as permitted sender) X-Barracuda-Apparent-Source-IP: 208.91.2.13 X-Barracuda-RBL-IP: 208.91.2.13 Received: from sc9-mailhost2.vmware.com (sc9-mailhost2.vmware.com [10.113.161.72]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 84C1F28AAB for ; Wed, 18 Nov 2015 08:13:39 -0800 (PST) Received: from pa-dbc1118.eng.vmware.com (unknown [10.162.210.18]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id 149B2B03E2; Wed, 18 Nov 2015 08:13:40 -0800 (PST) X-CudaMail-Envelope-Sender: nithin@vmware.com From: Nithin Raju To: dev@openvswitch.org X-CudaMail-Whitelist-To: dev@openvswitch.org X-CudaMail-MID: CM-E1-1117037209 X-CudaMail-DTE: 111815 X-CudaMail-Originating-IP: 208.91.2.13 Date: Wed, 18 Nov 2015 08:13:37 -0800 X-ASG-Orig-Subj: [##CM-E1-1117037209##][PATCH 4/6 v2] datapath-windows: nuke port # argument in IP helper Message-Id: <1447863219-20084-5-git-send-email-nithin@vmware.com> X-Mailer: git-send-email 1.8.5.6 In-Reply-To: <1447863219-20084-1-git-send-email-nithin@vmware.com> References: <1447863219-20084-1-git-send-email-nithin@vmware.com> X-Barracuda-Connect: UNKNOWN[192.168.24.1] X-Barracuda-Start-Time: 1447863222 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-ASG-Whitelist: Header =?UTF-8?B?eFwtY3VkYW1haWxcLXdoaXRlbGlzdFwtdG8=?= X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 X-ASG-Whitelist: EmailCat (corporate) Subject: [ovs-dev] [PATCH 4/6 v2] datapath-windows: nuke port # argument in IP helper X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" Port # doesn't make much sense since it has not been computed yet. Also, get rid of OVS_DEFAULT_PORT_NO and use OVS_DPPORT_NUMBER_INVALID instead. Signed-off-by: Nithin Raju Acked-by: Sairam Venugopal Acked-by: Alin Gabriel Serdean --- datapath-windows/ovsext/Actions.c | 2 +- datapath-windows/ovsext/BufferMgmt.c | 12 +++++++----- datapath-windows/ovsext/DpInternal.h | 2 -- datapath-windows/ovsext/IpHelper.c | 13 ++++++------- datapath-windows/ovsext/IpHelper.h | 2 +- datapath-windows/ovsext/Switch.c | 1 - datapath-windows/ovsext/User.c | 4 ++-- datapath-windows/ovsext/Vport.c | 2 +- 8 files changed, 18 insertions(+), 20 deletions(-) diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c index ce592b3..e902983 100644 --- a/datapath-windows/ovsext/Actions.c +++ b/datapath-windows/ovsext/Actions.c @@ -291,7 +291,7 @@ OvsDetectTunnelPkt(OvsForwardingContext *ovsFwdCtx, * If the packet will not be encapsulated, consume the tunnel context * by clearing it. */ - if (ovsFwdCtx->srcVportNo != OVS_DEFAULT_PORT_NO) { + if (ovsFwdCtx->srcVportNo != OVS_DPPORT_NUMBER_INVALID) { POVS_VPORT_ENTRY vport = OvsFindVportByPortNo( ovsFwdCtx->switchContext, ovsFwdCtx->srcVportNo); diff --git a/datapath-windows/ovsext/BufferMgmt.c b/datapath-windows/ovsext/BufferMgmt.c index ab7a18e..7ec073b 100644 --- a/datapath-windows/ovsext/BufferMgmt.c +++ b/datapath-windows/ovsext/BufferMgmt.c @@ -88,6 +88,7 @@ #include "Flow.h" #include "Checksum.h" #include "PacketParser.h" +#include "Vport.h" /* * -------------------------------------------------------------------------- @@ -418,7 +419,7 @@ OvsAllocateFixSizeNBL(PVOID ovsContext, OvsInitNBLContext(ctx, OVS_BUFFER_FROM_FIX_SIZE_POOL | OVS_BUFFER_PRIVATE_FORWARD_CONTEXT, size, - OVS_DEFAULT_PORT_NO); + OVS_DPPORT_NUMBER_INVALID); line = __LINE__; allocate_done: OVS_LOG_LOUD("Allocate Fix NBL: %p, line: %d", nbl, line); @@ -531,7 +532,7 @@ OvsAllocateVariableSizeNBL(PVOID ovsContext, OvsInitNBLContext(ctx, OVS_BUFFER_PRIVATE_MDL | OVS_BUFFER_PRIVATE_DATA | OVS_BUFFER_PRIVATE_FORWARD_CONTEXT | OVS_BUFFER_FROM_ZERO_SIZE_POOL, - size, OVS_DEFAULT_PORT_NO); + size, OVS_DPPORT_NUMBER_INVALID); OVS_LOG_LOUD("Allocate variable size NBL: %p", nbl); return nbl; @@ -583,7 +584,8 @@ OvsInitExternalNBLContext(PVOID ovsContext, * we use first nb to decide whether we need advance or retreat during * complete. */ - OvsInitNBLContext(ctx, flags, NET_BUFFER_DATA_LENGTH(nb), OVS_DEFAULT_PORT_NO); + OvsInitNBLContext(ctx, flags, NET_BUFFER_DATA_LENGTH(nb), + OVS_DPPORT_NUMBER_INVALID); return ctx; } @@ -799,7 +801,7 @@ OvsPartialCopyNBL(PVOID ovsContext, srcNb = NET_BUFFER_LIST_FIRST_NB(nbl); OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(srcNb) - copySize, - OVS_DEFAULT_PORT_NO); + OVS_DPPORT_NUMBER_INVALID); InterlockedIncrement((LONG volatile *)&srcCtx->refCount); @@ -1053,7 +1055,7 @@ OvsFullCopyNBL(PVOID ovsContext, OVS_BUFFER_PRIVATE_FORWARD_CONTEXT; OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(firstNb), - OVS_DEFAULT_PORT_NO); + OVS_DPPORT_NUMBER_INVALID); #ifdef DBG OvsDumpNetBufferList(nbl); diff --git a/datapath-windows/ovsext/DpInternal.h b/datapath-windows/ovsext/DpInternal.h index 4b58ae8..466a33a 100644 --- a/datapath-windows/ovsext/DpInternal.h +++ b/datapath-windows/ovsext/DpInternal.h @@ -294,8 +294,6 @@ typedef struct _OVS_EVENT_ENTRY { UINT32 type; } OVS_EVENT_ENTRY, *POVS_EVENT_ENTRY; -#define OVS_DEFAULT_PORT_NO 0xffffffff -#define OVS_DEFAULT_EVENT_STATUS 0xffffffff typedef struct _OVS_EVENT_STATUS { uint32_t numberEntries; diff --git a/datapath-windows/ovsext/IpHelper.c b/datapath-windows/ovsext/IpHelper.c index de0d457..8126222 100644 --- a/datapath-windows/ovsext/IpHelper.c +++ b/datapath-windows/ovsext/IpHelper.c @@ -38,7 +38,7 @@ KSTART_ROUTINE OvsStartIpHelper; * queued. */ static BOOLEAN ovsInternalIPConfigured; -static UINT32 ovsInternalPortNo; +static BOOLEAN ovsInternalAdapterUp; static GUID ovsInternalNetCfgId; static MIB_IF_ROW2 ovsInternalRow; static MIB_IPINTERFACE_ROW ovsInternalIPRow; @@ -1059,7 +1059,7 @@ VOID OvsInternalAdapterDown(VOID) { NdisAcquireSpinLock(&ovsIpHelperLock); - ovsInternalPortNo = OVS_DEFAULT_PORT_NO; + ovsInternalAdapterUp = FALSE; ovsInternalIPConfigured = FALSE; NdisReleaseSpinLock(&ovsIpHelperLock); @@ -1070,8 +1070,7 @@ OvsInternalAdapterDown(VOID) VOID -OvsInternalAdapterUp(UINT32 portNo, - GUID *netCfgInstanceId) +OvsInternalAdapterUp(GUID *netCfgInstanceId) { POVS_IP_HELPER_REQUEST request; @@ -1088,7 +1087,7 @@ OvsInternalAdapterUp(UINT32 portNo, request->command = OVS_IP_HELPER_INTERNAL_ADAPTER_UP; NdisAcquireSpinLock(&ovsIpHelperLock); - ovsInternalPortNo = portNo; + ovsInternalAdapterUp = TRUE; InsertHeadList(&ovsIpHelperRequestList, &request->link); ovsNumIpHelperRequests++; if (ovsNumIpHelperRequests == 1) { @@ -1160,7 +1159,7 @@ OvsEnqueueIpHelperRequest(POVS_IP_HELPER_REQUEST request) NdisAcquireSpinLock(&ovsIpHelperLock); - if (ovsInternalPortNo == OVS_DEFAULT_PORT_NO || + if (ovsInternalAdapterUp == FALSE || ovsInternalIPConfigured == FALSE) { NdisReleaseSpinLock(&ovsIpHelperLock); OvsFreeMemoryWithTag(request, OVS_IPHELPER_POOL_TAG); @@ -1554,7 +1553,7 @@ OvsInitIpHelper(NDIS_HANDLE ndisFilterHandle) RtlZeroMemory(&ovsInternalIPRow, sizeof (MIB_IPINTERFACE_ROW)); ovsInternalIP = 0; - ovsInternalPortNo = OVS_DEFAULT_PORT_NO; + ovsInternalAdapterUp = FALSE; InitializeListHead(&ovsSortedIPNeighList); diff --git a/datapath-windows/ovsext/IpHelper.h b/datapath-windows/ovsext/IpHelper.h index 19702a2..8562f86 100644 --- a/datapath-windows/ovsext/IpHelper.h +++ b/datapath-windows/ovsext/IpHelper.h @@ -114,7 +114,7 @@ typedef struct _OVS_IP_HELPER_THREAD_CONTEXT { NTSTATUS OvsInitIpHelper(NDIS_HANDLE ndisFilterHandle); VOID OvsCleanupIpHelper(VOID); -VOID OvsInternalAdapterUp(UINT32 portNo, GUID *netCfgInstanceId); +VOID OvsInternalAdapterUp(GUID *netCfgInstanceId); VOID OvsInternalAdapterDown(VOID); NTSTATUS OvsFwdIPHelperRequest(PNET_BUFFER_LIST nbl, UINT32 inPort, diff --git a/datapath-windows/ovsext/Switch.c b/datapath-windows/ovsext/Switch.c index 6ddf5dc..4d9cfda 100644 --- a/datapath-windows/ovsext/Switch.c +++ b/datapath-windows/ovsext/Switch.c @@ -564,7 +564,6 @@ OvsActivateSwitch(POVS_SWITCH_CONTEXT switchContext) OvsClearAllSwitchVports(switchContext); goto cleanup; } - // OvsPostEvent(OVS_DEFAULT_PORT_NO, OVS_DEFAULT_EVENT_STATUS); cleanup: if (status != NDIS_STATUS_SUCCESS) { diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c index 7828687..42af7f3 100644 --- a/datapath-windows/ovsext/User.c +++ b/datapath-windows/ovsext/User.c @@ -434,7 +434,7 @@ OvsExecuteDpIoctl(OvsPacketExecute *execute) NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState, 0); ndisStatus = OvsActionsExecute(gOvsSwitchContext, NULL, pNbl, vport ? vport->portNo : - OVS_DEFAULT_PORT_NO, + OVS_DPPORT_NUMBER_INVALID, NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP, &key, NULL, &layers, actions, execute->actionsLen); @@ -1208,4 +1208,4 @@ OvsReadPacketCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx, status = OvsReadDpIoctl(instance->fileObject, usrParamsCtx->outputBuffer, usrParamsCtx->outputLength, replyLen); return status; -} \ No newline at end of file +} diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 48845da..388920e 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -447,7 +447,7 @@ HvConnectNic(POVS_SWITCH_CONTEXT switchContext, NdisReleaseRWLock(switchContext->dispatchLock, &lockState); if (nicParam->NicType == NdisSwitchNicTypeInternal) { - OvsInternalAdapterUp(portNo, &nicParam->NetCfgInstanceId); + OvsInternalAdapterUp(&nicParam->NetCfgInstanceId); } done: