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