summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Vport.c
diff options
context:
space:
mode:
authorNithin Raju <nithin@vmware.com>2014-10-23 17:33:11 -0700
committerBen Pfaff <blp@nicira.com>2014-10-28 08:39:57 -0700
commitb3b8a9c307c0154c0f65901986f57f14522b50cb (patch)
tree457e417dc542920eabba45b56ee3efcf80455dee /datapath-windows/ovsext/Vport.c
parent7434992b73bbcbc9d1f9cbe6a74f270ad434a7fb (diff)
downloadopenvswitch-b3b8a9c307c0154c0f65901986f57f14522b50cb.tar.gz
datapath-windows: OvsInitTunnelVport() and OvsInitBridgeInternalVport().
In this patch, we add the init functions for a Tunnel vport and a Bridge-internal vport. Signed-off-by: Nithin Raju <nithin@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Tested-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext/Vport.c')
-rw-r--r--datapath-windows/ovsext/Vport.c51
1 files changed, 49 insertions, 2 deletions
diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c
index 3fd40f71a..6fb065330 100644
--- a/datapath-windows/ovsext/Vport.c
+++ b/datapath-windows/ovsext/Vport.c
@@ -56,8 +56,6 @@ static VOID OvsInitVportWithNicParam(POVS_SWITCH_CONTEXT switchContext,
POVS_VPORT_ENTRY vport, PNDIS_SWITCH_NIC_PARAMETERS nicParam);
static VOID OvsInitPhysNicVport(POVS_VPORT_ENTRY vport, POVS_VPORT_ENTRY
virtVport, UINT32 nicIndex);
-static VOID OvsInitPhysNicVport(POVS_VPORT_ENTRY vport, POVS_VPORT_ENTRY
- virtVport, UINT32 nicIndex);
static __inline VOID OvsWaitActivate(POVS_SWITCH_CONTEXT switchContext,
ULONG sleepMicroSec);
static NTSTATUS OvsGetExtInfoIoctl(POVS_VPORT_GET vportGet,
@@ -706,6 +704,55 @@ OvsInitPhysNicVport(POVS_VPORT_ENTRY vport,
vport->ovsState = OVS_STATE_PORT_CREATED;
}
+/*
+ * --------------------------------------------------------------------------
+ * Initializes a tunnel vport.
+ * --------------------------------------------------------------------------
+ */
+NTSTATUS
+OvsInitTunnelVport(POVS_VPORT_ENTRY vport,
+ OVS_VPORT_TYPE ovsType,
+ UINT16 dstPort)
+{
+ NTSTATUS status = STATUS_SUCCESS;
+
+ UNREFERENCED_PARAMETER(dstPort);
+
+ vport->isBridgeInternal = FALSE;
+ vport->ovsType = ovsType;
+ vport->ovsState = OVS_STATE_PORT_CREATED;
+ switch (ovsType) {
+ case OVS_VPORT_TYPE_GRE:
+ break;
+ case OVS_VPORT_TYPE_GRE64:
+ break;
+ case OVS_VPORT_TYPE_VXLAN:
+ /* Will be enabled in later. */
+ /* status = OvsInitVxlanTunnel(vport, dstPort); */
+ break;
+ default:
+ ASSERT(0);
+ }
+ return status;
+}
+
+/*
+ * --------------------------------------------------------------------------
+ * Initializes a bridge internal vport ie. a port of type
+ * OVS_VPORT_TYPE_INTERNAL but not present on the Hyper-V switch.
+ * --------------------------------------------------------------------------
+ */
+NTSTATUS
+OvsInitBridgeInternalVport(POVS_VPORT_ENTRY vport)
+{
+ vport->isBridgeInternal = TRUE;
+ vport->ovsType = OVS_VPORT_TYPE_INTERNAL;
+ /* Mark the status to be connected, since there is no other initialization
+ * for this port. */
+ vport->ovsState = OVS_STATE_CONNECTED;
+ return STATUS_SUCCESS;
+}
+
NDIS_STATUS
OvsInitVportCommon(POVS_SWITCH_CONTEXT switchContext,
POVS_VPORT_ENTRY vport)