From patchwork Wed Dec 21 20:39:53 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Finucane X-Patchwork-Id: 707956 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3tkRPm4W2hz9s2G for ; Thu, 22 Dec 2016 07:41:00 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="EVlDipUG"; dkim-atps=neutral Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 14B23BFD; Wed, 21 Dec 2016 20:40:19 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id D4D10BF9 for ; Wed, 21 Dec 2016 20:40:17 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from brown.birch.relay.mailchannels.net (brown.birch.relay.mailchannels.net [23.83.209.23]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 807592A2 for ; Wed, 21 Dec 2016 20:40:13 +0000 (UTC) X-Sender-Id: mxroute|x-authuser|stephen@that.guru Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C210E1BC9C7 for ; Wed, 21 Dec 2016 20:40:07 +0000 (UTC) Received: from one.mxroute.com (ip-10-229-2-62.us-west-2.compute.internal [10.229.2.62]) by relay.mailchannels.net (Postfix) with ESMTPA id 176741BCEB5 for ; Wed, 21 Dec 2016 20:40:07 +0000 (UTC) X-Sender-Id: mxroute|x-authuser|stephen@that.guru Received: from one.mxroute.com ([TEMPUNAVAIL]. [10.107.128.240]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.7.8); Wed, 21 Dec 2016 20:40:07 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: mxroute|x-authuser|stephen@that.guru X-MailChannels-Auth-Id: mxroute X-MC-Loop-Signature: 1482352807458:64374176 X-MC-Ingress-Time: 1482352807458 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=that.guru; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=aA+TfistJF8SAoxH67ZJZ7nIu4TjLTMdDtfMBBZ8tPU=; b=EVlDipUGNWE5uj/O1q3iH5Nc91 kKnyqC+X9Us2zNZUaIma2/gSc/Y+UllRMPGscBKFvQn+GkKvsFSJhYTwL30nabN50YkIHRtgJdmIq y8VMPRV1p3vB3LqLqjB5NhQROMDXrZWThNbSgTgyOew0V5OFraqw6QzKW1uojP0wKTh0HMRhsDeBt Geu3RUWdfXt4FYgziav2QqyXQkYc3ljPDzV1szr0QZS38l60yJmc46dI52WvTWX4XFCILuv2mXCGo rhDlCFVaMQJRtZ+N2zzxFQuMks4+Lytbkp43WQlprfaxWdL0VNKGgwWtuGAxBWstMiJg1EuuEw90e 0tzWQy/g==; From: Stephen Finucane To: dev@openvswitch.org Date: Wed, 21 Dec 2016 20:39:53 +0000 Message-Id: <20161221203954.26353-2-stephen@that.guru> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20161221203954.26353-1-stephen@that.guru> References: <20161221203954.26353-1-stephen@that.guru> X-AuthUser: stephen@that.guru X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID, T_FILL_THIS_FORM_SHORT autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH 2/3] doc: Misc Windows doc formatting fixes X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org There are a couple of minor issues with this document: - Some commands intended to be run in the MinGW shell are prefixed with '>', suggesting they are in fact PowerShell commands - PowerShell syntax highlighting is not enabled - Indentation is off for a couple of blocks Resolve all of these through use of the 'code-block' element and a lot of random fixes. Signed-off-by: Stephen Finucane --- Documentation/intro/install/windows.rst | 496 +++++++++++++++++++------------- 1 file changed, 294 insertions(+), 202 deletions(-) diff --git a/Documentation/intro/install/windows.rst b/Documentation/intro/install/windows.rst index 6d65f06..1ba9b63 100644 --- a/Documentation/intro/install/windows.rst +++ b/Documentation/intro/install/windows.rst @@ -94,7 +94,7 @@ The following explains the steps in some detail. directory (e.g.: ``C:/pthread``). You should add the pthread-win32's dll path (e.g.: ``C:\pthread\dll\x86``) to the Windows' PATH environment variable. -- OpenSSQL +- OpenSSL To get SSL support for Open vSwitch on Windows, you will need to install `OpenSSL for Windows `__ @@ -102,6 +102,13 @@ The following explains the steps in some detail. Note down the directory where OpenSSL is installed (e.g.: ``C:/OpenSSL-Win32``) for later use. +.. note:: + + Commands prefixed by ``$`` must be run in the Bash shell provided by MinGW. + Open vSwitch commands, such as ``ovs-dpctl`` are shown running under + PowerShell (``>`` prefix) but will also run under Bash. The remainder, + prefixed by ``>``, are PowerShell commands and must be run in PowerShell. + Install Requirements -------------------- @@ -123,9 +130,11 @@ Bootstrapping This step is not needed if you have downloaded a released tarball. If you pulled the sources directly from an Open vSwitch Git tree or got a Git tree snapshot, then run boot.sh in the top source directory to build -the "configure" script:: +the "configure" script: + +.. code-block:: bash - > ./boot.sh + $ ./boot.sh .. _windows-configuring: @@ -134,45 +143,53 @@ Configuring Configure the package by running the configure script. You should provide some configure options to choose the right compiler, linker, libraries, Open vSwitch -component installation directories, etc. For example:: +component installation directories, etc. For example: - > ./configure CC=./build-aux/cccl LD="$(which link)" \ - LIBS="-lws2_32 -liphlpapi -lwbemuuid -lole32 -loleaut32" \ - --prefix="C:/openvswitch/usr" \ - --localstatedir="C:/openvswitch/var" \ - --sysconfdir="C:/openvswitch/etc" \ - --with-pthread="C:/pthread" +.. code-block:: bash + + $ ./configure CC=./build-aux/cccl LD="$(which link)" \ + LIBS="-lws2_32 -liphlpapi -lwbemuuid -lole32 -loleaut32" \ + --prefix="C:/openvswitch/usr" \ + --localstatedir="C:/openvswitch/var" \ + --sysconfdir="C:/openvswitch/etc" \ + --with-pthread="C:/pthread" .. note:: - By default, the above enables compiler optimization for fast code. For - default compiler optimization, pass the ``--with-debug`` configure option. - -To configure with SSL support, add the requisite additional options:: - - > ./configure CC=./build-aux/cccl LD="`which link`" \ - 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 -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" \ - --with-vstudiotarget="" + + By default, the above enables compiler optimization for fast code. For + default compiler optimization, pass the ``--with-debug`` configure option. + +To configure with SSL support, add the requisite additional options: + +.. code-block:: bash + + $ ./configure CC=./build-aux/cccl LD="`which link`" \ + 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: + +.. code-block:: bash + + $ ./configure CC=./build-aux/cccl LD="`which link`" \ + 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" \ + --with-vstudiotarget="" Possible values for ```` are: ``Debug`` and ``Release`` .. note:: - You can directly use the Visual Studio 2013 IDE to compile the kernel - datapath. Open the ovsext.sln file in the IDE and build the solution. + + You can directly use the Visual Studio 2013 IDE to compile the kernel + datapath. Open the ovsext.sln file in the IDE and build the solution. Refer to :doc:`general` for information on additional configuration options. @@ -184,39 +201,49 @@ Building Once correctly configured, building Open vSwitch on Windows is similar to building on Linux, FreeBSD, or NetBSD. -#. Run make for the ported executables in the top source directory, e.g.:: +#. Run make for the ported executables in the top source directory, e.g.: + + .. code-block:: bash - > make + $ make For faster compilation, you can pass the ``-j`` argument to make. For example, to run 4 jobs simultaneously, run ``make -j4``. .. note:: - MSYS 1.0.18 has a bug that causes parallel make to hang. You can overcome - this by downgrading to MSYS 1.0.17. A simple way to downgrade is to exit - all MinGW sessions and then run the below command from MSVC developers - command prompt.:: + MSYS 1.0.18 has a bug that causes parallel make to hang. You can overcome + this by downgrading to MSYS 1.0.17. A simple way to downgrade is to exit + all MinGW sessions and then run the below command from MSVC developers + command prompt.: + + .. code-block:: doscon > mingw-get upgrade msys-core-bin=1.0.17-1 -#. To run all the unit tests in Open vSwitch, one at a time:: +#. To run all the unit tests in Open vSwitch, one at a time: + + .. code-block:: bash - > make check + $ make check - To run all the unit tests in Open vSwitch, up to 8 in parallel:: + To run all the unit tests in Open vSwitch, up to 8 in parallel: - > make check TESTSUITEFLAGS="-j8" + .. code-block:: bash -#. To install all the compiled executables on the local machine, run:: + $ make check TESTSUITEFLAGS="-j8" - > make install +#. To install all the compiled executables on the local machine, run: + + .. code-block:: bash + + $ make install .. note:: - This will install the Open vSwitch executables in ``C:/openvswitch``. You - can add ``C:\openvswitch\usr\bin`` and ``C:\openvswitch\usr\sbin`` to - Windows' PATH environment variable for easy access. + This will install the Open vSwitch executables in ``C:/openvswitch``. You + can add ``C:\openvswitch\usr\bin`` and ``C:\openvswitch\usr\sbin`` to + Windows' PATH environment variable for easy access. The Kernel Module ~~~~~~~~~~~~~~~~~ @@ -231,20 +258,24 @@ the target Hyper-V machine. - ``./datapath-windows/misc/uninstall.cmd`` .. note:: - The above path assumes that the kernel module has been built using Windows - DDK 8.1 in Debug mode. Change the path appropriately, if a different WDK - has been used. + + The above path assumes that the kernel module has been built using Windows + DDK 8.1 in Debug mode. Change the path appropriately, if a different WDK has + been used. Now run ``./uninstall.cmd`` to remove the old extension. Once complete, run ``./install.cmd`` to insert the new one. For this to work you will have to turn on ``TESTSIGNING`` boot option or 'Disable Driver Signature -Enforcement' during boot. The following commands can be used:: +Enforcement' during boot. The following commands can be used: + +.. code-block:: powershell - > bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS - > bcdedit /set TESTSIGNING ON - > bcdedit /set nointegritychecks ON + PS > bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS + PS > bcdedit /set TESTSIGNING ON + PS > bcdedit /set nointegritychecks ON .. note:: + You may have to restart the machine for the settings to take effect. In the Virtual Switch Manager configuration you can enable the Open vSwitch @@ -253,72 +284,95 @@ existing switch, make sure to enable the "Allow Management OS" option for VXLAN to work (covered later). The command to create a new switch named 'OVS-Extended-Switch' using a physical -NIC named 'Ethernet 1' is:: +NIC named 'Ethernet 1' is: + +.. code-block:: powershell - PS > New-VMSwitch "OVS-Extended-Switch" -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' - command. + + You can obtain the list of physical NICs on the host using 'Get-NetAdapter' + command. In the properties of any switch, you should should now see "Open vSwitch Extension" under 'Extensions'. Click the check box to enable the extension. -An alternative way to do the same is to run the following command:: +An alternative way to do the same is to run the following command: + +.. code-block:: powershell - PS > Enable-VMSwitchExtension "Open vSwitch Extension" OVS-Extended-Switch + PS > Enable-VMSwitchExtension "Open vSwitch Extension" OVS-Extended-Switch .. note:: - If you enabled the extension using the command line, a delay of a few seconds - has been observed for the change to be reflected in the UI. This is not a - bug in Open vSwitch. + + If you enabled the extension using the command line, a delay of a few + seconds has been observed for the change to be reflected in the UI. This is + not a bug in Open vSwitch. Starting -------- .. important:: - The following steps assume that you have installed the Open vSwitch utilities - in the local machine via 'make install'. + + The following steps assume that you have installed the Open vSwitch + utilities in the local machine via 'make install'. Before starting ovs-vswitchd itself, you need to start its configuration database, ovsdb-server. Each machine on which Open vSwitch is installed should run its own copy of ovsdb-server. Before ovsdb-server itself can be started, -configure a database that it can use:: +configure a database that it can use: + +.. code-block:: powershell - > ovsdb-tool create C:\openvswitch\etc\openvswitch\conf.db \ + PS > ovsdb-tool create C:\openvswitch\etc\openvswitch\conf.db \ C:\openvswitch\usr\share\openvswitch\vswitch.ovsschema Configure ovsdb-server to use database created above and to listen on a Unix -domain socket:: +domain socket: - > ovsdb-server -vfile:info --remote=punix:db.sock --log-file \ +.. code-block:: powershell + + PS > ovsdb-server -vfile:info --remote=punix:db.sock --log-file \ --pidfile --detach .. note:: - The logfile is created at ``C:/openvswitch/var/log/openvswitch/`` + + The logfile is created at ``C:/openvswitch/var/log/openvswitch/`` Initialize the database using ovs-vsctl. This is only necessary the first time after you create the database with ovsdb-tool, though running it at any time is -harmless:: +harmless: + +.. code-block:: powershell - > ovs-vsctl --no-wait init + PS > ovs-vsctl --no-wait init .. tip:: - If you would later like to terminate the started ovsdb-server, run:: - > ovs-appctl -t ovsdb-server exit + If you would later like to terminate the started ovsdb-server, run: + + .. code-block:: powershell + + PS > ovs-appctl -t ovsdb-server exit Start the main Open vSwitch daemon, telling it to connect to the same Unix -domain socket:: +domain socket: - > ovs-vswitchd -vfile:info --log-file --pidfile --detach +.. code-block:: powershell + + PS > ovs-vswitchd -vfile:info --log-file --pidfile --detach .. tip:: - If you would like to terminate the started ovs-vswitchd, run:: - > ovs-appctl exit + If you would like to terminate the started ovs-vswitchd, run: + + .. code-block:: powershell + + PS > ovs-appctl exit .. note:: - The logfile is created at ``C:/openvswitch/var/log/openvswitch/`` + + The logfile is created at ``C:/openvswitch/var/log/openvswitch/`` Validating ---------- @@ -330,43 +384,49 @@ Add bridges ~~~~~~~~~~~ Let's start by creating an integration bridge, ``br-int`` and a PIF bridge, -``br-pif``:: +``br-pif``: - > ovs-vsctl add-br br-int - > ovs-vsctl add-br br-pif +.. code-block:: powershell + + PW > ovs-vsctl add-br br-int + PW > ovs-vsctl add-br br-pif .. note:: - There's a known bug that running the ovs-vsctl command does not terminate. - This is generally solved by having ovs-vswitchd running. If you face the - issue despite that, hit Ctrl-C to terminate ovs-vsctl and check the output to - see if your command succeeded. -Validate that ports are added by dumping from both ovs-dpctl and ovs-vsctl:: + There's a known bug that running the ovs-vsctl command does not terminate. + This is generally solved by having ovs-vswitchd running. If you face the + issue despite that, hit Ctrl-C to terminate ovs-vsctl and check the output + to see if your command succeeded. - > ovs-dpctl show - system@ovs-system: - lookups: hit:0 missed:0 lost:0 - flows: 0 - port 2: br-pif (internal) <<< internal port on 'br-pif' bridge - port 1: br-int (internal) <<< internal port on 'br-int' bridge +Validate that ports are added by dumping from both ovs-dpctl and ovs-vsctl: - > ovs-vsctl show - a56ec7b5-5b1f-49ec-a795-79f6eb63228b - Bridge br-pif - Port br-pif - Interface br-pif - type: internal - Bridge br-int - Port br-int - Interface br-int - type: internal +.. code-block:: powershell + + PS > ovs-dpctl show + system@ovs-system: + lookups: hit:0 missed:0 lost:0 + flows: 0 + port 2: br-pif (internal) <<< internal port on 'br-pif' bridge + port 1: br-int (internal) <<< internal port on 'br-int' bridge + + PS > ovs-vsctl show + a56ec7b5-5b1f-49ec-a795-79f6eb63228b + Bridge br-pif + Port br-pif + Interface br-pif + type: internal + Bridge br-int + Port br-int + Interface br-int + type: internal .. note:: - There's a known bug that the ports added to OVSDB via ovs-vsctl don't get to - the kernel datapath immediately, ie. they don't show up in the output of - ``ovs-dpctl show`` even though they show up in output of ``ovs-vsctl show``. - In order to workaround this issue, restart ovs-vswitchd. (You can terminate - ovs-vswitchd by running ``ovs-appctl exit``.) + + There's a known bug that the ports added to OVSDB via ovs-vsctl don't get to + the kernel datapath immediately, ie. they don't show up in the output of + ``ovs-dpctl show`` even though they show up in output of ``ovs-vsctl show``. + In order to workaround this issue, restart ovs-vswitchd. (You can terminate + ovs-vswitchd by running ``ovs-appctl exit``.) Add physicals NICs (PIF) ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -379,16 +439,19 @@ 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 OVS extension is enabled Hyper-V switch. + + We assume that the OVS extension is enabled Hyper-V switch. Internal ports are the virtual adapters created on the Hyper-V switch using the ``ovs-vsctl add-br `` command. By default they are created under the following rule "" 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:: +As a whole example, if we issue the following in a powershell console: + +.. code-block:: powershell - PS C:\package\binaries> Get-NetAdapter | select Name,InterfaceDescription + PS > Get-NetAdapter | select Name,InterfaceDescription Name InterfaceDescription ---- -------------------- Ethernet1 Intel(R) PRO/1000 MT Network Connection @@ -396,43 +459,47 @@ As a whole example, if we issue the following in a powershell console:: Ethernet0 Intel(R) PRO/1000 MT Network Connection #2 br-int Hyper-V Virtual Ethernet Adapter #3 - PS C:\package\binaries> Get-VMSwitch + PS > Get-VMSwitch Name SwitchType NetAdapterInterfaceDescription ---- ---------- ------------------------------ 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 the internal ports under name 'br-pif' and 'br-int'. Thus -resulting into the following ovs-vsctl commands:: +resulting into the following ovs-vsctl commands: - > ovs-vsctl add-port br-pif Ethernet0 +.. code-block:: powershell -Dumping the ports should show the additional ports that were just added:: + PS > ovs-vsctl add-port br-pif Ethernet0 - > ovs-dpctl show - system@ovs-system: - lookups: hit:0 missed:0 lost:0 - flows: 0 - 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 br-pif - Interface br-pif - type: internal - Port "Ethernet0" - Interface "Ethernet0" - Bridge br-int - Port br-int - Interface br-int - type: internal +Dumping the ports should show the additional ports that were just added: + +.. code-block:: powershell + + PW > ovs-dpctl show + system@ovs-system: + lookups: hit:0 missed:0 lost:0 + flows: 0 + 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 + + PW > ovs-vsctl show + a56ec7b5-5b1f-49ec-a795-79f6eb63228b + Bridge br-pif + Port br-pif + Interface br-pif + type: internal + Port "Ethernet0" + Interface "Ethernet0" + Bridge br-int + Port br-int + Interface br-int + type: internal Add virtual interfaces (VIFs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -459,11 +526,11 @@ assumed to be the Hyper-V switch with OVS extension enabled.:: Next, add the VIFs to ``br-int``:: - > ovs-vsctl add-port br-int ovs-port-a + PS > ovs-vsctl add-port br-int ovs-port-a Dumping the ports should show the additional ports that were just added:: - > ovs-dpctl show + PS > ovs-dpctl show system@ovs-system: lookups: hit:0 missed:0 lost:0 flows: 0 @@ -472,7 +539,7 @@ Dumping the ports should show the additional ports that were just added:: port 1: br-int (internal port 3: Ethernet0 - > ovs-vsctl show + PS > ovs-vsctl show 4cd86499-74df-48bd-a64d-8d115b12a9f2 Bridge br-pif Port "vEthernet (external)" @@ -514,6 +581,7 @@ For example, to set up a switch team combined from ``Ethernet0 2`` and 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} @@ -523,7 +591,6 @@ This will result in a new adapter bound to the host called ``external``: .. code-block:: powershell PS > Get-NetAdapter - Name InterfaceDescription ---- -------------------- br-test Hyper-V Virtual Ethernet Adapter #4 @@ -571,51 +638,62 @@ Add patch ports and configure VLAN tagging The Windows Open vSwitch implementation support VLAN tagging in the switch. Switch VLAN tagging along with patch ports between ``br-int`` and ``br-pif`` is used to configure VLAN tagging functionality between two VMs on different -Hyper-Vs. To start, add a patch port from ``br-int`` to ``br-pif``:: +Hyper-Vs. To start, add a patch port from ``br-int`` to ``br-pif``: + +.. code-block:: powershell + + PS > ovs-vsctl add-port br-int patch-to-pif + PS > ovs-vsctl set interface patch-to-pif type=patch \ + options:peer=patch-to-int - > ovs-vsctl add-port br-int patch-to-pif - > ovs-vsctl set interface patch-to-pif type=patch \ - options:peer=patch-to-int +Add a patch port from ``br-pif`` to ``br-int``: -Add a patch port from ``br-pif`` to ``br-int``:: +.. code-block:: powershell - > ovs-vsctl add-port br-pif patch-to-int - > ovs-vsctl set interface patch-to-int type=patch \ - options:peer=patch-to-pif + PS > ovs-vsctl add-port br-pif patch-to-int + PS > ovs-vsctl set interface patch-to-int type=patch \ + options:peer=patch-to-pif -Re-Add the VIF ports with the VLAN tag:: +Re-Add the VIF ports with the VLAN tag: - > ovs-vsctl add-port br-int ovs-port-a tag=900 - > ovs-vsctl add-port br-int ovs-port-b tag=900 +.. code-block:: powershell + + PS > ovs-vsctl add-port br-int ovs-port-a tag=900 + PS > ovs-vsctl add-port br-int ovs-port-b tag=900 Add tunnels ~~~~~~~~~~~ The Windows Open vSwitch implementation support VXLAN and STT tunnels. To add tunnels. For example, first add the tunnel port between 172.168.201.101 <-> -172.168.201.102:: +172.168.201.102: + +.. code-block:: powershell - > ovs-vsctl add-port br-int tun-1 - > ovs-vsctl set Interface tun-1 type= - > ovs-vsctl set Interface tun-1 options:local_ip=172.168.201.101 - > ovs-vsctl set Interface tun-1 options:remote_ip=172.168.201.102 - > ovs-vsctl set Interface tun-1 options:in_key=flow - > ovs-vsctl set Interface tun-1 options:out_key=flow + PS > ovs-vsctl add-port br-int tun-1 + PS > ovs-vsctl set Interface tun-1 type= + PS > ovs-vsctl set Interface tun-1 options:local_ip=172.168.201.101 + PS > ovs-vsctl set Interface tun-1 options:remote_ip=172.168.201.102 + PS > ovs-vsctl set Interface tun-1 options:in_key=flow + PS > ovs-vsctl set Interface tun-1 options:out_key=flow -...and the tunnel port between 172.168.201.101 <-> 172.168.201.105:: +...and the tunnel port between 172.168.201.101 <-> 172.168.201.105: - > ovs-vsctl add-port br-int tun-2 - > ovs-vsctl set Interface tun-2 type= - > ovs-vsctl set Interface tun-2 options:local_ip=172.168.201.102 - > ovs-vsctl set Interface tun-2 options:remote_ip=172.168.201.105 - > ovs-vsctl set Interface tun-2 options:in_key=flow - > ovs-vsctl set Interface tun-2 options:out_key=flow +.. code-block:: powershell + + PS > ovs-vsctl add-port br-int tun-2 + PS > ovs-vsctl set Interface tun-2 type= + PS > ovs-vsctl set Interface tun-2 options:local_ip=172.168.201.102 + PS > ovs-vsctl set Interface tun-2 options:remote_ip=172.168.201.105 + PS > ovs-vsctl set Interface tun-2 options:in_key=flow + PS > ovs-vsctl set Interface tun-2 options:out_key=flow Where ```` is one of: ``stt`` or ``vxlan`` .. note:: - Any patch ports created between br-int and br-pif MUST be be deleted prior to - adding tunnels. + + Any patch ports created between br-int and br-pif MUST be be deleted prior + to adding tunnels. Windows Services ---------------- @@ -624,55 +702,69 @@ Open vSwitch daemons come with support to run as a Windows service. The instructions here assume that you have installed the Open vSwitch utilities and daemons via ``make install``. -.. note:: - The commands shown here can be run from MSYS bash or Windows command prompt. +To start, create the database: -To start, create the database:: +.. code-block:: powershell + + PS > ovsdb-tool create C:/openvswitch/etc/openvswitch/conf.db \ + "C:/openvswitch/usr/share/openvswitch/vswitch.ovsschema" - > ovsdb-tool create C:/openvswitch/etc/openvswitch/conf.db \ - "C:/openvswitch/usr/share/openvswitch/vswitch.ovsschema" +Create the ovsdb-server service and start it: -Create the ovsdb-server service and start it:: +.. code-block:: powershell - > sc create ovsdb-server \ - binpath="C:/openvswitch/usr/sbin/ovsdb-server.exe \ + PS > sc create ovsdb-server \ + binpath="C:/openvswitch/usr/sbin/ovsdb-server.exe \ C:/openvswitch/etc/openvswitch/conf.db \ -vfile:info --log-file --pidfile \ --remote=punix:db.sock --service --service-monitor" - > sc start ovsdb-server + PS > sc start ovsdb-server .. tip:: - One of the common issues with creating a Windows service is with mungled - paths. You can make sure that the correct path has been registered with the - Windows services manager by running:: - > sc qc ovsdb-server + One of the common issues with creating a Windows service is with mungled + paths. You can make sure that the correct path has been registered with the + Windows services manager by running: + + .. code-block:: powershell -Check that the service is healthy by running:: + PS > sc qc ovsdb-server - > sc query ovsdb-server +Check that the service is healthy by running: -Initialize the database:: +.. code-block:: powershell + + PS > sc query ovsdb-server - > ovs-vsctl --no-wait init +Initialize the database: -Create the ovs-vswitchd service and start it:: +.. code-block:: powershell - > sc create ovs-vswitchd \ - binpath="C:/openvswitch/usr/sbin/ovs-vswitchd.exe \ - --pidfile -vfile:info --log-file --service --service-monitor" - > sc start ovs-vswitchd + PS > ovs-vsctl --no-wait init -Check that the service is healthy by running:: +Create the ovs-vswitchd service and start it: - > sc query ovs-vswitchd +.. code-block:: powershell -To stop and delete the services, run:: + PS > sc create ovs-vswitchd \ + binpath="C:/openvswitch/usr/sbin/ovs-vswitchd.exe \ + --pidfile -vfile:info --log-file --service --service-monitor" + PS > sc start ovs-vswitchd + +Check that the service is healthy by running: + +.. code-block:: powershell + + PS > sc query ovs-vswitchd + +To stop and delete the services, run: + +.. code-block:: powershell - > sc stop ovs-vswitchd - > sc stop ovsdb-server - > sc delete ovs-vswitchd - > sc delete ovsdb-server + PS > sc stop ovs-vswitchd + PS > sc stop ovsdb-server + PS > sc delete ovs-vswitchd + PS > sc delete ovsdb-server Windows CI Service ------------------