[ovs-dev] [PATCH 4/6 v2] datapath-windows: nuke port # argument in IP helper

Alin Serdean aserdean at cloudbasesolutions.com
Wed Nov 25 05:13:17 UTC 2015


Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>

> -----Mesaj original-----
> De la: dev [mailto:dev-bounces at openvswitch.org] În numele Nithin Raju
> Trimis: Wednesday, November 18, 2015 6:14 PM
> Către: dev at openvswitch.org
> Subiect: [ovs-dev] [PATCH 4/6 v2] datapath-windows: nuke port # argument
> in IP helper
> 
> 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 <nithin at vmware.com>
> ---
>  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:
> --
> 1.8.5.6
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev


More information about the dev mailing list