[ovs-dev] [PATCH 01/14] datapath-windows: Remove the old IOCTL vport functions.

Eitan Eliahu eliahue at vmware.com
Thu Oct 2 17:49:22 UTC 2014


Acked-by: Eitan Eliahu <eliahue at vmware.com>

-----Original Message-----
From: Samuel Ghinet [mailto:sghinet at cloudbasesolutions.com] 
Sent: Tuesday, September 30, 2014 7:43 AM
To: dev at openvswitch.org
Cc: Alin Serdean; Nithin Raju; Eitan Eliahu; Ankur Sharma
Subject: [PATCH 01/14] datapath-windows: Remove the old IOCTL vport functions.

The old IOCTL vport functions (using the non-netlink device) are no longer needed. They should be removed.

Signed-off-by: Samuel Ghinet <sghinet at cloudbasesolutions.com>
---
 datapath-windows/ovsext/Vport.c | 403 ----------------------------------------
 datapath-windows/ovsext/Vport.h |  15 --
 2 files changed, 418 deletions(-)

diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 14b68d9..bd28606 100644
--- a/datapath-windows/ovsext/Vport.c
+++ b/datapath-windows/ovsext/Vport.c
@@ -940,129 +940,6 @@ OvsClearAllSwitchVports(POVS_SWITCH_CONTEXT switchContext)  }
 
 NTSTATUS
-OvsDumpVportIoctl(PVOID inputBuffer,
-                  UINT32 inputLength,
-                  PVOID outputBuffer,
-                  UINT32 outputLength,
-                  UINT32 *replyLen)
-{
-    UINT32 numVports, count;
-    UINT32 dpNo, i;
-    UINT32 *outPtr;
-    POVS_VPORT_ENTRY vport;
-    LOCK_STATE_EX lockState;
-
-    if (inputLength < sizeof (UINT32)) {
-        return STATUS_INVALID_PARAMETER;
-    }
-    dpNo = *(UINT32 *)inputBuffer;
-
-    NdisAcquireSpinLock(gOvsCtrlLock);
-    if (gOvsSwitchContext == NULL ||
-        gOvsSwitchContext->dpNo != dpNo) {
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        return STATUS_INVALID_PARAMETER;
-    }
-    /*
-     * We should hold SwitchContext RW lock
-     */
-
-    NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState,
-                          NDIS_RWL_AT_DISPATCH_LEVEL);
-    numVports = outputLength/sizeof (UINT32);
-    numVports = MIN(gOvsSwitchContext->numVports, numVports);
-    outPtr = (UINT32 *)outputBuffer;
-    for (i = 0, count = 0;
-         i < OVS_MAX_VPORT_ARRAY_SIZE && count < numVports; i++) {
-        vport = (POVS_VPORT_ENTRY)gOvsSwitchContext->vportArray[i];
-        if (OVS_IS_VPORT_ENTRY_NULL(gOvsSwitchContext, i)) {
-            continue;
-        }
-        if (vport->ovsState == OVS_STATE_CONNECTED ||
-            vport->ovsState == OVS_STATE_NIC_CREATED) {
-            *outPtr = vport->portNo;
-            outPtr++;
-            count++;
-        }
-    }
-    NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-    NdisReleaseSpinLock(gOvsCtrlLock);
-    *replyLen = count * sizeof (UINT32);
-    return STATUS_SUCCESS;
-}
-
-
-NTSTATUS
-OvsGetVportIoctl(PVOID inputBuffer,
-                 UINT32 inputLength,
-                 PVOID outputBuffer,
-                 UINT32 outputLength,
-                 UINT32 *replyLen)
-{
-    UINT32 dpNo;
-    POVS_VPORT_GET get;
-    POVS_VPORT_INFO info;
-    POVS_VPORT_ENTRY vport;
-    size_t len;
-    LOCK_STATE_EX lockState;
-
-    if (inputLength < sizeof (OVS_VPORT_GET) ||
-        outputLength < sizeof (OVS_VPORT_INFO)) {
-        return STATUS_INVALID_PARAMETER;
-    }
-    get = (POVS_VPORT_GET)inputBuffer;
-    dpNo = get->dpNo;
-    info = (POVS_VPORT_INFO)outputBuffer;
-    RtlZeroMemory(info, sizeof (POVS_VPORT_INFO));
-
-    NdisAcquireSpinLock(gOvsCtrlLock);
-    if (gOvsSwitchContext == NULL ||
-        gOvsSwitchContext->dpNo != dpNo) {
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        return STATUS_INVALID_PARAMETER;
-    }
-
-    NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState,
-                          NDIS_RWL_AT_DISPATCH_LEVEL);
-    if (get->portNo == 0) {
-        StringCbLengthA(get->name, OVS_MAX_PORT_NAME_LENGTH - 1, &len);
-        vport = OvsFindVportByOvsName(gOvsSwitchContext, get->name, (UINT32)len);
-    } else {
-        vport = OvsFindVportByPortNo(gOvsSwitchContext, get->portNo);
-    }
-    if (vport == NULL || (vport->ovsState != OVS_STATE_CONNECTED &&
-                          vport->ovsState != OVS_STATE_NIC_CREATED)) {
-        NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        /*
-         * XXX Change to NO DEVICE
-         */
-        return STATUS_DEVICE_DOES_NOT_EXIST;
-    }
-    info->dpNo = dpNo;
-    info->portNo = vport->portNo;
-    info->type = vport->ovsType;
-    RtlCopyMemory(info->macAddress, vport->permMacAddress,
-                  sizeof (vport->permMacAddress));
-    RtlCopyMemory(info->name, vport->ovsName, vport->ovsNameLen + 1);
-
-    info->rxPackets = vport->stats.rxPackets;
-    info->rxBytes = vport->stats.rxBytes;
-    info->txPackets = vport->stats.txPackets;
-    info->txBytes = vport->stats.txBytes;
-    info->rxErrors = vport->errStats.rxErrors;
-    info->txErrors = vport->errStats.txErrors;
-    info->rxDropped = vport->errStats.rxDropped;
-    info->txDropped = vport->errStats.txDropped;
-
-    NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-    NdisReleaseSpinLock(gOvsCtrlLock);
-    *replyLen = sizeof (OVS_VPORT_INFO);
-    return STATUS_SUCCESS;
-}
-
-
-NTSTATUS
 OvsInitTunnelVport(POVS_VPORT_ENTRY vport,
                    POVS_VPORT_ADD_REQUEST addReq)  { @@ -1091,159 +968,6 @@ OvsInitTunnelVport(POVS_VPORT_ENTRY vport,  }
 
 NTSTATUS
-OvsAddVportIoctl(PVOID inputBuffer,
-                 UINT32 inputLength,
-                 PVOID outputBuffer,
-                 UINT32 outputLength,
-                 UINT32 *replyLen)
-{
-    NTSTATUS status = STATUS_SUCCESS;
-    POVS_VPORT_INFO vportInfo;
-    POVS_VPORT_ADD_REQUEST addReq;
-    POVS_VPORT_ENTRY vport;
-    LOCK_STATE_EX lockState;
-    UINT32 index;
-    UINT32 portNo;
-
-    OVS_LOG_TRACE("Enter: inputLength: %u, outputLength: %u",
-                  inputLength, outputLength);
-    if (inputLength < sizeof (OVS_VPORT_ADD_REQUEST) ||
-        outputLength < sizeof (OVS_VPORT_INFO)) {
-        status = STATUS_INVALID_PARAMETER;
-        goto vport_add_done;
-    }
-    addReq = (POVS_VPORT_ADD_REQUEST)inputBuffer;
-    addReq->name[OVS_MAX_PORT_NAME_LENGTH - 1] = 0;
-
-    switch (addReq->type) {
-    case OVS_VPORT_TYPE_GRE:
-        index = OVS_GRE_VPORT_INDEX;
-        break;
-    case OVS_VPORT_TYPE_GRE64:
-        index = OVS_GRE64_VPORT_INDEX;
-        break;
-    case OVS_VPORT_TYPE_VXLAN:
-        index = OVS_VXLAN_VPORT_INDEX;
-        break;
-    default:
-        status = STATUS_NOT_SUPPORTED;
-        goto vport_add_done;
-    }
-
-    vport = (POVS_VPORT_ENTRY)OvsAllocateVport();
-    if (vport == NULL) {
-        status = STATUS_INSUFFICIENT_RESOURCES;
-        goto vport_add_done;
-    }
-
-    NdisAcquireSpinLock(gOvsCtrlLock);
-    if (gOvsSwitchContext == NULL ||
-        gOvsSwitchContext->dpNo != addReq->dpNo) {
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        status = STATUS_INVALID_PARAMETER;
-        OvsFreeMemory(vport);
-        goto vport_add_done;
-    }
-    NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState,
-                          NDIS_RWL_AT_DISPATCH_LEVEL);
-    if (!OVS_IS_VPORT_ENTRY_NULL(gOvsSwitchContext, index)) {
-        status = STATUS_DEVICE_BUSY;
-        NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        OvsFreeMemory(vport);
-        goto vport_add_done;
-    }
-
-    status = OvsInitTunnelVport(vport, addReq);
-    if (status != STATUS_SUCCESS) {
-        NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        OvsFreeMemory(vport);
-        goto vport_add_done;
-    }
-
-    status = OvsInitVportCommon(gOvsSwitchContext, vport);
-    ASSERT(status == NDIS_STATUS_SUCCESS);
-
-    vport->ovsState = OVS_STATE_CONNECTED;
-    vport->nicState = NdisSwitchNicStateConnected;
-
-    vportInfo = (POVS_VPORT_INFO)outputBuffer;
-
-    RtlZeroMemory(vportInfo, sizeof (POVS_VPORT_INFO));
-    vportInfo->dpNo = gOvsSwitchContext->dpNo;
-    vportInfo->portNo = vport->portNo;
-    vportInfo->type = vport->ovsType;
-    RtlCopyMemory(vportInfo->name, vport->ovsName, vport->ovsNameLen + 1);
-    portNo = vport->portNo;
-
-    NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-    NdisReleaseSpinLock(gOvsCtrlLock);
-    OvsPostEvent(portNo, OVS_EVENT_CONNECT | OVS_EVENT_LINK_UP);
-    *replyLen = sizeof (OVS_VPORT_INFO);
-    status = STATUS_SUCCESS;
-vport_add_done:
-    OVS_LOG_TRACE("Exit: byteReturned: %u, status: %x",
-                  *replyLen, status);
-    return status;
-}
-
-NTSTATUS
-OvsDelVportIoctl(PVOID inputBuffer,
-                 UINT32 inputLength,
-                 UINT32 *replyLen)
-{
-    NTSTATUS status = STATUS_SUCCESS;
-    POVS_VPORT_DELETE_REQUEST delReq;
-    LOCK_STATE_EX lockState;
-    POVS_VPORT_ENTRY vport;
-    size_t len;
-    UINT32 portNo = 0;
-
-    OVS_LOG_TRACE("Enter: inputLength: %u", inputLength);
-
-    if (inputLength < sizeof (OVS_VPORT_DELETE_REQUEST)) {
-        status = STATUS_INVALID_PARAMETER;
-        goto vport_del_done;
-    }
-    delReq = (POVS_VPORT_DELETE_REQUEST)inputBuffer;
-
-    NdisAcquireSpinLock(gOvsCtrlLock);
-    if (gOvsSwitchContext == NULL ||
-        gOvsSwitchContext->dpNo != delReq->dpNo) {
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        status = STATUS_INVALID_PARAMETER;
-        goto vport_del_done;
-    }
-    NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState,
-                          NDIS_RWL_AT_DISPATCH_LEVEL);
-    if (delReq->portNo == 0) {
-        StringCbLengthA(delReq->name, OVS_MAX_PORT_NAME_LENGTH - 1, &len);
-        vport = OvsFindVportByOvsName(gOvsSwitchContext, delReq->name,
-                                      (UINT32)len);
-    } else {
-        vport = OvsFindVportByPortNo(gOvsSwitchContext, delReq->portNo);
-    }
-    if (vport) {
-        OVS_LOG_INFO("delete vport: %s, portNo: %x", vport->ovsName,
-                     vport->portNo);
-        portNo = vport->portNo;
-        OvsRemoveAndDeleteVport(gOvsSwitchContext, vport);
-    } else {
-        status = STATUS_DEVICE_DOES_NOT_EXIST;
-    }
-    NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-    NdisReleaseSpinLock(gOvsCtrlLock);
-    if (vport) {
-        OvsPostEvent(portNo, OVS_EVENT_DISCONNECT | OVS_EVENT_LINK_DOWN);
-    }
-vport_del_done:
-    OVS_LOG_TRACE("Exit: byteReturned: %u, status: %x",
-                  *replyLen, status);
-    return status;
-}
-
-NTSTATUS
 OvsConvertIfCountedStrToAnsiStr(PIF_COUNTED_STRING wStr,
                                 CHAR *str,
                                 UINT16 maxStrLen) @@ -1277,133 +1001,6 @@ OvsConvertIfCountedStrToAnsiStr(PIF_COUNTED_STRING wStr,
     return STATUS_SUCCESS;
 }
 
-
-NTSTATUS
-OvsGetExtInfoIoctl(PVOID inputBuffer,
-                     UINT32 inputLength,
-                     PVOID outputBuffer,
-                     UINT32 outputLength,
-                     UINT32 *replyLen)
-{
-    POVS_VPORT_GET get;
-    POVS_VPORT_EXT_INFO info;
-    POVS_VPORT_ENTRY vport;
-    size_t len;
-    LOCK_STATE_EX lockState;
-    NTSTATUS status = STATUS_SUCCESS;
-    NDIS_SWITCH_NIC_NAME nicName;
-    NDIS_VM_NAME vmName;
-    BOOLEAN doConvert = FALSE;
-
-    OVS_LOG_TRACE("Enter: inputLength: %u, outputLength: %u",
-                  inputLength, outputLength);
-
-    if (inputLength < sizeof (OVS_VPORT_GET) ||
-        outputLength < sizeof (OVS_VPORT_EXT_INFO)) {
-        status = STATUS_INVALID_PARAMETER;
-        goto ext_info_done;
-    }
-    get = (POVS_VPORT_GET)inputBuffer;
-    info = (POVS_VPORT_EXT_INFO)outputBuffer;
-    RtlZeroMemory(info, sizeof (POVS_VPORT_EXT_INFO));
-
-    NdisAcquireSpinLock(gOvsCtrlLock);
-    if (gOvsSwitchContext == NULL ||
-        gOvsSwitchContext->dpNo != get->dpNo) {
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        status = STATUS_INVALID_PARAMETER;
-        goto ext_info_done;
-    }
-    NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState,
-                          NDIS_RWL_AT_DISPATCH_LEVEL);
-    if (get->portNo == 0) {
-        StringCbLengthA(get->name, OVS_MAX_PORT_NAME_LENGTH - 1, &len);
-        vport = OvsFindVportByOvsName(gOvsSwitchContext, get->name,
-                                      (UINT32)len);
-    } else {
-        vport = OvsFindVportByPortNo(gOvsSwitchContext, get->portNo);
-    }
-    if (vport == NULL || (vport->ovsState != OVS_STATE_CONNECTED &&
-                          vport->ovsState != OVS_STATE_NIC_CREATED)) {
-        NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-        NdisReleaseSpinLock(gOvsCtrlLock);
-        if (get->portNo) {
-            OVS_LOG_WARN("vport %u does not exist any more", get->portNo);
-        } else {
-            OVS_LOG_WARN("vport %s does not exist any more", get->name);
-        }
-        status = STATUS_DEVICE_DOES_NOT_EXIST;
-        goto ext_info_done;
-    }
-    info->dpNo = get->dpNo;
-    info->portNo = vport->portNo;
-    RtlCopyMemory(info->macAddress, vport->currMacAddress,
-                  sizeof (vport->currMacAddress));
-    RtlCopyMemory(info->permMACAddress, vport->permMacAddress,
-                  sizeof (vport->permMacAddress));
-    if (vport->ovsType == OVS_VPORT_TYPE_NETDEV) {
-        RtlCopyMemory(info->vmMACAddress, vport->vmMacAddress,
-                      sizeof (vport->vmMacAddress));
-    }
-    info->nicIndex = vport->nicIndex;
-    info->portId = vport->portId;
-    info->type = vport->ovsType;
-    info->mtu = vport->mtu;
-    /*
-     * TO be revisit XXX
-     */
-    if (vport->ovsState == OVS_STATE_NIC_CREATED) {
-       info->status = OVS_EVENT_CONNECT | OVS_EVENT_LINK_DOWN;
-    } else if (vport->ovsState == OVS_STATE_CONNECTED) {
-       info->status = OVS_EVENT_CONNECT | OVS_EVENT_LINK_UP;
-    } else {
-       info->status = OVS_EVENT_DISCONNECT;
-    }
-    if (info->type == OVS_VPORT_TYPE_NETDEV &&
-        (vport->ovsState == OVS_STATE_NIC_CREATED  ||
-         vport->ovsState == OVS_STATE_CONNECTED)) {
-        RtlCopyMemory(&vmName, &vport->vmName, sizeof (NDIS_VM_NAME));
-        RtlCopyMemory(&nicName, &vport->nicName, sizeof
-                      (NDIS_SWITCH_NIC_NAME));
-        doConvert = TRUE;
-    } else {
-        info->vmUUID[0] = 0;
-        info->vifUUID[0] = 0;
-    }
-
-    RtlCopyMemory(info->name, vport->ovsName, vport->ovsNameLen + 1);
-    NdisReleaseRWLock(gOvsSwitchContext->dispatchLock, &lockState);
-    NdisReleaseSpinLock(gOvsCtrlLock);
-    if (doConvert) {
-        status = OvsConvertIfCountedStrToAnsiStr(&vmName,
-                                                 info->vmUUID,
-                                                 OVS_MAX_VM_UUID_LEN);
-        if (status != STATUS_SUCCESS) {
-            OVS_LOG_INFO("Fail to convert VM name.");
-            info->vmUUID[0] = 0;
-        }
-
-        status = OvsConvertIfCountedStrToAnsiStr(&nicName,
-                                                 info->vifUUID,
-                                                 OVS_MAX_VIF_UUID_LEN);
-        if (status != STATUS_SUCCESS) {
-            OVS_LOG_INFO("Fail to convert nic name");
-            info->vifUUID[0] = 0;
-        }
-        /*
-         * for now ignore status
-         */
-        status = STATUS_SUCCESS;
-    }
-    *replyLen = sizeof (OVS_VPORT_EXT_INFO);
-
-ext_info_done:
-    OVS_LOG_TRACE("Exit: byteReturned: %u, status: %x",
-                  *replyLen, status);
-    return status;
-}
-
-
 static __inline VOID
 OvsWaitActivate(POVS_SWITCH_CONTEXT switchContext, ULONG sleepMicroSec)  { diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/Vport.h index 5450fca..3e28a74 100644
--- a/datapath-windows/ovsext/Vport.h
+++ b/datapath-windows/ovsext/Vport.h
@@ -116,21 +116,6 @@ NDIS_STATUS OvsAddConfiguredSwitchPorts(struct _OVS_SWITCH_CONTEXT *switchContex  NDIS_STATUS OvsInitConfiguredSwitchNics(struct _OVS_SWITCH_CONTEXT *switchContext);
 
 VOID OvsClearAllSwitchVports(struct _OVS_SWITCH_CONTEXT *switchContext);
-
-NTSTATUS OvsDumpVportIoctl(PVOID inputBuffer, UINT32 inputLength,
-                           PVOID outputBuffer, UINT32 outputLength,
-                           UINT32 *replyLen);
-NTSTATUS OvsGetVportIoctl(PVOID inputBuffer, UINT32 inputLength,
-                          PVOID outputBuffer, UINT32 outputLength,
-                          UINT32 *replyLen);
-NTSTATUS OvsAddVportIoctl(PVOID inputBuffer, UINT32 inputLength,
-                          PVOID outputBuffer, UINT32 outputLength,
-                          UINT32 *replyLen);
-NTSTATUS OvsDelVportIoctl(PVOID inputBuffer, UINT32 inputLength,
-                          UINT32 *replyLen);
-NTSTATUS OvsGetExtInfoIoctl(PVOID inputBuffer, UINT32 inputLength,
-                            PVOID outputBuffer, UINT32 outputLength,
-                            UINT32 *replyLen);
 NDIS_STATUS OvsCreateNic(POVS_SWITCH_CONTEXT switchContext,
                          PNDIS_SWITCH_NIC_PARAMETERS nicParam);  NDIS_STATUS OvsCreatePort(POVS_SWITCH_CONTEXT switchContext,
--
1.8.3.msysgit.0




More information about the dev mailing list