Acked-by: Sairam Venugopal <vsai...@vmware.com>

On 9/11/15, 4:09 AM, "Sorin Vinturis" <svintu...@cloudbasesolutions.com>
wrote:

>The internal/external vports will have the actual OS-based names, which
>represent the NIC interface alias that is displayed by running
>'Get-NetAdapter' Hyper-V PS command.
>
>Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
>---
> datapath-windows/ovsext/Vport.c | 52
>+++++++++++++++++++++++++----------------
> 1 file changed, 32 insertions(+), 20 deletions(-)
>
>diff --git a/datapath-windows/ovsext/Vport.c
>b/datapath-windows/ovsext/Vport.c
>index ea10692..8a7a8b9 100644
>--- a/datapath-windows/ovsext/Vport.c
>+++ b/datapath-windows/ovsext/Vport.c
>@@ -890,6 +890,10 @@ OvsInitPhysNicVport(POVS_VPORT_ENTRY physExtVport,
>                   &virtExtVport->portFriendlyName,
>                   sizeof(NDIS_SWITCH_PORT_FRIENDLYNAME));
> 
>+    RtlCopyMemory(&physExtVport->netCfgInstanceId,
>+                  &virtExtVport->netCfgInstanceId,
>+                  sizeof(physExtVport->netCfgInstanceId));
>+
>     physExtVport->ovsState = OVS_STATE_PORT_CREATED;
> }
> 
>@@ -968,36 +972,42 @@ OvsInitBridgeInternalVport(POVS_VPORT_ENTRY vport)
> 
> /*
>  * 
>--------------------------------------------------------------------------
>- * For external vports 'portFriendlyName' provided by Hyper-V is
>over-written
>- * by synthetic names.
>+ * For external and internal vports 'portFriendlyName' parameter,
>provided by
>+ * Hyper-V, is overwritten with the interface alias name.
>  * 
>--------------------------------------------------------------------------
>  */
> static VOID
> AssignNicNameSpecial(POVS_VPORT_ENTRY vport)
> {
>-    size_t len;
>+    NTSTATUS status = STATUS_SUCCESS;
>+    WCHAR interfaceName[IF_MAX_STRING_SIZE] = { 0 };
>+    NET_LUID interfaceLuid = { 0 };
>+    size_t len = 0;
> 
>-    if (vport->portType == NdisSwitchPortTypeExternal) {
>-        if (vport->nicIndex == 0) {
>-            ASSERT(vport->nicIndex == 0);
>-            RtlStringCbPrintfW(vport->portFriendlyName.String,
>-                               IF_MAX_STRING_SIZE,
>-                               L"%s.virtualAdapter",
>OVS_DPPORT_EXTERNAL_NAME_W);
>+    ASSERT(vport->portType == NdisSwitchPortTypeExternal ||
>+           vport->portType == NdisSwitchPortTypeInternal);
>+
>+    status = ConvertInterfaceGuidToLuid(&vport->netCfgInstanceId,
>+                                        &interfaceLuid);
>+    if (status == STATUS_SUCCESS) {
>+        status = ConvertInterfaceLuidToAlias(&interfaceLuid,
>interfaceName,
>+                                             IF_MAX_STRING_SIZE + 1);
>+    }
>+
>+    if (status == STATUS_SUCCESS) {
>+        if (vport->portType == NdisSwitchPortTypeExternal &&
>+            vport->nicIndex == 0) {
>+            RtlStringCbPrintfW(vport->portFriendlyName.String,
>IF_MAX_STRING_SIZE,
>+                               L"%s.virtualAdapter", interfaceName);
>         } else {
>             RtlStringCbPrintfW(vport->portFriendlyName.String,
>-                               IF_MAX_STRING_SIZE,
>-                               L"%s.%lu", OVS_DPPORT_EXTERNAL_NAME_W,
>-                               (UINT32)vport->nicIndex);
>+                               IF_MAX_STRING_SIZE, L"%s", interfaceName);
>         }
>-    } else {
>-        RtlStringCbPrintfW(vport->portFriendlyName.String,
>-                           IF_MAX_STRING_SIZE,
>-                           L"%s", OVS_DPPORT_INTERNAL_NAME_W);
>-    }
> 
>-    RtlStringCbLengthW(vport->portFriendlyName.String,
>IF_MAX_STRING_SIZE,
>-                       &len);
>-    vport->portFriendlyName.Length = (USHORT)len;
>+        RtlStringCbLengthW(vport->portFriendlyName.String,
>IF_MAX_STRING_SIZE,
>+                           &len);
>+        vport->portFriendlyName.Length = (USHORT)len;
>+    }
> }
> 
> 
>@@ -1399,6 +1409,8 @@ OvsInitConfiguredSwitchNics(POVS_SWITCH_CONTEXT
>switchContext)
>         }
>         OvsInitVportWithNicParam(switchContext, vport, nicParam);
>         if (nicParam->NicType == NdisSwitchNicTypeInternal) {
>+            /* Overwrite the 'portFriendlyName' of the internal vport. */
>+            AssignNicNameSpecial(vport);
>             OvsInternalAdapterUp(vport->portNo,
>&nicParam->NetCfgInstanceId);
>         }
>     }
>-- 
>1.9.0.msysgit.0
>_______________________________________________
>dev mailing list
>dev@openvswitch.org
>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma
>n_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Dc
>ruz40PROJ40ROzSpxyQSLw6fcrOWpJgEcEmNR3JEQ&m=zAtvFtjGXZTRMwH_WeG9ZtoA0pCh5j
>fPIpUDWqmj0fk&s=rMr-uw1Z7ZESYsUW6gADQE-nLOIZuOX-ifB2vTGXZds&e= 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to