From b3b8a9c307c0154c0f65901986f57f14522b50cb Mon Sep 17 00:00:00 2001 From: Nithin Raju Date: Thu, 23 Oct 2014 17:33:11 -0700 Subject: 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 Acked-by: Alin Gabriel Serdean Tested-by: Alin Gabriel Serdean Signed-off-by: Ben Pfaff --- datapath-windows/ovsext/Vport.c | 51 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) (limited to 'datapath-windows/ovsext/Vport.c') 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) -- cgit v1.2.1