[ovs-dev] [PATCH v2 1/7] datapath-windows: Explicitly name vport related event to vportEvent

Yin Lin yinlin10 at gmail.com
Tue Jul 26 03:04:31 UTC 2016


Acked-By: Yin Lin <linyi at vmware.com>

On Mon, Jul 25, 2016 at 5:04 PM, Sairam Venugopal <vsairam at vmware.com>
wrote:

> OVS_EVENT_ENTRY currently handles only Vport related events. Updating the
> name of the struct to OVS_VPORT_EVENT_ENTRY. Remove OVS_EVENT_STATUS since
> it's currently not in use. Update the datapath to refer to events as
> vportEvents. This will aid in the introduction of other events.
>
> v2: Squash 1/9 and 3/9 into one commit. Added Acked-by.
>
> Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
> Acked-By: Yin Lin <linyi at vmware.com>
> Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
> ---
>  datapath-windows/ovsext/Datapath.c   |  7 ++++---
>  datapath-windows/ovsext/DpInternal.h | 10 ++--------
>  datapath-windows/ovsext/Event.c      | 10 +++++-----
>  datapath-windows/ovsext/Event.h      |  7 ++++---
>  datapath-windows/ovsext/Vport.c      | 12 ++++++------
>  5 files changed, 21 insertions(+), 25 deletions(-)
>
> diff --git a/datapath-windows/ovsext/Datapath.c
> b/datapath-windows/ovsext/Datapath.c
> index 4f47be5..e4d6ab1 100644
> --- a/datapath-windows/ovsext/Datapath.c
> +++ b/datapath-windows/ovsext/Datapath.c
> @@ -1582,7 +1582,7 @@ MapIrpOutputBuffer(PIRP irp,
>   */
>  static NTSTATUS
>  OvsPortFillInfo(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
> -                POVS_EVENT_ENTRY eventEntry,
> +                POVS_VPORT_EVENT_ENTRY eventEntry,
>                  PNL_BUFFER nlBuf)
>  {
>      NTSTATUS status;
> @@ -1659,7 +1659,7 @@ OvsReadEventCmdHandler(POVS_USER_PARAMS_CONTEXT
> usrParamsCtx,
>  #endif
>      NL_BUFFER nlBuf;
>      NTSTATUS status;
> -    OVS_EVENT_ENTRY eventEntry;
> +    OVS_VPORT_EVENT_ENTRY eventEntry;
>
>      ASSERT(usrParamsCtx->devOp == OVS_READ_DEV_OP);
>
> @@ -1675,7 +1675,8 @@ OvsReadEventCmdHandler(POVS_USER_PARAMS_CONTEXT
> usrParamsCtx,
>      NlBufInit(&nlBuf, usrParamsCtx->outputBuffer,
> usrParamsCtx->outputLength);
>
>      /* remove an event entry from the event queue */
> -    status = OvsRemoveEventEntry(usrParamsCtx->ovsInstance, &eventEntry);
> +    status = OvsRemoveVportEventEntry(usrParamsCtx->ovsInstance,
> +                                      &eventEntry);
>      if (status != STATUS_SUCCESS) {
>          /* If there were not elements, read should return no data. */
>          status = STATUS_SUCCESS;
> diff --git a/datapath-windows/ovsext/DpInternal.h
> b/datapath-windows/ovsext/DpInternal.h
> index 42b5ec9..8abe61d 100644
> --- a/datapath-windows/ovsext/DpInternal.h
> +++ b/datapath-windows/ovsext/DpInternal.h
> @@ -328,19 +328,13 @@ enum {
>  };
>
>
> -typedef struct _OVS_EVENT_ENTRY {
> +typedef struct _OVS_VPORT_EVENT_ENTRY {
>      UINT32 portNo;
>      OVS_VPORT_TYPE ovsType;
>      UINT32 upcallPid;
>      CHAR ovsName[OVS_MAX_PORT_NAME_LENGTH];
>      UINT32 type;
> -} OVS_EVENT_ENTRY, *POVS_EVENT_ENTRY;
> -
> -
> -typedef struct _OVS_EVENT_STATUS {
> -    uint32_t numberEntries;
> -    OVS_EVENT_ENTRY eventEntries[0];
> -} OVS_EVENT_STATUS, *POVS_EVENT_STATUS;
> +} OVS_VPORT_EVENT_ENTRY, *POVS_VPORT_EVENT_ENTRY;
>
>  #pragma pack(pop)
>
> diff --git a/datapath-windows/ovsext/Event.c
> b/datapath-windows/ovsext/Event.c
> index f9bea7f..8c7c3ec 100644
> --- a/datapath-windows/ovsext/Event.c
> +++ b/datapath-windows/ovsext/Event.c
> @@ -109,7 +109,7 @@ OvsCleanupEvent(POVS_OPEN_INSTANCE instance)
>   *
> --------------------------------------------------------------------------
>   */
>  VOID
> -OvsPostEvent(POVS_EVENT_ENTRY event)
> +OvsPostVportEvent(POVS_VPORT_EVENT_ENTRY event)
>  {
>      POVS_EVENT_QUEUE_ELEM elem;
>      POVS_EVENT_QUEUE queue;
> @@ -141,7 +141,7 @@ OvsPostEvent(POVS_EVENT_ENTRY event)
>              return;
>          }
>
> -        RtlCopyMemory(&elem->event, event, sizeof elem->event);
> +        RtlCopyMemory(&elem->vportEvent, event, sizeof elem->vportEvent);
>          InsertTailList(&queue->elemList, &elem->link);
>          queue->numElems++;
>          OVS_LOG_INFO("Queue: %p, numElems: %d",
> @@ -409,8 +409,8 @@ unlock:
>   *
> --------------------------------------------------------------------------
>   */
>  NTSTATUS
> -OvsRemoveEventEntry(POVS_OPEN_INSTANCE instance,
> -                    POVS_EVENT_ENTRY entry)
> +OvsRemoveVportEventEntry(POVS_OPEN_INSTANCE instance,
> +                         POVS_VPORT_EVENT_ENTRY entry)
>  {
>      NTSTATUS status = STATUS_UNSUCCESSFUL;
>      POVS_EVENT_QUEUE queue;
> @@ -427,7 +427,7 @@ OvsRemoveEventEntry(POVS_OPEN_INSTANCE instance,
>
>      if (queue->numElems) {
>          elem = (POVS_EVENT_QUEUE_ELEM)RemoveHeadList(&queue->elemList);
> -        *entry = elem->event;
> +        *entry = elem->vportEvent;
>          OvsFreeMemoryWithTag(elem, OVS_EVENT_POOL_TAG);
>          queue->numElems--;
>          status = STATUS_SUCCESS;
> diff --git a/datapath-windows/ovsext/Event.h
> b/datapath-windows/ovsext/Event.h
> index b087875..255594c 100644
> --- a/datapath-windows/ovsext/Event.h
> +++ b/datapath-windows/ovsext/Event.h
> @@ -19,7 +19,7 @@
>
>  typedef struct _OVS_EVENT_QUEUE_ELEM {
>      LIST_ENTRY link;
> -    OVS_EVENT_ENTRY event;
> +    OVS_VPORT_EVENT_ENTRY vportEvent;
>  } OVS_EVENT_QUEUE_ELEM, *POVS_EVENT_QUEUE_ELEM;
>
>  typedef struct _OVS_EVENT_QUEUE {
> @@ -38,7 +38,7 @@ VOID OvsCleanupEventQueue(VOID);
>  struct _OVS_OPEN_INSTANCE;
>
>  VOID OvsCleanupEvent(struct _OVS_OPEN_INSTANCE *instance);
> -VOID OvsPostEvent(POVS_EVENT_ENTRY event);
> +VOID OvsPostVportEvent(POVS_VPORT_EVENT_ENTRY event);
>  NTSTATUS OvsSubscribeEventIoctl(PFILE_OBJECT fileObject, PVOID
> inputBuffer,
>                                  UINT32 inputLength);
>  NTSTATUS OvsPollEventIoctl(PFILE_OBJECT fileObject, PVOID inputBuffer,
> @@ -46,6 +46,7 @@ NTSTATUS OvsPollEventIoctl(PFILE_OBJECT fileObject,
> PVOID inputBuffer,
>                             UINT32 outputLength, UINT32 *replyLen);
>  NTSTATUS OvsWaitEventIoctl(PIRP irp, PFILE_OBJECT fileObject,
>                             PVOID inputBuffer, UINT32 inputLength);
> -NTSTATUS OvsRemoveEventEntry(PVOID instance, POVS_EVENT_ENTRY entry);
> +NTSTATUS OvsRemoveVportEventEntry(POVS_OPEN_INSTANCE instance,
> +                                  POVS_VPORT_EVENT_ENTRY entry);
>
>  #endif /* __EVENT_H_ */
> diff --git a/datapath-windows/ovsext/Vport.c
> b/datapath-windows/ovsext/Vport.c
> index 22741db..428259b 100644
> --- a/datapath-windows/ovsext/Vport.c
> +++ b/datapath-windows/ovsext/Vport.c
> @@ -292,7 +292,7 @@ HvDeletePort(POVS_SWITCH_CONTEXT switchContext,
>       * delete will delete the vport.
>      */
>      if (vport) {
> -        OVS_EVENT_ENTRY event;
> +        OVS_VPORT_EVENT_ENTRY event;
>
>          event.portNo = vport->portNo;
>          event.ovsType = vport->ovsType;
> @@ -300,7 +300,7 @@ HvDeletePort(POVS_SWITCH_CONTEXT switchContext,
>          RtlCopyMemory(&event.ovsName, &vport->ovsName, sizeof
> event.ovsName);
>          event.type = OVS_EVENT_LINK_DOWN;
>          OvsRemoveAndDeleteVport(NULL, switchContext, vport, TRUE, FALSE);
> -        OvsPostEvent(&event);
> +        OvsPostVportEvent(&event);
>      } else {
>          OVS_LOG_WARN("Vport not present.");
>      }
> @@ -531,14 +531,14 @@ HvUpdateNic(POVS_SWITCH_CONTEXT switchContext,
>      vport->numaNodeId = nicParam->NumaNodeId;
>
>      if (nameChanged) {
> -        OVS_EVENT_ENTRY evt;
> +        OVS_VPORT_EVENT_ENTRY evt;
>          evt.portNo = vport->portNo;
>          evt.ovsType = vport->ovsType;
>          evt.upcallPid = vport->upcallPid;
>          RtlCopyMemory(&evt.ovsName, &vport->ovsName, sizeof evt.ovsName);
>          evt.type = OVS_EVENT_LINK_DOWN;
>          OvsRemoveAndDeleteVport(NULL, switchContext, vport, FALSE, TRUE);
> -        OvsPostEvent(&evt);
> +        OvsPostVportEvent(&evt);
>      }
>
>      NdisReleaseRWLock(switchContext->dispatchLock, &lockState);
> @@ -567,7 +567,7 @@ HvDisconnectNic(POVS_SWITCH_CONTEXT switchContext,
>      POVS_VPORT_ENTRY vport;
>      LOCK_STATE_EX lockState;
>      BOOLEAN isInternalPort = FALSE;
> -    OVS_EVENT_ENTRY event;
> +    OVS_VPORT_EVENT_ENTRY event;
>
>      VPORT_NIC_ENTER(nicParam);
>
> @@ -609,7 +609,7 @@ HvDisconnectNic(POVS_SWITCH_CONTEXT switchContext,
>       */
>      if (OvsIsRealExternalVport(vport)) {
>          OvsRemoveAndDeleteVport(NULL, switchContext, vport, FALSE, TRUE);
> -        OvsPostEvent(&event);
> +        OvsPostVportEvent(&event);
>      }
>      NdisReleaseRWLock(switchContext->dispatchLock, &lockState);
>
> --
> 2.9.0.windows.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list