[ovs-dev] [PATCH 3/3 v7] Windows: document multiple NIC support setup
Sairam Venugopal
vsairam at vmware.com
Tue Dec 20 05:52:42 UTC 2016
Acked-by: Sairam Venugopal <vsairam at vmware.com>
On 12/15/16, 11:37 AM, "Alin Serdean" <aserdean at cloudbasesolutions.com>
wrote:
>This patch updates the documentation on how to set up OVS with multiple
>NICs.
>
>Also update the documentation to show users how new internal ports are
>created
>
>Signed-off-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
>Acked-by: Paul Boca <pboca at cloudbasesolutions.com>
>---
>v7: Address Stephen's comments
>v6: rebase
>v5: rebase
>v4: rebase
>v3: rebase
>v2: rebase
>v1: rebase
>---
> Documentation/intro/install/windows.rst | 142
>+++++++++++++++++++++++---------
> 1 file changed, 104 insertions(+), 38 deletions(-)
>
>diff --git a/Documentation/intro/install/windows.rst
>b/Documentation/intro/install/windows.rst
>index eb55720..463f30f 100644
>--- a/Documentation/intro/install/windows.rst
>+++ b/Documentation/intro/install/windows.rst
>@@ -137,7 +137,8 @@ configure options to choose the right compiler,
>linker, libraries, Open vSwitch
> component installation directories, etc. For example::
>
> > ./configure CC=./build-aux/cccl LD="$(which link)" \
>- LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
>+ LIBS="-lws2_32 -liphlpapi -lwbemuuid -lole32 -loleaut32" \
>+ --prefix="C:/openvswitch/usr" \
> --localstatedir="C:/openvswitch/var" \
> --sysconfdir="C:/openvswitch/etc" \
> --with-pthread="C:/pthread"
>@@ -149,16 +150,18 @@ component installation directories, etc. For
>example::
> To configure with SSL support, add the requisite additional options::
>
> > ./configure CC=./build-aux/cccl LD="`which link`" \
>- LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
>- --localstatedir="C:/openvswitch/var"
>- --sysconfdir="C:/openvswitch/etc" \
>- --with-pthread="C:/pthread" \
>- --enable-ssl --with-openssl="C:/OpenSSL-Win32"
>+ LIBS="-lws2_32 -liphlpapi -lwbemuuid -lole32 -loleaut32" \
>+ --prefix="C:/openvswitch/usr" \
>+ --localstatedir="C:/openvswitch/var"
>+ --sysconfdir="C:/openvswitch/etc" \
>+ --with-pthread="C:/pthread" \
>+ --enable-ssl --with-openssl="C:/OpenSSL-Win32"
>
> Finally, to the kernel module also::
>
> > ./configure CC=./build-aux/cccl LD="`which link`" \
>- LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
>+ LIBS="-lws2_32 -liphlpapi -lwbemuuid -lole32 -loleaut32" \
>+ --prefix="C:/openvswitch/usr" \
> --localstatedir="C:/openvswitch/var" \
> --sysconfdir="C:/openvswitch/etc" \
> --with-pthread="C:/pthread" \
>@@ -252,8 +255,7 @@ to work (covered later).
> The command to create a new switch named 'OVS-Extended-Switch' using a
>physical
> NIC named 'Ethernet 1' is::
>
>- PS > New-VMSwitch "OVS-Extended-Switch" -AllowManagementOS $true \
>- -NetAdapterName "Ethernet 1"
>+ PS > New-VMSwitch "OVS-Extended-Switch" -NetAdapterName "Ethernet 1"
>
> .. note::
> You can obtain the list of physical NICs on the host using
>'Get-NetAdapter'
>@@ -377,23 +379,22 @@ the adapter named ``Ethernet0``, then in OVS we use
>that name (``Ethernet0``)
> as a special name to refer to that adapter.
>
> .. note::
>- we assume that the Hyper-V switch on which OVS extension is enabled
>has a
>- single physical NIC connected to it.
>+ we assume that the OVS extension is enabled Hyper-V switch.
>
>-An internal port is the virtual adapter created on the Hyper-V switch
>using the
>-``AllowManagementOS`` setting. This has already been setup while
>creating the
>-switch using the instructions above. In OVS for Hyper-V, we use a the
>name of
>-that specific adapter as a special name to refer to that adapter. By
>default it
>-is created under the following rule ``vEthernet (<name of the switch>)``.
>+Internal ports are the virtual adapters created on the Hyper-V switch
>using the
>+``ovs-vsctl add-br <bridge>`` command. By default they are created under
>the
>+following rule "<name of bridge>" and the adapters are disabled. One
>needs to
>+enable them and set the corresponding values to it to make them IP-able.
>
> As a whole example, if we issue the following in a powershell console::
>
>- PS C:\package\binaries> Get-NetAdapter | select
>Name,MacAddress,InterfaceDescription
>- Name MacAddress InterfaceDescription
>- ---- ---------- --------------------
>- Ethernet1 00-0C-29-94-05-65 Intel(R) PRO/1000 MT
>Network Connection
>- vEthernet (external) 00-0C-29-94-05-5B Hyper-V Virtual Ethernet
>Adapter #2
>- Ethernet0 00-0C-29-94-05-5B Intel(R) PRO/1000 MT
>Network Connection #2
>+ PS C:\package\binaries> Get-NetAdapter | select
>Name,InterfaceDescription
>+ Name InterfaceDescription
>+ ---- --------------------
>+ Ethernet1 Intel(R) PRO/1000 MT Network Connection
>+ br-pif Hyper-V Virtual Ethernet Adapter #2
>+ Ethernet0 Intel(R) PRO/1000 MT Network Connection #2
>+ br-int Hyper-V Virtual Ethernet Adapter #3
>
> PS C:\package\binaries> Get-VMSwitch
> Name SwitchType NetAdapterInterfaceDescription
>@@ -401,11 +402,10 @@ As a whole example, if we issue the following in a
>powershell console::
> external External Intel(R) PRO/1000 MT Network Connection #2
>
> We can see that we have a switch(external) created upon adapter name
>-'Ethernet0' with an internal port under name ``vEthernet (external)``.
>Thus
>+'Ethernet0' with the internal ports under name 'br-pif' and 'br-int'.
>Thus
> resulting into the following ovs-vsctl commands::
>
> > ovs-vsctl add-port br-pif Ethernet0
>- > ovs-vsctl add-port br-pif "vEthernet (external)"
>
> Dumping the ports should show the additional ports that were just added::
>
>@@ -413,18 +413,17 @@ Dumping the ports should show the additional ports
>that were just added::
> system at ovs-system:
> lookups: hit:0 missed:0 lost:0
> flows: 0
>- port 4: vEthernet (external) (internal) <<<
>'AllowManagementOS'
>- adapter on
>- Hyper-V switch
>- port 2: br-pif (internal)
>- port 1: br-int (internal)
>+ port 2: br-pif (internal) <<< internal port
>+ adapter on
>+ Hyper-V switch
>+ port 1: br-int (internal) <<< internal port
>+ adapter on
>+ Hyper-V switch
> port 3: Ethernet0 <<< Physical NIC
>
> > ovs-vsctl show
> a56ec7b5-5b1f-49ec-a795-79f6eb63228b
> Bridge br-pif
>- Port "vEthernet (external)"
>- Interface "vEthernet (external)"
> Port br-pif
> Interface br-pif
> type: internal
>@@ -451,11 +450,11 @@ is being addressed. After assigning the name
>``ovs-port-a``, the VIF is
> connected back to the Hyper-V switch with name ``OVS-HV-Switch``, which
>is
> assumed to be the Hyper-V switch with OVS extension enabled.::
>
>- PS> import-module .\datapath-windows\misc\OVS.psm1
>- PS> $vnic = Get-VMNetworkAdapter <Name of the VM>
>- PS> Disconnect-VMNetworkAdapter -VMNetworkAdapter $vnic[0]
>- PS> $vnic[0] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-a
>- PS> Connect-VMNetworkAdapter -VMNetworkAdapter $vnic[0] \
>+ PS > import-module .\datapath-windows\misc\OVS.psm1
>+ PS > $vnic = Get-VMNetworkAdapter <Name of the VM>
>+ PS > Disconnect-VMNetworkAdapter -VMNetworkAdapter $vnic[0]
>+ PS > $vnic[0] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-a
>+ PS > Connect-VMNetworkAdapter -VMNetworkAdapter $vnic[0] \
> -SwitchName OVS-Extended-Switch
>
> Next, add the VIFs to ``br-int``::
>@@ -468,8 +467,7 @@ Dumping the ports should show the additional ports
>that were just added::
> system at ovs-system:
> lookups: hit:0 missed:0 lost:0
> flows: 0
>- port 4: vEthernet (external) (internal)
>- port 5: ovs-port-a
>+ port 4: ovs-port-a
> port 2: br-pif (internal)
> port 1: br-int (internal
> port 3: Ethernet0
>@@ -491,6 +489,74 @@ Dumping the ports should show the additional ports
>that were just added::
> Port "ovs-port-a"
> Interface "ovs-port-a"
>
>+Add multiple NICs to be managed by OVS
>+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>+
>+To leverage support of multiple NICs into OVS, we will be using the MSFT
>+cmdlets for forwarding team extension. More documentation about them can
>be
>+found at technet_.
>+
>+.. _technet:
>https://urldefense.proofpoint.com/v2/url?u=https-3A__technet.microsoft.com
>_en-2Dus_library_jj553812-2528v-3Dwps.630-2529.aspx&d=DgICAg&c=uilaK90D4TO
>VoH58JNXRgQ&r=Z6vowHUOjP5ysP_g372c49Nqc1vEKqHKNBkR5Q5Z7uo&m=4RxjE6qTbx3nNg
>h6Z4aDImMkqLtmK2sjQFThZiAVHIc&s=akCwKvsY-wgExgcIucf1RHoxDn_83JeMifjaLd2kNR
>Q&e=
>+
>+I.e.::
>+We will set up a switch team combined from ``Ethernet0 2`` and
>``Ethernet1 2``
>+named ``external``.
>+
>+PS > Get-NetAdapter
>+Name InterfaceDescription
>+---- --------------------
>+br-int Hyper-V Virtual Ethernet Adapter #3
>+br-pif Hyper-V Virtual Ethernet Adapter #2
>+Ethernet3 2 Intel(R) 82574L Gigabit Network Co...#3
>+Ethernet2 2 Intel(R) 82574L Gigabit Network Co...#4
>+Ethernet1 2 Intel(R) 82574L Gigabit Network Co...#2
>+Ethernet0 2 Intel(R) 82574L Gigabit Network Conn...
>+
>+PS > New-NetSwitchTeam -Name external -TeamMembers "Ethernet0
>2","Ethernet1 2"
>+PS > Get-NetSwitchTeam
>+Name : external
>+Members : {Ethernet1 2, Ethernet0 2}
>+
>+This will result in a new adapter bound to the host called ``external``
>+
>+PS > Get-NetAdapter
>+
>+Name InterfaceDescription
>+---- --------------------
>+br-test Hyper-V Virtual Ethernet Adapter #4
>+br-pif Hyper-V Virtual Ethernet Adapter #2
>+external Microsoft Network Adapter Multiplexo...
>+Ethernet3 2 Intel(R) 82574L Gigabit Network Co...#3
>+Ethernet2 2 Intel(R) 82574L Gigabit Network Co...#4
>+Ethernet1 2 Intel(R) 82574L Gigabit Network Co...#2
>+Ethernet0 2 Intel(R) 82574L Gigabit Network Conn...
>+
>+Next we will set up the Hyper-V VMSwitch on the new adapter ``external``
>+
>+PS > New-VMSwitch -Name external -NetAdapterName external \
>+ -AllowManagementOS $false
>+
>+Under OVS the adapters under the team ``external``, ``Ethernet0 2`` and
>+``Ethernet1 2``, can be added either under a bond device or separately.
>+
>+The following example shows how the bridges look with the NICs being
>separated::
>+
>+> ovs-vsctl show
>+
>+6cd9481b-c249-4ee3-8692-97b399dd29d8
>+ Bridge br-test
>+ Port br-test
>+ Interface br-test
>+ type: internal
>+ Port "Ethernet1 2"
>+ Interface "Ethernet1 2"
>+ Bridge br-pif
>+ Port "Ethernet0 2"
>+ Interface "Ethernet0 2"
>+ Port br-pif
>+ Interface br-pif
>+ type: internal
>+
> Add patch ports and configure VLAN tagging
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>--
>2.10.2.windows.1
>_______________________________________________
>dev mailing list
>dev at openvswitch.org
>https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_
>mailman_listinfo_ovs-2Ddev&d=DgICAg&c=uilaK90D4TOVoH58JNXRgQ&r=Z6vowHUOjP5
>ysP_g372c49Nqc1vEKqHKNBkR5Q5Z7uo&m=4RxjE6qTbx3nNgh6Z4aDImMkqLtmK2sjQFThZiA
>VHIc&s=h6FN3tzK8z23Flb-xjOiwGMynCI4UXMIcys1pceFKuI&e=
More information about the dev
mailing list