Acked-By: Yin Lin <li...@vmware.com> On Mon, Jul 25, 2016 at 5:04 PM, Sairam Venugopal <vsai...@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 <vsai...@vmware.com> > Acked-By: Yin Lin <li...@vmware.com> > Acked-by: Alin Gabriel Serdean <aserd...@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@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev