summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Serdean <aserdean@cloudbasesolutions.com>2014-10-09 17:46:55 +0000
committerBen Pfaff <blp@nicira.com>2014-10-09 15:47:17 -0700
commitc99e65005e2a5e80978dbed8d4a9266952fb4852 (patch)
treed21ca7fabfe72734e390f62ae9b371c0876775c0
parentfa0483234cc32b354cd37272b0082506d3522871 (diff)
downloadopenvswitch-c99e65005e2a5e80978dbed8d4a9266952fb4852.tar.gz
datapath-windows: We don't need to keep validation ports in ovs
Validation ports are used internally by the hyper-v switch to validate and verify settings for the real hyper-v switch ports that will be connected to the VNic. The validation ports are of no use to us - we must skip handling them, and return STATUS_SUCCESS as the OID result. Signed-off-by: Samuel Ghinet <sghinet@cloudbasesolutions.com> Co-authored-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Ankur Sharma <ankursharma@vmware.com> Acked-by: Eitan Eliahu <eliahue@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Tested-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
-rw-r--r--datapath-windows/ovsext/Oid.c8
-rw-r--r--datapath-windows/ovsext/Vport.c8
-rw-r--r--datapath-windows/ovsext/Vport.h1
3 files changed, 13 insertions, 4 deletions
diff --git a/datapath-windows/ovsext/Oid.c b/datapath-windows/ovsext/Oid.c
index 487739f5c..9659af713 100644
--- a/datapath-windows/ovsext/Oid.c
+++ b/datapath-windows/ovsext/Oid.c
@@ -159,6 +159,14 @@ OvsProcessSetOidPort(POVS_SWITCH_CONTEXT switchObject,
goto done;
}
+ if (portParam->IsValidationPort) {
+ /* Validation ports are used internally by the Hyper-V switch
+ * to validate and verify settings. We must skip handling them,
+ * and return STATUS_SUCCESS as the OID result
+ */
+ return NDIS_STATUS_SUCCESS;
+ }
+
switch(setInfo->Oid) {
case OID_SWITCH_PORT_CREATE:
status = HvCreatePort(switchObject, portParam);
diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c
index 7bcb16f27..942bad00d 100644
--- a/datapath-windows/ovsext/Vport.c
+++ b/datapath-windows/ovsext/Vport.c
@@ -609,7 +609,6 @@ static VOID
OvsInitVportWithPortParam(POVS_VPORT_ENTRY vport,
PNDIS_SWITCH_PORT_PARAMETERS portParam)
{
- vport->isValidationPort = portParam->IsValidationPort;
vport->portType = portParam->PortType;
vport->portState = portParam->PortState;
vport->portId = portParam->PortId;
@@ -698,7 +697,6 @@ OvsInitPhysNicVport(POVS_VPORT_ENTRY vport,
POVS_VPORT_ENTRY virtVport,
UINT32 nicIndex)
{
- vport->isValidationPort = virtVport->isValidationPort;
vport->portType = virtVport->portType;
vport->portState = virtVport->portState;
vport->portId = virtVport->portId;
@@ -838,6 +836,11 @@ OvsAddConfiguredSwitchPorts(POVS_SWITCH_CONTEXT switchContext)
for (arrIndex = 0; arrIndex < portArray->NumElements; arrIndex++) {
portParam = NDIS_SWITCH_PORT_AT_ARRAY_INDEX(portArray, arrIndex);
+
+ if (portParam->IsValidationPort) {
+ continue;
+ }
+
vport = (POVS_VPORT_ENTRY)OvsAllocateVport();
if (vport == NULL) {
status = NDIS_STATUS_RESOURCES;
@@ -954,7 +957,6 @@ OvsInitTunnelVport(POVS_VPORT_ENTRY vport,
size_t len;
NTSTATUS status = STATUS_SUCCESS;
- vport->isValidationPort = FALSE;
vport->ovsType = addReq->type;
vport->ovsState = OVS_STATE_PORT_CREATED;
RtlCopyMemory(vport->ovsName, addReq->name, OVS_MAX_PORT_NAME_LENGTH);
diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/Vport.h
index e606e1f24..0061b0fbb 100644
--- a/datapath-windows/ovsext/Vport.h
+++ b/datapath-windows/ovsext/Vport.h
@@ -82,7 +82,6 @@ typedef struct _OVS_VPORT_ENTRY {
NDIS_SWITCH_PORT_STATE portState;
NDIS_SWITCH_NIC_STATE nicState;
NDIS_SWITCH_PORT_TYPE portType;
- BOOLEAN isValidationPort;
UINT8 permMacAddress[MAC_ADDRESS_LEN];
UINT8 currMacAddress[MAC_ADDRESS_LEN];