Updating The Nuage VSP Plugin Documentation for ACS 4.10 release
authorKris Sterckx <kris.sterckx@nuagenetworks.net>
Fri, 24 Feb 2017 11:09:29 +0000 (12:09 +0100)
committerRohit Yadav <rhtyd@users.noreply.github.com>
Fri, 14 Jul 2017 09:45:06 +0000 (15:15 +0530)
14 files changed:
rtd/source/_static/images/nuage_iso_net_off.png [new file with mode: 0644]
rtd/source/_static/images/nuage_kvm_traffic_label.jpg [new file with mode: 0644]
rtd/source/_static/images/nuage_sha_net_off.png [new file with mode: 0644]
rtd/source/_static/images/nuage_source_nat_net_off.png [new file with mode: 0644]
rtd/source/_static/images/nuage_underlay_api_usage.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vmware_traffic_label.jpg [new file with mode: 0644]
rtd/source/_static/images/nuage_vpc_net_off.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vpc_off.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vsd_device_add.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vsp_isolation_method_setting.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vsp_nsp_enable.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vsp_nsp_status.png [new file with mode: 0644]
rtd/source/_static/images/nuage_vsp_vpc_off.png [new file with mode: 0644]
rtd/source/networking/nuage-plugin.rst

diff --git a/rtd/source/_static/images/nuage_iso_net_off.png b/rtd/source/_static/images/nuage_iso_net_off.png
new file mode 100644 (file)
index 0000000..2ebb03b
Binary files /dev/null and b/rtd/source/_static/images/nuage_iso_net_off.png differ
diff --git a/rtd/source/_static/images/nuage_kvm_traffic_label.jpg b/rtd/source/_static/images/nuage_kvm_traffic_label.jpg
new file mode 100644 (file)
index 0000000..e81c0f5
Binary files /dev/null and b/rtd/source/_static/images/nuage_kvm_traffic_label.jpg differ
diff --git a/rtd/source/_static/images/nuage_sha_net_off.png b/rtd/source/_static/images/nuage_sha_net_off.png
new file mode 100644 (file)
index 0000000..71ddcfc
Binary files /dev/null and b/rtd/source/_static/images/nuage_sha_net_off.png differ
diff --git a/rtd/source/_static/images/nuage_source_nat_net_off.png b/rtd/source/_static/images/nuage_source_nat_net_off.png
new file mode 100644 (file)
index 0000000..00f7955
Binary files /dev/null and b/rtd/source/_static/images/nuage_source_nat_net_off.png differ
diff --git a/rtd/source/_static/images/nuage_underlay_api_usage.png b/rtd/source/_static/images/nuage_underlay_api_usage.png
new file mode 100644 (file)
index 0000000..6761dc8
Binary files /dev/null and b/rtd/source/_static/images/nuage_underlay_api_usage.png differ
diff --git a/rtd/source/_static/images/nuage_vmware_traffic_label.jpg b/rtd/source/_static/images/nuage_vmware_traffic_label.jpg
new file mode 100644 (file)
index 0000000..6f7a7c1
Binary files /dev/null and b/rtd/source/_static/images/nuage_vmware_traffic_label.jpg differ
diff --git a/rtd/source/_static/images/nuage_vpc_net_off.png b/rtd/source/_static/images/nuage_vpc_net_off.png
new file mode 100644 (file)
index 0000000..b45e8fe
Binary files /dev/null and b/rtd/source/_static/images/nuage_vpc_net_off.png differ
diff --git a/rtd/source/_static/images/nuage_vpc_off.png b/rtd/source/_static/images/nuage_vpc_off.png
new file mode 100644 (file)
index 0000000..a353e2f
Binary files /dev/null and b/rtd/source/_static/images/nuage_vpc_off.png differ
diff --git a/rtd/source/_static/images/nuage_vsd_device_add.png b/rtd/source/_static/images/nuage_vsd_device_add.png
new file mode 100644 (file)
index 0000000..60513d2
Binary files /dev/null and b/rtd/source/_static/images/nuage_vsd_device_add.png differ
diff --git a/rtd/source/_static/images/nuage_vsp_isolation_method_setting.png b/rtd/source/_static/images/nuage_vsp_isolation_method_setting.png
new file mode 100644 (file)
index 0000000..9dabf9a
Binary files /dev/null and b/rtd/source/_static/images/nuage_vsp_isolation_method_setting.png differ
diff --git a/rtd/source/_static/images/nuage_vsp_nsp_enable.png b/rtd/source/_static/images/nuage_vsp_nsp_enable.png
new file mode 100644 (file)
index 0000000..df7f0b4
Binary files /dev/null and b/rtd/source/_static/images/nuage_vsp_nsp_enable.png differ
diff --git a/rtd/source/_static/images/nuage_vsp_nsp_status.png b/rtd/source/_static/images/nuage_vsp_nsp_status.png
new file mode 100644 (file)
index 0000000..c8dd02e
Binary files /dev/null and b/rtd/source/_static/images/nuage_vsp_nsp_status.png differ
diff --git a/rtd/source/_static/images/nuage_vsp_vpc_off.png b/rtd/source/_static/images/nuage_vsp_vpc_off.png
new file mode 100644 (file)
index 0000000..b1c4f29
Binary files /dev/null and b/rtd/source/_static/images/nuage_vsp_vpc_off.png differ
index dc645fa..7e1c907 100644 (file)
 The Nuage VSP Plugin
 ====================
 
+
 Introduction
 ------------
 
-The Nuage VSP plugin is the Nuage Networks SDN
-implementation in CloudStack, which integrates with Release 3.2 of the
-Nuage Networks Virtualized Services Platform.
-The plugin can be used by CloudStack to leverage the scalability and rich features of Advanced SDN and to implement:
+The Nuage VSP Plugin is the Nuage Networks SDN
+implementation in CloudStack, which integrates with Nuage Networks
+Virtualized Services Platform (VSP).
+The plugin can be used by CloudStack to leverage the scalability and rich features of advanced SDN being provided by the Nuage VSP SDN Platform and to implement:
 
 * Isolated Guest Networks
-* Virtual Private Clouds (VPCs)
+* Virtual Private Clouds (VPC)
 * Shared Networks
 
 For more information about Nuage Networks, visit www.nuagenetworks.net.
 
+Supported Features
+~~~~~~~~~~~~~~~~~~
+
+The following table lists the supported Network services in a CloudStack deployment with NuageVsp being the Connectivity/Virtual Networking provider, with their providers and supported CloudStack versions.
 
-Features
---------
+.. cssclass:: table-striped table-bordered table-hover
 
-The following table lists the CloudStack network services provided by
-the Nuage VSP Plugin.
++---------------------------+---------------------------+---------------------------+---------------------------+
+| Network Service           | Isolated Networks         | VPCs                      | Shared Networks           |
++===========================+===========================+===========================+===========================+
+| Virtual Networking        | NuageVsp (>=4.5)          | NuageVsp (>=4.5)          | NuageVsp (>=4.10)         |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| Dhcp                      | NuageVsp (>=4.5)          | NuageVsp (>=4.5)          | NuageVsp (>=4.10)         |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| SourceNat                 | NuageVsp (>=4.10)         | NuageVsp (>=4.10)         | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| StaticNat                 | NuageVsp (>=4.5)          | NuageVsp (>=4.5)          | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| Firewall                  | NuageVsp (>=4.5)          | N/A                       | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| NetworkACL                | N/A                       | NuageVsp (>=4.5)          | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| UserData                  | VirtualRouter (>=4.5)     | VpcVirtualRouter (>=4.5)  | VirtualRouter (>=4.10)    |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| Dns                       | VirtualRouter (>=4.10)    | VpcVirtualRouter (>=4.10) | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+| Internal Lb               | N/A                       | InternalLbVm (>=4.9)      | N/A                       |
++---------------------------+---------------------------+---------------------------+---------------------------+
+
+Table: Supported Network Services
+
+.. note::
+   The Virtual Networking service was originally called 'Connectivity'
+   in CloudStack 4.0
+
+Supported Hypervisors
+~~~~~~~~~~~~~~~~~~~~~
+
+The following hypervisors are supported by the Nuage VSP Plugin, with their supported CloudStack versions.
 
 .. cssclass:: table-striped table-bordered table-hover
 
 +----------------------+----------------------+
-| Network Service      | CloudStack version   |
+| Hypervisor           | CloudStack version   |
 +======================+======================+
-| Virtual Networking   | >= 4.5               |
-+----------------------+----------------------+
-| VPC                  | >= 4.5               |
-+----------------------+----------------------+
-| Source NAT           | >= 4.5               |
-+----------------------+----------------------+
-| Static NAT           | >= 4.5               |
+| KVM 7.x              | >= 4.5               |
 +----------------------+----------------------+
-| Firewall             | >= 4.5               |
+| VMware ESXi 5.5      | >= 4.5               |
 +----------------------+----------------------+
-| Network ACL          | >= 4.5               |
-+----------------------+----------------------+
-| User Data (*)        | >= 4.7               |
+| VMware ESXi 6.0      | >= 4.9               |
 +----------------------+----------------------+
 
-(*) Through the use of VR Provider
+Table: Supported Hypervisors
 
-Table: Supported Services
+Supported Nuage VSP SDN Platform Versions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-.. note::
-   The Virtual Networking service was originally called 'Connectivity'
-   in CloudStack 4.0
-
-The following hypervisors are supported by the Nuage VSP Plugin.
+The following Nuage VSP SDN Platform versions are supported by the Nuage VSP Plugin, with their supported CloudStack versions.
 
 .. cssclass:: table-striped table-bordered table-hover
 
-+--------------+----------------------+
-| Hypervisor   | CloudStack version   |
-+==============+======================+
-| XenServer    | >= 4.5               |
-+--------------+----------------------+
-| VmWare ESXi  | >= 4.5               |
-+--------------+----------------------+
-| KVM          | >= 4.7               |
-+--------------+----------------------+
++----------------------+----------------------+
+| Nuage VSP version    | CloudStack version   |
++======================+======================+
+| Nuage VSP v3.2       | >= 4.5               |
++----------------------+----------------------+
+| Nuage VSP v4.0       | >= 4.10              |
++----------------------+----------------------+
 
-Table: Supported Hypervisors
+Table: Supported Nuage VSP SDN Platform Versions
 
 
-Configuring the Nuage-VSP Plugin
+Configuring The Nuage VSP Plugin
 --------------------------------
 
 Prerequisites
 ~~~~~~~~~~~~~
 
-Before building and using the Nuage plugin for ACS 4.7, verify that the platform you intend to use is supported.
+Before enabling and using the Nuage VSP Plugin with CloudStack.
 
-.. Note:: Only the release notes for Nuage VSP contain the most up-to-date information on supported versions. Please check them to verify that the information below is current.
+1. Verify that the CloudStack deployment (hypervisors) and Nuage VSP SDN Platform version you intend to use is being supported.
 
-Supported Versions
-~~~~~~~~~~~~~~~~~~
+.. Note:: Only the release notes for Nuage VSP contain the most up-to-date information on different supported versions. Please check them to verify that the information in this document is up-to-date.
+
+2. Prepare and configure the hypervisors for CloudStack integration with Nuage VSP SDN Platform.
 
-* Nuage VSP 3.2
-* Apache CloudStack 4.7
-* Citrix XenServer 6.2
-* KVM on Enterprise Linux 7.x
+.. note::
+   Please refer to the Nuage VSP Install Guide on how to prepare the hypervisors for Nuage VSP SDN Platform integration.
 
-Required VSD Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+Required Nuage VSD Configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-When configuring Nuage VSP as the network service provider, Nuage VSD must be added as a CSP user, and this user must be added to the CMS group. See `Enabling the Service Provider`_.
+When configuring Nuage VSP as the network service provider in a CloudStack Zone, a CSP user must be added in Nuage VSD, and this user must be added to the CMS group. See `Enable Nuage VSP Network Service Provider`_.
+
+.. note::
+   Nuage VSD is the programmable policy and analytics engine of the Nuage VSP SDN Platform with which the Nuage VSP Plugin interacts.
 
 Zone Configuration
 ~~~~~~~~~~~~~~~~~~
 
-Select VSP Isolation Method During Zone Creation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Select VSP Isolation Method
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The Nuage VSP solution is NOT supported in Basic zone provisioning mode. 
 
-1. When adding a zone, the ACS administrator should select **Advanced** mode in the zone wizard. 
+1. When adding a zone, the CloudStack administrator should select **Advanced** mode in the zone wizard.
 2. When laying out the physical network configuration during zone provisioning, the **Guest** network traffic should be put in a separate physical network of its own.
 3. This physical network carrying the **Guest** traffic should have **VSP** as the **Isolation Method**.
 
+.. figure:: ../_static/images/nuage_vsp_isolation_method_setting.png
+
+   Setting Isolation Method to VSP
 
 Update Traffic Labels
 ~~~~~~~~~~~~~~~~~~~~~
@@ -126,109 +152,362 @@ Update Traffic Labels
 
 Select **Edit** on the **Guest** traffic type panel and update the Traffic Label:
 
--  For XenServer, use **nuageManagedNetwork** as the **XenServer Traffic Label**.
 -  For KVM, use **alubr0** as the **KVM Traffic Label**.
 
-Enabling the Service Provider
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. figure:: ../_static/images/nuage_kvm_traffic_label.jpg
+
+   Specifying the Traffic Type in KVM
+
+-  For VMware ESXi, use the switch name used by **dVRS** for guest networking as the **vSwitch Name**, leave the **VLAN ID** field blank, and select **VMware vNetwork Distributed Switch** in the **vSwitch Type** drop down field.
+
+.. figure:: ../_static/images/nuage_vmware_traffic_label.jpg
+
+   Specifying the Traffic Type in VMware ESXi
 
-Nuage VSP must be added to ACS as a Network Service Provider before it can be used. 
+Enable Nuage VSP Network Service Provider
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Nuage VSP must be added and enabled as a Network Service Provider in the CloudStack Zone before it can be used.
 
 :Step 1: Select **Infrastructure > Zone > [zone name] > Physical Network 2 > Configure Network Service Providers > Nuage Vsp > +**, which brings up the **Add Nuage Virtualized Services Directory (VSD)** panel. 
 
-:Step 2: Enter the VSD **Host Name**, **Username** and **Password** that was previously created. 
+:Step 2: Enter the Nuage VSD **Host Name**, **Username** and **Password** that was previously created.
+
+:Step 3: Specify the Nuage VSD API version by entering the API version in the appropriate field (format: ``v4_0``).
+
+:Step 4: *EITHER* Add **Nuage VSD** by clicking the **OK** button,
+
+         *OR* use Nuage VSP API calls to configure Nuage VSP as a Network Service Provider in the CloudStack Zone; see `Configure Nuage VSP API`_ in the Appendix of this document.
+
+.. figure:: ../_static/images/nuage_vsd_device_add.png
+
+   Adding Nuage VSD as the Network Service Provider
+
+:Step 5: Go to **Infrastructure > Zones > [zone name] > Physical Network 2 > Network Service Providers > Nuage Vsp > Devices > Details** tab as shown in the figure "Enabling Nuage VSP Network Service Provider" below. This indicates the state of Nuage VSP Network Service Provider. Enable Nuage VSP Network Service Provider by clicking **Enable**.
 
-:Step 3: Specify the VSD API version by entering the API version in the appropriate field (format: ``v3_2``).
+.. figure:: ../_static/images/nuage_vsp_nsp_enable.png
 
-:Step 4: *EITHER* Add **Nuage VSD** and click the **OK** button,
+   Enabling Nuage VSP Network Service Provider
 
-         *OR* use API calls to configure Nuage VSP as the Network Provider; see `Nuage VSD API`_ in the Appendix of the current document.
+:Step 6: (Optional) View the Nuage VSP Network Service Provider status on the list of Network Service Providers on the **Infrastructure > Zones > [zone name] > Physical Network 2 > Network Service Providers** page;
 
-:Step 5: Go to **Infrastructure > Zones > [zone name] > Physical Network 2 > Network Service Providers > Nuage Vsp > Devices > Details** tab as shown in the figure "Enabling Nuage VSP" below. This indicates the state of Nuage VSP. Enable Nuage VSP by clicking **Enable**.
+.. figure:: ../_static/images/nuage_vsp_nsp_status.png
 
-:Step 6: (Optional) View the Nuage VSP status on the list of Network Service Providers on the **Infrastructure > Zones > [zone name] > Physical Network 2 > Network Service Providers** page;
+   Viewing Network Service Providers Status
+
+
+Using The Nuage VSP Plugin
+--------------------------
 
 Network Offerings
 ~~~~~~~~~~~~~~~~~
 
-There are two types of Network Offerings that can be created:
+There are three types of Network Offerings that can be created:
 
--  If Isolated Networks are required, then create a network offering for use with Isolated Networks.
--  If VPC deployments are required, then create a new network offering for that.
+-  If Isolated Networks are required, then create a **Isolated** guest type network offering for use with Isolated Networks.
+-  If VPC deployments are required, then create a new **Isolated** guest type network offering for such deployments.
+-  If Shared Networks are required, then create a new **Shared** guest type network offering for use with Shared Networks.
+
+.. note::
+   **Per Zone** MUST always be selected as the **Supported Source NAT type** when **Source NAT** service is being provided by **NuageVsp**.
 
 Create and Enable Isolated Network Offering
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-1. Select **Service Offerings > Select Offering: Network Offerings > Add network offering**.
 
-2. In the **Supported Services** field select each of the following services - DHCP, Firewall, Source NAT, Static NAT, Virtual Networking and select Nuage VSP as the Provider.
+1. Select **Service Offerings > Select Offering: Network Offerings > Add network offering**, which brings up the **Add network offering**.
 
-3. If User Data service is desired in an Isolated Network, choose **VirtualRouter** as the User Data provider. **Per Zone** MUST be selected for the Source NAT Type for the Source NAT service.
+2. In the **Add network offering** panel, add a **Name** and a **Description** to the network offering. Select **Isolated** as the **Guest Type**. In the **Supported Services** field select services and providers that are supported by the Nuage VSP Plugin for Isolated Networks, see `Supported Features`_ at the beginning of this document.
 
-4. Click OK to create the offering. 
+.. figure:: ../_static/images/nuage_iso_net_off.png
 
-5. After the offering has been successfully created, enable it from the Service Offerings list.
+   Creating Isolated Network Offering
+
+3. Click the **OK** button to create the network offering.
+
+4. After the network offering has been successfully created, enable it from the **Service Offerings - Network Offerings** list.
 
 Create and Enable VPC Network Offering
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-1. Select **Service Offerings > Select Offering**: **Network Offerings > Add network offering**.
 
-2. Select the **VPC checkbox**. In the Supported Services field, select each of the following services and then select Nuage VSP as the Provider.
+1. Select **Service Offerings > Select Offering: Network Offerings > Add network offering**, which brings up the **Add network offering**.
 
-   *   DHCP
-   *   Source NAT
-   *  Static NAT
-   *   Virtual Networking 
+2. In the **Add network offering** panel, add a **Name** and a **Description** to the network offering. Select **Isolated** as the **Guest Type**. Select the **VPC** field. In the **Supported Services** field select services and providers that are supported by the Nuage VSP Plugin for VPCs, see `Supported Features`_ at the beginning of this document.
 
-3. (Optional) Select **VpcVirtualRouter** as the UserData provider if password reset or metadata feature is desired.
+.. figure:: ../_static/images/nuage_vpc_net_off.png
 
-4. (Optional) If network ACL is required, select **NuageVsp** as the network ACL provider. 
+   Creating VPC Network Offering
 
-   a) Ensure the *Persistent* checkbox is selected.
-   b) As the *Supported Source NAT Type*, select **Per Zone**.
+3. Click the **OK** button to create the network offering.
 
-5.  After the offering has been successfully created, enable it from the Service Offerings list.
+4. After the network offering has been successfully created, enable it from the **Service Offerings - Network Offerings** list.
 
-Dedicated Features That Come with Nuage VSP Plugin
---------------------------------------------------
+Create and Enable Shared Network Offering
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Domain Template Support for CloudStack in VSP
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1. Select **Service Offerings > Select Offering: Network Offerings > Add network offering**, which brings up the **Add network offering**.
 
-Overview
-~~~~~~~~
+2. In the **Add network offering** panel, add a **Name** and a **Description** to the network offering. Select **Shared** as the **Guest Type**. In the **Supported Services** field select services and providers that are supported by the Nuage VSP Plugin for Shared Networks, see `Supported Features`_ at the beginning of this document.
 
-VSP's CloudStack plugin can be configured to use a VSD template when instantiating domains. The parameters and abstractions contained in the template are reused every time a new domain instance is created in CloudStack, and thus all the constructs defined in the template are available to the domain. 
+.. figure:: ../_static/images/nuage_sha_net_off.png
 
-Configuration
+   Creating Shared Network Offering
+
+.. note::
+   Selecting the **Supporting Public Access** field in the Shared Network offering enables Public/Internet access to the VMs in the Shared Network.
+
+3. Click the **OK** button to create the network offering.
+
+4. After the network offering has been successfully created, enable it from the **Service Offerings - Network Offerings** list.
+
+VPC Offerings
 ~~~~~~~~~~~~~
 
-Details of the global variables that have been added to support domain templates are listed below: 
+Pre-created and Enabled Nuage VSP VPC Offering
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A VPC offering by the name **Nuage VSP VPC Offering** is pre-created and enabled in the list of **Service Offerings - VPC Offerings** (Select **Service Offerings > Select Offering: VPC Offerings**) which contains all the services and providers that are supported by the Nuage VSP Plugin for VPCs.
+
+.. figure:: ../_static/images/nuage_vsp_vpc_off.png
 
-:nuagevsp.isolatedntwk.domaintemplate.name: (Type: string) Name of the template to use for creation of domains for isolated networks.
+   Pre-created and Enabled Nuage VSP VPC Offering
 
-:nuagevsp.vpc.domaintemplate.name: (Type: boolean) Name of the template to use for creation of domains for VPC.
+(Optional) Create and Enable VPC Offering
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-To configure a domain template for use by CloudStack, use VSD to create a domain template, using the global CloudStack parameters listed above.
+1. Select **Service Offerings > Select Offering: VPC Offerings > Add VPC Offering**, which brings up the **Add VPC Offering**.
 
-.. Note:: There will be only a single domain instance for ``nuagevsp.vpc.domaintemplate.name``.
+2. In the **Add VPC Offering** panel, add a **Name** and a **Description** to the network offering. In the **Supported Services** field select services and providers that are supported by the Nuage VSP Plugin for VPCs, see `Supported Features`_ at the beginning of this document.
+
+.. figure:: ../_static/images/nuage_vpc_off.png
+
+   Creating VPC Offering
+
+3. Click the **OK** button to create the VPC Offering.
+
+4. After the VPC Offering has been successfully created, enable it from the **Service Offerings - VPC Offerings** list.
+
+
+Dedicated Features Provided by The Nuage VSP Plugin
+---------------------------------------------------
+
+Nuage VSP Domain Template Feature Support for CloudStack
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+All the constructs (parameters and abstractions) defined in a Nuage VSD domain template can be made available to domain instances (i.e. networks) created in CloudStack. To do this, configure the Nuage VSP Plugin to use a pre-created Nuage VSD domain template when instantiating domains (i.e. creating networks). Networks created in CloudStack will then use domain instances created from the domain template.
+
+Typical use-cases are:
+
+* The basic ACLs on the top and bottom that bracket or 'contain' the end-user's ACLs.
+* Leakable domains/GRT Leaking (Nuage VSP feature).
+
+To configure a Nuage VSP domain template for use by CloudStack, use the Nuage VSD Architect (VSP's GUI) to create a domain template and configure it in the following CloudStack global settings.
+
+.. cssclass:: table-striped table-bordered table-hover
+
++-------------------------------------------+---------+------------------------------------------------------------------------------------------+---------------------------------+
+| Parameter                                 | Type    | Explanation                                                                              | Supported CloudStack versions   |
++===========================================+=========+==========================================================================================+=================================+
+| nuagevsp.isolatedntwk.domaintemplate.name | String  | Name of the Nuage VSP domain template to use for creating domains for isolated networks  | >= 4.5                          |
++-------------------------------------------+---------+------------------------------------------------------------------------------------------+---------------------------------+
+| nuagevsp.vpc.domaintemplate.name          | String  | Name of the Nuage VSP domain template to use for creating the domain for VPCs            | >= 4.5                          |
++-------------------------------------------+---------+------------------------------------------------------------------------------------------+---------------------------------+
+| nuagevsp.sharedntwk.domaintemplate.id     | UUID    | UUID of the Nuage VSP domain template to use for creating the domain for Shared Networks | >= 4.10                         |
++-------------------------------------------+---------+------------------------------------------------------------------------------------------+---------------------------------+
+
+Table: CloudStack Global Settings For Configuring Nuage VSP Domain Template Feature
+
+Nuage VSP Source NAT via the Underlay Feature Support For CloudStack
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Supported CloudStack versions: >= 4.10
+
+CloudStack provides Source NAT service to enable guest VMs to send traffic out to the Internet without requiring a Static NAT IP (public IP) assigned to the VM. The Source NAT service must be enabled as part of the network offering used for creating the guest network. When a network is created using this network offering, the first public IP from the assigned public IP range is automatically acquired as the Source NAT IP for the network. All VMs attached to this network then use that Source NAT IP to send traffic to the Internet.
+
+The Nuage VSP Plugin for CloudStack supports CloudStack's native Source NAT service and enhances it by restricting to a minimum the number of public IP addresses assigned to any given tenant. This is achieved by not allocating a Source NAT IP for every network that is created.
+
+The Source NAT service that Nuage VSP calls the Port Address Translation (PAT) feature uses the hypervisor IP as the Source NAT IP address for all VMs in the hypervisor that need to send traffic out to the Internet. Configure this during Nuage VSP installation using the instructions given in the Nuage VSP Install Guide.
+
+This feature is supported for both VPCs and Isolated Networks. In the case of VPCs, Source NAT is applied at the Nuage VSP domain level, therefore there is no customization on the individual VPC network (tier) level.
+
+All VPCs and Isolated networks that are created from a Nuage VSP Source NAT-enabled network offering have this feature enabled automatically. An example Nuage VSP Source NAT-enabled network offering is shown in the figure "Nuage VSP Source NAT-enabled Network Offering" below.
+
+.. figure:: ../_static/images/nuage_source_nat_net_off.png
+
+   Nuage VSP Source NAT-enabled Network Offering
+
+Nuage VSP Static NAT via the Underlay Feature Support For CloudStack
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Supported CloudStack versions: >= 4.10
+
+Static NAT is supported in Nuage VSP as FIP (Floating IP). Prior to Nuage VSP v3.2, FIP in Nuage VSP required a VXLAN GW/PE to be present in the data center. In Nuage VSP v3.2 and above FIP is supported via the underlay, which removes the requirement for a GW/PE in the DC.
+
+For the Static NAT without GW/PE feature to be operational in the CloudStack plugin, FIP in Nuage VSP must be configured to use the underlay. This operation takes place during Nuage VSP installation; instructions can be found in the Nuage VSP Install Guide.
+
+A new API called ``nuageunderlayvlaniprange`` has been introduced to enable/disable Static NAT via the Underlay feature support for CloudStack public IP ranges being used for Static NAT service. This API specifies whether the FIP to underlay support is required for the corresponding FIP subnet in Nuage VSD since there is no GW/PE in the data center. When the ``nuageunderlayvlaniprange`` API has been enabled/disabled for a public IP range and Static NAT is enabled on at-least one of its Public IPs, the plugin creates the corresponding shared FIP subnet in Nuage VSD using the ``sharednetworkresources`` API with the underlay flag set accordingly. The ``nuageunderlayvlaniprange`` API usage is shown in the figure "nuageunderlayvlaniprange API Usage" below.
+
+.. figure:: ../_static/images/nuage_underlay_api_usage.png
+
+   nuageunderlayvlaniprange API Usage
+
+By default, the Nuage VSP Plugin creates the corresponding shared FIP subnet in Nuage VSD with the underlay flag set to false (disabled). There is no support for the ``nuageunderlayvlaniprange`` API from the CloudStack UI.
+
+.. note::
+   Enabling/disabling the ``nuageunderlayvlaniprange`` API for CloudStack public IP ranges is supported only before the Nuage VSP plugin creates the corresponding shared FIP subnet in Nuage VSD. After a shared FIP subnet is created in Nuage VSD, its underlay flag cannot be changed. To change the underlay flag for a given shared FIP subnet, delete the Public vLanIPRange, recreate it and enable/disable the ``nuageunderlayvlaniprange`` API for it.
+
+
+Running The Nuage VSP Plugin Specific Marvin Tests
+--------------------------------------------------
+
+The Nuage VSP Plugin specific Marvin tests can be found under the directory test/integration/plugins/nuagevsp/ in the cloudstack tree.
+
+Here is the list of required Python packages and dependencies to run The Nuage VSP Plugin specific Marvin tests:
+
+- marvin
+- vspk
+- libVSD
+- pyyaml
+- netaddr
+- futures
+
+.. note::
+   vspk is a Python SDK for Nuage VSP's VSD and libVSD is a library that wraps vspk package, which are open sourced and can be found at https://github.com/nuagenetworks.
+
+Here is an example nosetests command to run The Nuage VSP Plugin specific Marvin tests:
+
+::
+
+   nosetests --with-marvin --marvin-config=path-to-marvin-config-file/nuage_marvin.cfg path-to-marvin-tests/test/integration/plugins/nuagevsp/test_nuage_vsp.py
+
+.. note::
+   For an example Marvin config file (i.e. nuage_marvin.cfg) required to run The Nuage VSP Plugin specific Marvin tests, refer `Nuage VSP Marvin Config File Format`_ in the Appendix of this document.
 
-Networks created in CloudStack will then use domain instances created from the template to which the name points.
 
 Appendix
 --------
-Nuage VSD API
-~~~~~~~~~~~~~
 
-To add Nuage VSP as Network Service Provider, 
+Configure Nuage VSP API
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To configure Nuage VSP as a Network Service Provider in the CloudStack Zone.
 
-1.  Add the specified network service provider:
+1.  Add Nuage VSP as a Network Service Provider in the Physical Network 2:
 
 ::
 
-        cloudmonkey add networkserviceprovider name=NuageVsp physicalnetworkid=<physicalNetworkId>
+   cloudmonkey add networkserviceprovider name=NuageVsp physicalnetworkid=<physicalNetwork2Id>
 
-2.  Add the specified Nuage VSD:
+2.  Add the Nuage VSD as a Nuage VSP Device in the Physical Network 2:
 
 ::
 
-    cloudmonkey add nuagevspdevice physicalnetworkid=<physicalNetworkId> hostname=<hostnameOfNuageVsp> username=<usernameOfNuageVspUser> password=<passwordOfNuageVspUser> port=<portUsedByNuageVsp> apiversion=<apiVersionOfNuageVsp> retrycount=<nrOfRetriesOnFailure> retryinterval=<intervalBetweenRetries>
+    cloudmonkey add nuagevspdevice physicalnetworkid=<physicalNetwork2Id> hostname=<hostnameOfNuageVsp> username=<usernameOfNuageVspUser> password=<passwordOfNuageVspUser> port=<portUsedByNuageVsp> apiversion=<apiVersionOfNuageVsp> retrycount=<nrOfRetriesOnFailure> retryinterval=<intervalBetweenRetries>
+
+
+Nuage VSP Marvin Config File Format
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Format for the Marvin config file required to run The Nuage VSP Plugin specific Marvin tests.
+
+::
+
+   {
+    "zones": [
+        {
+            "name": "ZONE1NAME",
+            "physical_networks": [
+                {
+                    "name": "Physical Network 1",
+                    "isolationmethods": [
+                        "VLAN"
+                    ]
+                },
+                {
+                    "name": "Physical Network 2",
+                    "isolationmethods": [
+                        "VSP"
+                    ],
+                    "providers": [
+                        {
+                            "name": "NuageVsp",
+                            "devices": [
+                                {
+                                    "username": "VSDUSERNAME",
+                                    "retryinterval": "60",
+                                    "hostname": "VSDSERVER",
+                                    "apiversion": "VSDVERSION",
+                                    "retrycount": "4",
+                                    "password": "VSDUSERPASSWORD",
+                                    "port": VSDPORT
+                                }
+                            ]
+                        }
+                    ]
+                }
+            ],
+            "dcInternetConnectivityInfo" : {
+                "available": "INTERNETAVAILABLE",
+                "httpProxy": "HTTPPROXY",
+                "httpsProxy": "HTTPSPROXY"
+            }
+        },
+        {
+            "name": "ZONE2NAME",
+            "physical_networks": [
+                {
+                    "name": "Physical Network 1",
+                    "isolationmethods": [
+                        "VLAN"
+                    ]
+                },
+                {
+                    "name": "Physical Network 2",
+                    "isolationmethods": [
+                        "VSP"
+                    ],
+                    "providers": [
+                        {
+                            "name": "NuageVsp",
+                            "devices": [
+                                {
+                                    "username": "VSDUSERNAME",
+                                    "retryinterval": "60",
+                                    "hostname": "VSDSERVER",
+                                    "apiversion": "VSDVERSION",
+                                    "retrycount": "4",
+                                    "password": "VSDUSERPASSWORD",
+                                    "port": VSDPORT
+                                }
+                            ]
+                        }
+                    ]
+                }
+            ],
+            "dcInternetConnectivityInfo" : {
+                "available": "INTERNETAVAILABLE",
+                "httpProxy": "HTTPPROXY",
+                "httpsProxy": "HTTPSPROXY"
+            }
+        }
+    ],
+    "dbSvr": {
+        "dbSvr": "DBSERVER",
+        "passwd": "DBPASSWORD",
+        "db": "cloud",
+        "port": 3306,
+        "user": "DBUSERNAME"
+    },
+    "logger":
+        {
+            "LogFolderPath": "/tmp/LOGFOLDERNAME"
+        },
+    "mgtSvr": [
+        {
+            "mgtSvrIp": "MGNTSERVERIP",
+            "port": 8096,
+            "user": "MGNTUSERNAME",
+            "passwd": "MGNTPASSWORD"
+        }
+    ]
+    }
+