<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://osm.etsi.org/wikipub/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Montesmoreno</id>
	<title>OSM Public Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://osm.etsi.org/wikipub/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Montesmoreno"/>
	<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php/Special:Contributions/Montesmoreno"/>
	<updated>2026-05-10T13:09:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1863</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1863"/>
		<updated>2017-10-31T15:20:40Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Install from binaries (Recommended) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* MINIMUM: 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* RECOMMENDED: 8 CPUs, 16 GB RAM, 80GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 (64bit varient required) as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 ((64bit varient required) ) as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim --description &amp;quot;Openvim site&amp;quot; --user dummy --password dummy --tenant dummy&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware vCloud Director site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VMware Integrated Openstack (VIO) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site-vio4&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;passwd&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 openmano datacenter-create openstack-site-vio4 http://10.10.10.12:5000/v3 --type openstack --description &amp;quot;VMware integrated openstack site vio4&amp;quot; --config &#039;{insecure: true, vim_type: VIO}&#039;&lt;br /&gt;
 openmano datacenter-attach openstack-site-vio4 --user=admin --password=passwd --vim-tenant-name=admin &lt;br /&gt;
 --config=&#039;{APIversion: v3.3, dataplane_physical_net: dvs-46, &amp;quot;use_internal_endpoint&amp;quot;:true,&amp;quot;dataplane_net_vlan_range&amp;quot;:[&amp;quot;1-5&amp;quot;,&amp;quot;7-10&amp;quot;]}&#039;&lt;br /&gt;
&lt;br /&gt;
Additional configuration for VIO:&lt;br /&gt;
* &#039;&#039;&#039;vim_type&#039;&#039;&#039;: Set to &amp;quot;VIO&amp;quot; to use VMware Integrated openstack as VIM &lt;br /&gt;
* &#039;&#039;&#039;use_internal_endpoint&#039;&#039;&#039;: When true it allows use of private API endpoints&lt;br /&gt;
* &#039;&#039;&#039;dataplane_physical_net&#039;&#039;&#039;: The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. &#039;physnet_sriov&#039; in the above configuration. In case of VMware Integrated Openstack (VIO) provide moref ID of distributed virtual switch, e.g &#039;dvs-46&#039; in above configuration.&lt;br /&gt;
* &#039;&#039;&#039;dataplane_net_vlan_range&#039;&#039;&#039;: In case of VMware Integrated Openstack (VIO) provide vlan ranges for the SRIOV (binding direct) networks in format [&#039;start_ID - end_ID&#039;]&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/osm-3.0-three/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[OSM MON Module Installation Guide (Release THREE)|OSM MON Module Installation Guide]]&lt;br /&gt;
*[[OSM MON Usage Guide (Release THREE)|OSM MON Usage Guide]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Configuring_AWS_for_OSM_Release_THREE&amp;diff=1793</id>
		<title>Configuring AWS for OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Configuring_AWS_for_OSM_Release_THREE&amp;diff=1793"/>
		<updated>2017-10-17T15:00:33Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Add AWS to OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Configure AWS for OSM=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Get AWS_ACCESS_KEY_ID and AWS_SECRET_KEY for your AWS account (https://aws.amazon.com/)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AWS User-ID/Secret-key will be required at the time of creation of the data-center. These credentials need not to be updated after creation of the data-center.   &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Create/get key-pairs from your AWS management console. These key-pairs will be required later at point of deployment of NS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SSH key-pairs need to be specified in the VNF descriptors. This updation can be done via openmano CLI as well as OSM dashboard. SSH key-pars can only be created using the AWS mgmt console. OSM will get updated of any changes that occur in AWS console. OSM user is required to keep record of these key-pairs, for use in later cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create a management network using AWS management console. If user doesn&#039;t specify any default mgmt interface OSM will create a default network that will be used for managing AWS instances.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the NS is deployed it will require a management interface (subnet) to apply configurations on the instances. User can manually create this mgmt interface using AWS console or leave it for OSM connector. The procedure of creating the interface from AWS is to create a subnet by specifying the appropriate CIDR block. This subnet is required to have DHCP enabled. AWS being a public cloud is accessible from OSM. The network is used by the VCA for configuring the VNFs once they are running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Create a valid user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Default user in AWS has the rights to perform all operations of AWS instances, subnets, VPCs, key-pairs, etc. In case, you want to create a secondary user with limited set of rights, you can use AWS mgmt console. NOTE: Each user in AWS has a separate access-Key/secret-key which must be kept secure else new credentials must be generated. The preferred way is to create a user and assign it the role &amp;quot;admin&amp;quot;. Another option is ensure that the user has all the rights required to operate in AWS environment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Find and Select images&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AWS has a repository of several images available to be used for instances. In case you require to create a custom image, you can use AWS console and create your own images. In case you decide to use a pre-built image you&#039;ll need to specify full mage path in VNF descriptor. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Security group&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AWS provides a default security_group defining a set of rules that allow connection access to the instances that have this security_group. In case, you require a new security_group you can create a new group defining the conditions that are required by your use case. &lt;br /&gt;
&lt;br /&gt;
Default security_group doesn&#039;t allow user to SSH into the instances. This behavior is not recommended by OSM, as VCA requires a path to interact with instances. Hence, it is recommended that you create a new group that contains the rules/conditions required to SSH into the instances deployed by this NS. You can also modify the default security group to allow TCP port 22 or, however, creation of a custom security_group is recommended.&lt;br /&gt;
&lt;br /&gt;
=Add AWS to OSM=&lt;br /&gt;
&lt;br /&gt;
To specify general guidelines at datacenter creation/association &#039;&#039;&#039;--config&#039;&#039;&#039; parameter is used. This information is communicated to openmano tenant. &lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region_name: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;region_name&#039;&#039;&#039;:    Region to be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;vpc_cidr_block&#039;&#039;&#039;:  Default CIDR block for VPC&lt;br /&gt;
* &#039;&#039;&#039;security_groups&#039;&#039;&#039;: Default security group for newly created instances &lt;br /&gt;
&lt;br /&gt;
ADVANCED configuration:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;key_pair&#039;&#039;&#039;: Key_pair specified here will be used default key_pair for newly created instances &lt;br /&gt;
* &#039;&#039;&#039;flavor_info&#039;&#039;&#039;: AWS doesn&#039;t provide a mechanism to extract information regarding supported flavors. In order to get flavor information, user must specify a YAML file with the path such as: &amp;quot;@/usr/data/flavour_info.yaml&amp;quot; or user can specify a dictionary containing details of flavors to be used. &lt;br /&gt;
&lt;br /&gt;
For specification of flavor info at time of datacenter creation use a parameter at &#039;&#039;&#039;--config&#039;&#039;&#039; called e.g. &#039;&#039;&#039;flavor_info: &amp;lt;content&amp;gt;&#039;&#039;&#039;. The content can be a dictionary or a string starting with &#039;@&#039; that contains the YAML file. Following are the 2 ways described above: &lt;br /&gt;
&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config=&#039;{region: us-west-2, flavor_info: {m1.tiny: {cpus: 1, disk: 2, ram: 512}, m1.small: {cpus: 2, disk: 10, ram: 1024}, ...}}&#039;&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config=&#039;{region: us-west-2, flavor_info: &amp;quot;@/home/user/aws/flavor_info.yaml&amp;quot;, ...}}&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Details on AWS flavors/instance types can be found at Amazon Web Services docs (https://aws.amazon.com/ec2/instance-types/). Flavors/instance types in AWS vary depending on the region of AWS account. Above mentioned link provides detials on all possible insatcne types. However to get details on the instance types available for your region, use your AWS management console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: After adding the datacenter to the RO, go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Configuring_VMware_vCloud_Director_for_OSM_Release_THREE&amp;diff=1792</id>
		<title>Configuring VMware vCloud Director for OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Configuring_VMware_vCloud_Director_for_OSM_Release_THREE&amp;diff=1792"/>
		<updated>2017-10-17T14:59:44Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Add vCloud at OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Configure vCloud for OSM=&lt;br /&gt;
&lt;br /&gt;
== vCloud director initial preparation ==&lt;br /&gt;
&lt;br /&gt;
*In order to get vim-tenant_name from vCloud Director or/and tenant UUID execute.&lt;br /&gt;
&#039;&#039;&#039; ./vmwarecli.py -u admin -p 12345 -c vcloud_host_name -U Administrator -P 123456 -o test list vdc&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
|               vdc uuid               | vdc name |&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
| 605ad9e8-04c5-402d-a3b7-0b6c1bacda75 |   test   |&lt;br /&gt;
| a5056f85-418c-4bfd-8041-adb0f48be9d9 |   TEF    |&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*In this example two VDC (tenants) are available for organization &#039;&#039;&#039;test&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Create default network by either using Web UI of vCloud director or vmwarecli.py&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;./vmwarecli.py -u admin -p 123456 -c vcloud_host_name -U Administrator -P 123456 -o test -v TEF create network test&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;Crated new network test and uuid: bac9f9c6-6d1b-4af2-8211-b6258659dfb1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*View organization/dataceter.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;./vmwarecli.py -u admin -p 123456 -c vcloud_host_name -U Administrator -P 123456 -o test view org test&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
|               vdc uuid               | vdc name |&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
| 605ad9e8-04c5-402d-a3b7-0b6c1bacda75 |   test   |&lt;br /&gt;
| a5056f85-418c-4bfd-8041-adb0f48be9d9 |   TEF    |&lt;br /&gt;
+--------------------------------------+----------+&lt;br /&gt;
+--------------------------------------+-------------------------------------------+&lt;br /&gt;
|             network uuid             |                network name               |&lt;br /&gt;
+--------------------------------------+-------------------------------------------+&lt;br /&gt;
| f2e8a499-c3c4-411f-9cb5-38c0df7ccf8e |                  default                  |&lt;br /&gt;
| 0730eb83-bfda-43f9-bcbc-d3650a247015 |                    test                   |&lt;br /&gt;
+--------------------------------------+-------------------------------------------+&lt;br /&gt;
+--------------------------------------+--------------+&lt;br /&gt;
|             catalog uuid             | catalog name |&lt;br /&gt;
+--------------------------------------+--------------+&lt;br /&gt;
| 811d67dd-dd48-4e79-bb90-9ba2199fb340 |    cirros    |&lt;br /&gt;
| 147492d7-d25b-465c-8eb1-b181779f6f4c | ubuntuserver |&lt;br /&gt;
+--------------------------------------+--------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Image preparation for VMware ==&lt;br /&gt;
If a user needs on-board image that is not a VMware compatible &lt;br /&gt;
disk image format such as qcow.  User need to convert qcow image to an OVF.&lt;br /&gt;
&lt;br /&gt;
*The first step is convert qcow disk image to vmdk.&lt;br /&gt;
**&#039;&#039;&#039;qemu-img convert -f qcow2 cirros-disk.img -O vmdk cirros-0.3.4-x86_64-disk.vmdk&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Second step.&lt;br /&gt;
&lt;br /&gt;
**Click &amp;quot;New in VMware Fusion , Vmware workstation or vCenter and create a VM from  VMDK file created in step one.&lt;br /&gt;
&lt;br /&gt;
*Third step&lt;br /&gt;
**Adjust hardware setting for VM.   For example, if target VMs should have only one vNIC delete all vNIC.  &lt;br /&gt;
**Openmano will set up and attach vNIC based on VNF file. &lt;br /&gt;
**Make sure hardware version for VM set to 11 or below.&lt;br /&gt;
**Export VM as OVF and upload file to Openmano.&lt;br /&gt;
*** Example of folder structure inside VNF directory.   Each exported image placed inside ovfs directory.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
drwxr-xr-x   2 spyroot  staff        68 Oct  4 19:31 cirros&lt;br /&gt;
-rw-r--r--   1 spyroot  staff  13287936 May  7  2015 cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
-rw-r--r--   1 spyroot  staff  21757952 Oct  4 19:38 cirros-0.3.4-x86_64-disk.vmdk&lt;br /&gt;
-rwxr-xr-x   1 spyroot  staff        57 Oct  4 18:58 convert.sh&lt;br /&gt;
drwxr-xr-x  10 spyroot  staff       340 Oct  4 07:24 examples&lt;br /&gt;
drwxr-xr-x   3 spyroot  staff       102 Oct  4 19:41 ovfs&lt;br /&gt;
-rw-r--r--   1 spyroot  staff     11251 Oct  4 07:24 vnf-template-2vm.yaml&lt;br /&gt;
-rw-r--r--   1 spyroot  staff      5931 Oct  4 07:24 vnf-template.yaml&lt;br /&gt;
&lt;br /&gt;
bash$ ls -l ovfs/cirros/&lt;br /&gt;
total 25360&lt;br /&gt;
-rw-r--r--  1 spyroot  staff  12968960 Oct  4 19:41 cirros-disk1.vmdk&lt;br /&gt;
-rw-r--r--  1 spyroot  staff       125 Oct  4 19:41 cirros.mf&lt;br /&gt;
-rw-r--r--  1 spyroot  staff      5770 Oct  4 19:41 cirros.ovf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  You should create OVF image only once if all images of same VNF/OS share same hardware specs.&lt;br /&gt;
The VM image used as reference VM in vCloud director.   Each respected VM that Openmano instantiate used that image as reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*VNF preparation step.&lt;br /&gt;
&lt;br /&gt;
If image is uploaded at vCloud, reference it using the image name at VNFD descriptor.&lt;br /&gt;
&lt;br /&gt;
If not, use a path of an existing image at host where openmano is running&lt;br /&gt;
&lt;br /&gt;
=Add vCloud at OSM=&lt;br /&gt;
&lt;br /&gt;
There is a parameter called &#039;&#039;&#039;--config&#039;&#039;&#039; used to suply general guidelines both at datacenter creation and datacenter association to openmano tenant (this later precedes)&lt;br /&gt;
 openmano datacenter-create vcloud-site http://10.10.10.11 --type vmware --description &amp;quot;vmware site&amp;quot; --config &#039;{orgname: organization, admin_username: user, admin_password: passwd, nsx_manager: &amp;quot;http://10.10.10.12&amp;quot;, nsx_user: user, nsx_password: userpwd}&#039; &lt;br /&gt;
 openmano datacenter-attach vcloud-site --user=admin --password=userpwd --vim-tenant-name=admin --config &#039;{ &amp;quot;vcenter_port&amp;quot;: port, &amp;quot;vcenter_user&amp;quot;:user, &amp;quot;vcenter_password&amp;quot;:password, &amp;quot;vcenter_ip&amp;quot;: 10.10.10.14 }&#039;&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;orgname&#039;&#039;&#039;:    (Optional) Organization name where tenant belong to. Can be ignored if --vim-tenant-name uses &amp;lt;orgname: tenant&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;admin_username&#039;&#039;&#039;:  (Mandatory)Admin user&lt;br /&gt;
* &#039;&#039;&#039;admin_password&#039;&#039;&#039;:  (Mandatory) Admin password&lt;br /&gt;
* &#039;&#039;&#039;nsx_manager&#039;&#039;&#039;:        (Mandatory). NSX manager host name&lt;br /&gt;
* &#039;&#039;&#039;nsx_user&#039;&#039;&#039;:           (Mandatory). nsx_user&lt;br /&gt;
* &#039;&#039;&#039;nsx_password&#039;&#039;&#039;:       (Mandatory). nsx_password&lt;br /&gt;
* &#039;&#039;&#039;vcenter_port&#039;&#039;&#039;:  (Mandatory).vCenter port&lt;br /&gt;
* &#039;&#039;&#039;vcenter_user&#039;&#039;&#039;:  (Mandatory) vCenter username&lt;br /&gt;
* &#039;&#039;&#039;vcenter_password&#039;&#039;&#039;:        (Mandatory). vCenter password&lt;br /&gt;
* &#039;&#039;&#039;vcenter_ip&#039;&#039;&#039;:           (Mandatory). vCenter IP&lt;br /&gt;
&lt;br /&gt;
The content of config is a yaml format text. The recomendation is to use a comma separated list between curly brackets {} and quotes, e.g.:&lt;br /&gt;
 --config &#039;{nsx_manager: https://10.10.10.12, nsx_user: user, nsx_password: pasword}&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: After adding the datacenter to the RO, go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_THREE)&amp;diff=1791</id>
		<title>Openstack configuration (Release THREE)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_THREE)&amp;diff=1791"/>
		<updated>2017-10-17T14:57:44Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Add openstack to OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Configure openstack for OSM (basic)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Guarantee that Openstack API endpoints are reachable from OSM (particularly from RO container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Create a management network, with DHCP enabled, reachable from OSM (particularly from VCA container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a management network, with DHCP enabled, and guarantee that this management network is reachable from OSM. The network is used by the VCA (Juju) for configuring the VNFs once they are running. It is recommended to create a provider network, isolated from Openstack. For instance, in order to create a provider network using physical interface em1 and VLAN 500 and with CIDR 10.208.0.0/24, you should run the following commands:&lt;br /&gt;
 neutron net-create mgmt --provider:network_type=vlan --provider:physical_network=physnet_em1 --provider:segmentation_id=500 --shared&lt;br /&gt;
 neutron subnet-create --name subnet-mgmt mgmt 10.208.0.0/24 --allocation-pool start=10.208.0.2,end=10.208.0.254&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create a valid tenant/user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a tenant/user with rights to create/delete flavors. The easiest way is to create a user and assign it the role &amp;quot;admin&amp;quot;. Another option is to change the general flavor management policies at file &#039;&#039;/etc/nova/policy.json&#039;&#039; to allow flavor creation per user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Upload images&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
OSM will create the needed images into openstack at deployment time, but the process takes a long time and the provided path at VNFD must be accesible by OSM. For this reason, it is recommended to upload the images of the VNFs manually at openstack, using the following command:&lt;br /&gt;
&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 --public cirros034&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Modify default security group or create a new one&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default openstack apply the &amp;quot;default&amp;quot; security group that blocks any incoming traffic to the VM. However ssh access is needed by VCA. You must modify the default security group to allow TCP port 22 or; create a new security group and configure RO to use this security group when datacenter is addeed (see [[Openstack_configuration_(Release_TWO)#Add_openstack_to_OSM|Add openstack to OSM]] )&lt;br /&gt;
&lt;br /&gt;
=Configure openstack for OSM (EPA)=&lt;br /&gt;
&lt;br /&gt;
Besides the instructions above for any Openstack, you should do extra configuration to configure openstack for running VNFs which use SRIOV interfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Provide a mechanism to connect the SR-IOV interfaces&#039;&#039;&#039;. As they are physical ports connected to an external switch, Neutron will not be able to connect them. You can use a physical switch programmed to interconnect the vlan tags among them (not recommened for security reasons). Another solution is to use a ML2 plugin that programs the external switch. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure the Neutron controller for using SR-IOV ports&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;p&amp;gt;Edit /etc/neutron/plugins/ml2/ml2_conf.ini with the tag and vlan ranges used by the dataplane network&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [ml2_type_vlan] &lt;br /&gt;
  network_vlan_ranges = physnet_sriov:3000:3100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Configure the compute nodes for using SR-IOV&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each compute node you have to associate the VFs available to each physical network. That is performed by configuring pci_passthrough_whitelist in /etc/nova/nova.conf. So, for example:&lt;br /&gt;
&lt;br /&gt;
 pci_passthrough_whitelist = {&amp;quot;vendor_id&amp;quot;:&amp;quot;8086&amp;quot;, &amp;quot;product_id&amp;quot;:&amp;quot;10ed&amp;quot;,&amp;quot;physical_network&amp;quot;:&amp;quot;physnet_sriov&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=Add openstack to OSM=&lt;br /&gt;
&lt;br /&gt;
There is a parameter called &#039;&#039;&#039;--config&#039;&#039;&#039; used to supply general configuration options both at datacenter creation and datacenter attachment to openmano tenant (the latter prevails). This paremeter can be used when creating the datacenter using the OSM cli or adding the datacenter directly to the RO.&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;security_groups&#039;&#039;&#039;:    To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;availability_zone&#039;&#039;&#039;:  To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;region_name&#039;&#039;&#039;:        The region where the VM must be deployed.&lt;br /&gt;
* &#039;&#039;&#039;insecure&#039;&#039;&#039;:           (By default false). When true it allows authorization over a non trusted certificate over https&lt;br /&gt;
* &#039;&#039;&#039;use_existing_flavors&#039;&#039;&#039;:         (By default false). Set to &amp;quot;True&amp;quot; to use the closer flavor with enough resources instead of creating a new flavor with the exact requirements. This option does not work for EPA (cpu pinning, huge pages, ...) where openmano still tries to create a flavor with the needed extra expects. Use this options when you do not have admin credentials (Available from future v2.0.2 version)&lt;br /&gt;
* &#039;&#039;&#039;APIversion&#039;&#039;&#039;:         (By default v2.0). Set to &amp;quot;v3.3&amp;quot; to use this openstack API version (experimental)&lt;br /&gt;
* &#039;&#039;&#039;vim_type&#039;&#039;&#039;:            Set to &amp;quot;VIO&amp;quot; to use VMware Integrated openstack as VIM&lt;br /&gt;
* &#039;&#039;&#039;use_internal_endpoint&#039;&#039;&#039;: When true it allows use of private API endpoints&lt;br /&gt;
&lt;br /&gt;
ADVANCED configuration:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;keypair&#039;&#039;&#039;:            To be added in addition to the keypair allocated on the VNF descriptor. Provide the name of a openstack keypair&lt;br /&gt;
* &#039;&#039;&#039;dataplane_physical_net&#039;&#039;&#039;: The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. &#039;physnet_sriov&#039; in the above configuration. In case of VMware Integrated Openstack (VIO) provide moref ID of distributed virtual switch&lt;br /&gt;
* &#039;&#039;&#039;use_floating_ip&#039;&#039;&#039;:    (By default false). When true a management interface of a VNFD is automatically assigned a floating_ip -if possible-. The prefered method is to use a provider network&lt;br /&gt;
* &#039;&#039;&#039;dataplane_net_vlan_range&#039;&#039;&#039;: In case of VMware Integrated Openstack (VIO) provide vlan ranges for the SRIOV (binding direct) networks in format [&#039;start_ID - end_ID&#039;]&lt;br /&gt;
&lt;br /&gt;
The content of config is a yaml format text. The recomendation is to use a comma separated list between curly brackets {} and quotes, e.g.:&lt;br /&gt;
 --config=&#039;{use_floating_ip: True, availability_zone: controller, dataplane_net_vlan_range: [&amp;quot;1-5&amp;quot; , &amp;quot;7-10&amp;quot;]}}&#039;&lt;br /&gt;
&lt;br /&gt;
==Using the osm cli==&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack --config=&#039;{security_groups: default, keypair: mykey}&#039;&lt;br /&gt;
&lt;br /&gt;
==Adding directly in the RO==&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot; --config=&#039;{security_groups: default, keypair: mykey}&#039; &lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin --config=&#039;{availability_zone: one}&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: In case of adding the datacenter to the RO, after doing it, go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1790</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1790"/>
		<updated>2017-10-17T14:52:11Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding VIM accounts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim --description &amp;quot;Openvim site&amp;quot; --user dummy --password dummy --tenant dummy&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1789</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1789"/>
		<updated>2017-10-17T14:43:28Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding VIM accounts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim --description &amp;quot;Openvim site&amp;quot; --user dummy --password dummy --tenant dummy&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Adding it directly in the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1788</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1788"/>
		<updated>2017-10-17T14:35:55Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* VMware site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Using the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1787</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1787"/>
		<updated>2017-10-17T14:35:39Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Amazon Web Services (AWS) site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Using the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1786</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1786"/>
		<updated>2017-10-17T14:35:01Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Openstack site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
===Using OSM cli===&lt;br /&gt;
 osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack&lt;br /&gt;
===Using the RO===&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
* Go to the GUI:&lt;br /&gt;
 ACCOUNTS &amp;gt; OSMOPENMANO &amp;gt; Click &#039;REFRESH STATUS&#039; button&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1777</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1777"/>
		<updated>2017-10-16T15:18:48Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Install from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries (Recommended) ==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh --source&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_osm.sh -b master --source&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Please note that in OSM 3, authentication is performed using OpenIDConnect and OAuth2.0.&lt;br /&gt;
An identity provider has been added to the platform and provided as a service in the SO container running on port 8009.&lt;br /&gt;
This means both the browser and the UI server components (that run on the SO container) need to be able to access the SO container using identical URIs.&lt;br /&gt;
In short, the tuple of scheme://location:port needs to be reachable via both the browser accessing the system and the UI server running on the SO container (e.g. https://10.66.202.206:8009 for a sample deployment).&lt;br /&gt;
This means that if your SO container is behind a NAT that cannot reach the public address of the host, authentication and authorization will not be possible and you will not be able to proceed using the UI.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1750</id>
		<title>OSM Release THREE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_THREE&amp;diff=1750"/>
		<updated>2017-09-28T13:25:05Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Install from binaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E&lt;br /&gt;
|alignment=right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable &lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from binaries==&lt;br /&gt;
All you need to run OSM Release THREE is a single server or VM with the following requirements:&lt;br /&gt;
* 4 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release TWO|LXD configuration]]).&lt;br /&gt;
	&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release TWO#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_osm.sh&lt;br /&gt;
 chmod +x install_osm.sh&lt;br /&gt;
 ./install_osm.sh&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
To install OSM Release THREE from source, requirements are the following:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).&lt;br /&gt;
&lt;br /&gt;
Note: If you wish to install OSM Release THREE from inside a LXD container, you will need to enable nested containers following instructions here ([[LXD configuration for OSM Release THREE#LXD within LXD (optional, only for advanced users)|Nested containers]]).&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-3.0-three/install_from_source.sh&lt;br /&gt;
 chmod +x install_from_source.sh&lt;br /&gt;
 ./install_from_source.sh&lt;br /&gt;
If you need to install from latest master (recommended for advanced users only), please use:&lt;br /&gt;
 ./install_from_source.sh -b master&lt;br /&gt;
&lt;br /&gt;
==Checking your installation==&lt;br /&gt;
After some time, you will get a fresh OSM Release THREE installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. Google Chrome is recommended. If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release THREE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding VIM accounts=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in &#039;normal&#039; mode (not test or fake) to have real virtual machines reachable from OSM.&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]&lt;br /&gt;
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]&lt;br /&gt;
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[Configure VIM SDN ]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;, organization: &amp;quot;orgVDC&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin, orgname: orgVDC}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Amazon Web Services (AWS) site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;aws-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create aws-site https://aws.amazon.com --type aws --description &amp;quot;AWS Site&amp;quot; --config &#039;{region: us-west-2}&#039; &lt;br /&gt;
 openmano datacenter-attach aws-site --user=AWS_USER_SECRET_KEY --password=AWS_USER_SECRET_ACCESS_KEY --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)&lt;br /&gt;
 cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1 -u cirros_vnf.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  cirros_2vnf_ns.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
**From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command:&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The nsd-id and data-center-id need to be replaced with the values from your setup.&lt;br /&gt;
Issue the following commands from the SO CLI(See the next section &amp;quot;Accessing CLI for viewing instantiated NS details&amp;quot; on how to access SO CLI) to determine the nsd-id and data-center-id,&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;show nsd-catalog nsd &amp;lt;/code&amp;gt; - Displays the nsds in the catalog. Find the id of the cirros_2vnf_nsd NSD&lt;br /&gt;
* &amp;lt;code&amp;gt;show datacenters&amp;lt;/code&amp;gt; - Displays the list of data centers configured in the RO. Choose the data center where the network service need to be instantiated.&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container (&amp;quot;lxc exec SO-ub bash&amp;quot;), execute the following command to bring up SO CLI (username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 /usr/rift/rift-shell -r -i /usr/rift -a /usr/rift/.artifacts -- rwcli &lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system. For instance:&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]&lt;br /&gt;
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]&lt;br /&gt;
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]&lt;br /&gt;
*[[VIM emulator|VIM emulator]]&lt;br /&gt;
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]&lt;br /&gt;
*[[Release THREE Data Model details|Data Model Details]]&lt;br /&gt;
&amp;lt;!-- *[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview] --&amp;gt;&lt;br /&gt;
*[[OSM Technical Videos|Technical and demonstration videos]]&lt;br /&gt;
*[[OSM workshops and events|Videos from workshops and events]]&lt;br /&gt;
*[[Software upgrade (Release THREE)|Software upgrade]]&lt;br /&gt;
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]&lt;br /&gt;
*[[OSM E2E tests|E2E tests]]&lt;br /&gt;
*[[Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Talk:Openstack_configuration_(Release_TWO)&amp;diff=1687</id>
		<title>Talk:Openstack configuration (Release TWO)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Talk:Openstack_configuration_(Release_TWO)&amp;diff=1687"/>
		<updated>2017-08-16T11:07:24Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: Created page with &amp;quot;=Add openstack to OSM=  There is a parameter called &amp;#039;&amp;#039;&amp;#039;--config&amp;#039;&amp;#039;&amp;#039; used to supply general configuration options both at datacenter creation and datacenter attachment to openma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Add openstack to OSM=&lt;br /&gt;
&lt;br /&gt;
There is a parameter called &#039;&#039;&#039;--config&#039;&#039;&#039; used to supply general configuration options both at datacenter creation and datacenter attachment to openmano tenant (the latter prevails).&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot; --config=&#039;{security_groups: default, keypair: mykey}&#039; &lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin --config=&#039;{availability_zone: one}&#039;&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;security_groups&#039;&#039;&#039;:    To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;availability_zone&#039;&#039;&#039;:  To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;region_name&#039;&#039;&#039;:        The region where the VM must be deployed.&lt;br /&gt;
* &#039;&#039;&#039;insecure&#039;&#039;&#039;:           (By default false). When true it allows authorization over a non trusted certificate over https&lt;br /&gt;
* &#039;&#039;&#039;use_existing_flavors&#039;&#039;&#039;:         (By default false). Set to &amp;quot;True&amp;quot; to use the closer flavor with enough resources instead of creating a new flavor with the exact requirements. This option does not work for EPA (cpu pinning, huge pages, ...) where openmano still tries to create a flavor with the needed extra expects. Use this options when you do not have admin credentials (Available from future v2.0.2 version)&lt;br /&gt;
* &#039;&#039;&#039;APIversion&#039;&#039;&#039;:         (By default v2.0). Set to &amp;quot;v3.3&amp;quot; to use this openstack API version (experimental)&lt;br /&gt;
&lt;br /&gt;
ADVANCED configuration:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;keypair&#039;&#039;&#039;:            To be added in addition to the keypair allocated on the VNF descriptor. Provide the name of a openstack keypair&lt;br /&gt;
* &#039;&#039;&#039;dataplane_physical_net&#039;&#039;&#039;: The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. &#039;physnet_sriov&#039; in the above configuration&lt;br /&gt;
* &#039;&#039;&#039;use_floating_ip&#039;&#039;&#039;:    (By default false). When true a management interface of a VNFD is automatically asigned a floating_ip -if possible-. The prefered method is to use a provider network&lt;br /&gt;
* &#039;&#039;&#039;microversion&#039;&#039;&#039;:       Allows specifiying an specific microversion to be used in nova. In order to allow &#039;Device Role Tagging&#039; functionality use &#039;microversion: 2.32&#039;. This functionality was introduced in Newton so it would not work for older vims. This implementation approach is due to the warning message in https://developer.openstack.org/api-guide/compute/microversions.html where it is stated that microversion backwards compatibility is not guaranteed and clients should always require an specific microversion.&lt;br /&gt;
&lt;br /&gt;
The content of config is a yaml format text. The recomendation is to use a comma separated list between curly brackets {} and quotes, e.g.:&lt;br /&gt;
 --config=&#039;{use_floating_ip: True, availability_zone: controller}&#039;&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1647</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1647"/>
		<updated>2017-07-03T09:55:20Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FloodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
 &lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
 &lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation connectivity and credentials are not checked,&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no information about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/4&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Now you can include in the network a port (and a vlan as optional parameter) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified in this command using --mac&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate with the external element/network through the attached port.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use the --id option to remove a specific port from the network or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*[[Developer HowTo for openvim#Creating_a_new_SDN_plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1608</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1608"/>
		<updated>2017-06-15T11:42:28Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Managing dataplane networks with external conectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
 &lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
 &lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/4&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Now you can include in the network a port (and a vlan as optional parameter) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified in this command using --mac&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate with the external element/network through the attached port.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use the --id option to remove an specific port from the network or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1607</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1607"/>
		<updated>2017-06-15T11:39:33Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding a port mapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
 &lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
 &lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/4&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1605</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1605"/>
		<updated>2017-06-15T11:38:20Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Asociate a SDN with the VIM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
 &lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
 &lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1603</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1603"/>
		<updated>2017-06-15T11:37:40Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding a SDN controller to OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
 &lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
 &lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1602</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1602"/>
		<updated>2017-06-15T11:37:06Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding a SDN controller to OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
&lt;br /&gt;
In order to set the information of an existing sdn controller, use the following sintax:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create -h&lt;br /&gt;
 usage: openmano sdn-controller-create [-h] [--verbose] [--debug]&lt;br /&gt;
                                      [--description DESCRIPTION] [--ip IP]&lt;br /&gt;
                                      [--port PORT] [--dpid DPID]&lt;br /&gt;
                                      [--type TYPE] [--user USER]&lt;br /&gt;
                                      [--passwd PASSWORD]&lt;br /&gt;
                                      name&lt;br /&gt;
&lt;br /&gt;
 positional arguments:&lt;br /&gt;
  name                  name of the SDN controller&lt;br /&gt;
&lt;br /&gt;
 optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --verbose, -v         increase verbosity level. Use several times&lt;br /&gt;
  --debug, -d           show debug information&lt;br /&gt;
  --description DESCRIPTION&lt;br /&gt;
                        description of the SDN controller&lt;br /&gt;
  --ip IP               IP of the SDN controller&lt;br /&gt;
  --port PORT           Port of the SDN controller&lt;br /&gt;
  --dpid DPID           DPID of the dataplane switch controlled by this SDN&lt;br /&gt;
                        controller&lt;br /&gt;
  --type TYPE           Specify the SDN controller type. Valid types are&lt;br /&gt;
                        &#039;opendaylight&#039; and &#039;floodlight&#039;&lt;br /&gt;
  --user USER           user credentials for the SDN controller&lt;br /&gt;
  --passwd PASSWORD     password credentials for the SDN controller&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIVE&lt;br /&gt;
&lt;br /&gt;
You can list the defined SDN controllers like this:&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1601</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1601"/>
		<updated>2017-06-15T11:33:52Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Managing dataplane networks with external conectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIV&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter test  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter test test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1600</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1600"/>
		<updated>2017-06-15T11:32:24Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Managing dataplane networks with external conectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIV&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
Create a new network in the VIM and an associated network for the SND assist&lt;br /&gt;
 root@RO:~# openmano vim-net-create --name test_net --type data --datacenter test&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE              &lt;br /&gt;
&lt;br /&gt;
Include in the network a port (and a vlan as optional parametes) of the dataplane switch that will provide access to an external element. As an additional parameter, the mac address of the external element can also be specified&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-attach test_net Te1/1 --vlan 300 --datacenter test&lt;br /&gt;
 Success 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
&lt;br /&gt;
Now when listing the network we can see this port belongs to to vim network and if we deploy a NS using dataplane interfaces connected to this network all of them will be able to communicate among them.&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter OSP10 test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
 sdn_attached_ports:&lt;br /&gt;
 -   switch_port: Te1/1&lt;br /&gt;
     uuid: 062a50b4-51bd-11e7-9496-00163eb5e904&lt;br /&gt;
     vlan: 300&lt;br /&gt;
&lt;br /&gt;
In order to remove a port from a network you can use --id to remove an specific port or --all to remove all of them:&lt;br /&gt;
 root@RO:~# openmano vim-net-sdn-detach test_net --all --datacenter OSP10  &lt;br /&gt;
 Confirm action&#039; (y/N)? y&lt;br /&gt;
 Success&lt;br /&gt;
 root@RO:~# openmano vim-net-list --datacenter OSP10 test_net&lt;br /&gt;
 d30315d5-4ed7-442b-94e4-cf81d058ae00   test_net             ACTIVE               2017-06-15T11:23:08Z&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1598</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1598"/>
		<updated>2017-06-15T11:09:26Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding a port mapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIV&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
A sample of sdn port mapping can be found in sdn/sdn_port_mapping.yaml&lt;br /&gt;
 root@RO:~# tail -n 24 RO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 ---&lt;br /&gt;
 #The mapping is composed of a list of compute nodes. Each compute nodes has two elements:&lt;br /&gt;
 #&amp;quot;compute_node&amp;quot;: name to identify the compute node within the datacenter&lt;br /&gt;
 #&amp;quot;ports&amp;quot;: list of ports mapped to a switch for that compute node.&lt;br /&gt;
 #The information to identify the SDN controller and the dataplane switch is obtained from the datacenter information&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 1&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     #Each mapped port contains the following information:&lt;br /&gt;
     #&amp;quot;pci&amp;quot;: pci address of the port in the compute node. This is a mandatory parameter&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot;: MAC address of the corresponding port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_port&amp;quot;: Openflow name of the port in the dataplane switch.&lt;br /&gt;
     #&amp;quot;switch_mac&amp;quot; or &amp;quot;switch_port&amp;quot; must be specified. Both of them could be specified&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/1&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:21:22&amp;quot;&lt;br /&gt;
 - compute_node:    &amp;quot;compute node 2&amp;quot;&lt;br /&gt;
   ports:&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.0&amp;quot;&lt;br /&gt;
       switch_port: &amp;quot;port-2/3&amp;quot;&lt;br /&gt;
       switch_mac:  &amp;quot;52:54:00:94:22:21&amp;quot;&lt;br /&gt;
     - pci:         &amp;quot;0000:81:00.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to populate the port-mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-set testRO/sdn/sdn_port_mapping.yaml&lt;br /&gt;
 sdn_port_mapping:&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: null, switch_port: port-2/1, uuid: 977b50f8-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 1, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:21:22&#039;, switch_port: null, uuid: 977b50f9-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.0&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:21&#039;, switch_port: port-2/3, uuid: 977b50fa-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
 - {compute_node: compute node 2, ofc_id: 963b5616-4769-11e7-8f07-00163e1229e4, pci: &#039;0000:81:00.1&#039;,&lt;br /&gt;
   region: dfcd6ca2-4768-11e7-8f07-00163e1229e4, switch_dpid: &#039;00:01:64:00:6a:e6:b3:14&#039;,&lt;br /&gt;
   switch_mac: &#039;52:54:00:94:22:22&#039;, switch_port: port-2/4, uuid: 977b50fb-51b9-11e7-8f07-00163e1229e4}&lt;br /&gt;
&lt;br /&gt;
To overwrite the port mapping the same instruction can be used.&lt;br /&gt;
&lt;br /&gt;
To clear the port mapping:&lt;br /&gt;
 root@RO:~# openmano datacenter-sdn-port-mapping-clear test&lt;br /&gt;
 Clean SDN port mapping for datacenter dfcd6ca2-4768-11e7-8f07-00163e1229e4 (y/N)? y&lt;br /&gt;
 {result: 4 deleted from of_port_mapping}&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1597</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1597"/>
		<updated>2017-06-15T10:49:14Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Asociate a SDN with the VIM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIV&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
If we check the information of the datacenter we can see no informatio about the sdn in the config section:&lt;br /&gt;
&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to add the sdn controller to the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller mySDN&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41 &lt;br /&gt;
&lt;br /&gt;
And now we can see this information in the datacenter:&lt;br /&gt;
 root@RO:~# openmano datacenter-list test -vvv&lt;br /&gt;
 datacenter:&lt;br /&gt;
    config:&lt;br /&gt;
        sdn-controller: 98113d4a-51b7-11e7-8f07-00163e1229e4&lt;br /&gt;
    config: null&lt;br /&gt;
    created_at: &#039;2017-06-02T07:55:41&#039;&lt;br /&gt;
    description: test&lt;br /&gt;
    name: test&lt;br /&gt;
    type: openstack&lt;br /&gt;
    uuid: dfcd6ca2-4768-11e7-8f07-00163e1229e4&lt;br /&gt;
    vim_tenants:&lt;br /&gt;
    -   config:&lt;br /&gt;
            dataplane_physical_net: physnet_sriov&lt;br /&gt;
            use_floating_ip: true&lt;br /&gt;
        passwd: &#039;******&#039;&lt;br /&gt;
        user: osm&lt;br /&gt;
        vim_tenant_id: null&lt;br /&gt;
        vim_tenant_name: osm&lt;br /&gt;
    vim_url: http://10.0.0.12:5000/v2.0&lt;br /&gt;
    vim_url_admin: null&lt;br /&gt;
&lt;br /&gt;
In order to remove the sdn controller:&lt;br /&gt;
 root@RO:~# openmano datacenter-edit test --sdn-controller null&lt;br /&gt;
  Edit datacenter test (y/N)? y&lt;br /&gt;
 dfcd6ca2-4768-11e7-8f07-00163e1229e4   test                2017-06-02T07:55:41&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1596</id>
		<title>EPA and SDN assist</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=EPA_and_SDN_assist&amp;diff=1596"/>
		<updated>2017-06-15T10:46:09Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding a SDN controller to OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(THIS IS A DRAFT)&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
OSM can manage the dataplane underlay conectivity with openflow through an external SDN network controller.&lt;br /&gt;
&lt;br /&gt;
By default, when a VIM is added to OSM, it is assumed that the VIM will be in charge of this type of networks. However, when this is not the case, you can instruct OSM to take control of the underlay dataplane connectivity on behalf of the VIM, with the SDN assist capability.&lt;br /&gt;
&lt;br /&gt;
OSM-RO uses a library offered by openvim for this task. Currently there are plugins for FlodLight, ONOS and OpenDayLight [[OpenVIM installation (Release TWO)#Openflow_controller]]&lt;br /&gt;
&lt;br /&gt;
The required external components are:&lt;br /&gt;
* An external SDN controller&lt;br /&gt;
* A dataplane swith openflow able, that will connect the physical interfaces of the VIM compute nodes.&lt;br /&gt;
* The mapping between the switch ports (identified by name) and the compute node interfaces (identified by host-id and PCI address)&lt;br /&gt;
* Some VIMs as openstack requires admin credentials in order to be able to get the physical place of the SRIOV/passthrough VM interfaces&lt;br /&gt;
&lt;br /&gt;
=Adding a SDN controller to OSM=&lt;br /&gt;
&lt;br /&gt;
This is done through the RO CLI.&lt;br /&gt;
&lt;br /&gt;
Enter in the RO container (lxc exec RO bash) and type&lt;br /&gt;
&lt;br /&gt;
 export OPENMANO_TENANT=osm   # Indicate the RO tenant to use&lt;br /&gt;
 root@RO:~# openmano sdn-controller-create mySDN --ip=192.168.15.2 --port=8080 --dpid=56:55:12:12:12:12:12:12 --user sdnuser --passwd sdnpasswd --type &lt;br /&gt;
 onos&lt;br /&gt;
 98113d4a-51b7-11e7-8f07-00163e1229e4   mySDN                ACTIV&lt;br /&gt;
 root@RO:~# openmano sdn-controller-list&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;sdn_controllers&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;, &lt;br /&gt;
            &amp;quot;password&amp;quot;: &amp;quot;sdnpasswd&amp;quot;, &lt;br /&gt;
            &amp;quot;uuid&amp;quot;: &amp;quot;98113d4a-51b7-11e7-8f07-00163e1229e4&amp;quot;, &lt;br /&gt;
            &amp;quot;last_error&amp;quot;: null, &lt;br /&gt;
            &amp;quot;dpid&amp;quot;: &amp;quot;56:55:12:12:12:12:12:12&amp;quot;, &lt;br /&gt;
            &amp;quot;version&amp;quot;: null, &lt;br /&gt;
            &amp;quot;user&amp;quot;: &amp;quot;sdnuser&amp;quot;, &lt;br /&gt;
            &amp;quot;ip&amp;quot;: &amp;quot;192.168.15.2&amp;quot;, &lt;br /&gt;
            &amp;quot;nets_with_same_vlan&amp;quot;: &amp;quot;false&amp;quot;, &lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;onos&amp;quot;, &lt;br /&gt;
            &amp;quot;port&amp;quot;: 8080, &lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;mySDN&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can manage SDN controllers with sdn-controller-create/list/edit/delete&lt;br /&gt;
Note that at SDN creation it is not checked the connectivity and credentials&lt;br /&gt;
&lt;br /&gt;
=Asociate a SDN with the VIM=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Adding a port mapping=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Managing dataplane networks with external conectivity=&lt;br /&gt;
TBC&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
TBC&lt;br /&gt;
[[Create a new SDN plugin]]&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_ONE)&amp;diff=1183</id>
		<title>Openstack configuration (Release ONE)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_ONE)&amp;diff=1183"/>
		<updated>2017-01-27T09:15:29Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Add openstack at OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Configure openstack for OSM (basic)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Guarantee that Openstack API endpoints are reachable from OSM (particularly from RO container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Create a management network, with DHCP enabled, reachable from OSM (particularly from VCA container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a management network, with DHCP enabled, and guarantee that this management network is reachable from OSM. The network is used by the VCA (Juju) for configuring the VNFs once they are running. It is recommended to create a provider network, isolated from Openstack. For instance, in order to create a provider network using physical interface em1 and VLAN 500 and with CIDR 10.208.0.0/24, you should run the following commands:&lt;br /&gt;
 neutron net-create mgmt --provider:network_type=vlan --provider:physical_network=physnet_em1 --provider:segmentation_id=500 --shared&lt;br /&gt;
 neutron subnet-create --name subnet-mgmt mgmt 10.208.0.0/24 --allocation-pool start=10.208.0.2,end=10.208.0.254&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create a valid tenant/user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a tenant/user with rights to create/delete flavors. The easiest way is to create a user and assign it the role &amp;quot;admin&amp;quot;. Another option is to change the general flavor management policies at file &#039;&#039;/etc/nova/policy.json&#039;&#039; to allow flavor creation per user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Upload images&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
OSM will create the needed images into openstack at deployment time, but the process takes a long time and the provided path at VNFD must be accesible by OSM. For this reason, it is recommended to upload the images of the VNFs manually at openstack, using the following command:&lt;br /&gt;
&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 --public --property location=&amp;quot;/mnt/powervault/virtualization/osm/CirrOS/cirros-0.3.4-x86_64-disk.img&amp;quot; cirros034&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Modify default security group or create a new one&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default openstack apply the &amp;quot;default&amp;quot; security group that blocks any incoming traffic to the VM. However ssh access is needed by VCA. You must modify the default security group to allow TCP port 22 or; create a new security group and configure RO to use this security group when datacenter is addeed (see [[Openstack_configuration_(Release_ONE)#Add openstack at OSM]] )&lt;br /&gt;
&lt;br /&gt;
=Configure openstack for OSM (EPA)=&lt;br /&gt;
&lt;br /&gt;
Besides the instructions above for any Openstack, you should do extra configuration to configure openstack for running VNFs which use SRIOV interfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Provide a mechanism to connect the SR-IOV interfaces&#039;&#039;&#039;. As they are physical ports connected to an external switch, Neutron will not be able to connect them. You can use a physical switch programmed to interconnect the vlan tags among them (not recommened for security reasons). Another solution is to use a ML2 plugin that programs the external switch. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure the Neutron controller for using SR-IOV ports&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;p&amp;gt;Edit /etc/neutron/plugins/ml2/ml2_conf.ini with the tag and vlan ranges used by the dataplane network&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [ml2_type_vlan] &lt;br /&gt;
  network_vlan_ranges = physnet_sriov:3000:3100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Configure the compute nodes for using SR-IOV&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each compute node you have to associate the VFs available to each physical network. That is performed by configuring pci_passthrough_whitelist in /etc/nova/nova.conf. So, for example:&lt;br /&gt;
&lt;br /&gt;
 pci_passthrough_whitelist = {&amp;quot;vendor_id&amp;quot;:&amp;quot;8086&amp;quot;, &amp;quot;product_id&amp;quot;:&amp;quot;10ed&amp;quot;,&amp;quot;physical_network&amp;quot;:&amp;quot;physnet_sriov&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=Add openstack at OSM=&lt;br /&gt;
&lt;br /&gt;
There is a parameter called &#039;&#039;&#039;--config&#039;&#039;&#039; used to suply general guidelines both at datacenter creation and datacenter association to openmano tenant (this later precedes)&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot; --config=&#039;{security_groups: default, keypair: mykey}&#039; &lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin --config=&#039;{availability_zone: one}&#039;&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;security_groups&#039;&#039;&#039;:    To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;availability_zone&#039;&#039;&#039;:  To be used for the deployment&lt;br /&gt;
* &#039;&#039;&#039;keypair&#039;&#039;&#039;:            To be added in addition to the keypair allocated on the VNF descriptor. Provide the name of a openstack keypair&lt;br /&gt;
* &#039;&#039;&#039;dataplane_physical_net&#039;&#039;&#039;: The configured network_vlan_ranges at neutron for SRIOV networks, e.g. &#039;physnet_sriov&#039; in the above configuration&lt;br /&gt;
* &#039;&#039;&#039;region_name&#039;&#039;&#039;:        The region where the VM must be deployed.&lt;br /&gt;
* &#039;&#039;&#039;use_floating_ip&#039;&#039;&#039;:    (By default false). When true a management interface of a VM is automatically asigned a floating_ip (if possible) regardless of the descriptor content&lt;br /&gt;
* &#039;&#039;&#039;insecure&#039;&#039;&#039;:           (By default false). When true it allows authorization over a non trusted certificate over https&lt;br /&gt;
&lt;br /&gt;
In case more than one configuration must be applied it can be done using commas:&lt;br /&gt;
 --config=&#039;{use_floating_ip: True, availability_zone: controller}&#039;&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_ONE)&amp;diff=1157</id>
		<title>Openstack configuration (Release ONE)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=Openstack_configuration_(Release_ONE)&amp;diff=1157"/>
		<updated>2017-01-12T13:26:31Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Add openstack at OSM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Configure openstack for OSM (basic)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Guarantee that Openstack API endpoints are reachable from OSM (particularly from RO container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Create a management network, with DHCP enabled, reachable from OSM (particularly from VCA container)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a management network, with DHCP enabled, and guarantee that this management network is reachable from OSM. The network is used by the VCA (Juju) for configuring the VNFs once they are running. It is recommended to create a provider network, isolated from Openstack. For instance, in order to create a provider network using physical interface em1 and VLAN 500 and with CIDR 10.208.0.0/24, you should run the following commands:&lt;br /&gt;
 neutron net-create mgmt --provider:network_type=vlan --provider:physical_network=physnet_em1 --provider:segmentation_id=500 --shared&lt;br /&gt;
 neutron subnet-create --name subnet-mgmt mgmt 10.208.0.0/24 --allocation-pool start=10.208.0.2,end=10.208.0.254&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create a valid tenant/user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to create a tenant/user with rights to create/delete flavors. The easiest way is to create a user and assign it the role &amp;quot;admin&amp;quot;. Another option is to change the general flavor management policies at file &#039;&#039;/etc/nova/policy.json&#039;&#039; to allow flavor creation per user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Upload images&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
OSM will create the needed images into openstack at deployment time, but the process takes a long time and the provided path at VNFD must be accesible by OSM. For this reason, it is recommended to upload the images of the VNFs manually at openstack, using the following command:&lt;br /&gt;
&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 --public --property location=&amp;quot;/mnt/powervault/virtualization/osm/CirrOS/cirros-0.3.4-x86_64-disk.img&amp;quot; cirros034&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Modify default security group or create a new one&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default openstack apply the &amp;quot;default&amp;quot; security group that blocks any incoming traffic to the VM. However ssh access is needed by VCA. You must modify the default security group to allow TCP port 22 or; create a new security group and configure RO to use this security group when datacenter is addeed (see [[Openstack_configuration_(Release_ONE)#Add openstack at OSM]] )&lt;br /&gt;
&lt;br /&gt;
=Configure openstack for OSM (EPA)=&lt;br /&gt;
&lt;br /&gt;
Besides the instructions above for any Openstack, you should do extra configuration to configure openstack for running VNFs which use SRIOV interfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Provide a mechanism to connect the SR-IOV interfaces&#039;&#039;&#039;. As they are physical ports connected to an external switch, Neutron will not be able to connect them. You can use a physical switch programmed to interconnect the vlan tags among them (not recommened for security reasons). Another solution is to use a ML2 plugin that programs the external switch. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure the Neutron controller for using SR-IOV ports&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;p&amp;gt;Edit /etc/neutron/plugins/ml2/ml2_conf.ini with the tag and vlan ranges used by the dataplane network&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [ml2_type_vlan] &lt;br /&gt;
  network_vlan_ranges = physnet_sriov:3000:3100&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Configure the compute nodes for using SR-IOV&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each compute node you have to associate the VFs available to each physical network. That is performed by configuring pci_passthrough_whitelist in /etc/nova/nova.conf. So, for example:&lt;br /&gt;
&lt;br /&gt;
 pci_passthrough_whitelist = {&amp;quot;vendor_id&amp;quot;:&amp;quot;8086&amp;quot;, &amp;quot;product_id&amp;quot;:&amp;quot;10ed&amp;quot;,&amp;quot;physical_network&amp;quot;:&amp;quot;physnet_sriov&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=Add openstack at OSM=&lt;br /&gt;
&lt;br /&gt;
There is a parameter called &#039;&#039;&#039;--config&#039;&#039;&#039; used to suply general guidelines both at datacenter creation and datacenter association to openmano tenant (this later precedes)&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot; --config=&#039;{security_groups: default, keypair: mykey}&#039; &lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin --config=&#039;{availability_zone: one}&#039;&lt;br /&gt;
&lt;br /&gt;
The following configuration can be added:&lt;br /&gt;
&lt;br /&gt;
* security_groups: to be used for the deployment&lt;br /&gt;
* availability_zone:  to be used for the deployment&lt;br /&gt;
* keypair:   to be added in addition to the keypair allocated on the VNF descriptor. Provide the name of a openstack keypair&lt;br /&gt;
* dataplane_physical_net: The configured network_vlan_ranges at neutron for SRIOV networks, e.g. &#039;physnet_sriov&#039; in the above configurition&lt;br /&gt;
* region_name: The region where the VM must be deployed.&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OSM_Release_ONE&amp;diff=1052</id>
		<title>OSM Release ONE</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OSM_Release_ONE&amp;diff=1052"/>
		<updated>2016-11-21T16:45:26Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Interaction with VIMs and VNFs=&lt;br /&gt;
The following figure shows OSM interaction with VIM and VNFs.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity1.png|400px|OSM Release 1 connectivity 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In simpler setups, OSM only requires a single interface as long as both VIM and VNF IP addresses are reachable&lt;br /&gt;
&lt;br /&gt;
[[File:OSMconnectivity2.png|400px|OSM Release 1 connectivity 2]]&lt;br /&gt;
&lt;br /&gt;
=Install OSM=&lt;br /&gt;
&lt;br /&gt;
==Install from source==&lt;br /&gt;
&lt;br /&gt;
All you need to run OSM Release One is a single server or VM with the following requirements:&lt;br /&gt;
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access&lt;br /&gt;
* Ubuntu16.04 as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don&#039;t have LXD configured, you can follow the instructions here ([[LXD configuration for OSM release 1|LXD configuration]])&lt;br /&gt;
&lt;br /&gt;
Once you have prepared the host with the previous requirements, all you need to do is:&lt;br /&gt;
 wget https://osm-download.etsi.org/ftp/osm-1.0-one/install_from_source.sh&lt;br /&gt;
 chmod +x install_from_source.sh&lt;br /&gt;
 ./install_from_source.sh&lt;br /&gt;
&lt;br /&gt;
After some time, you will get a fresh OSM Release One installation. You can access to the UI in the following URL (user:admin, password: admin):&lt;br /&gt;
&lt;br /&gt;
You can connect to the service via a web browser (Google Chrome version 50 or later is recommended). Open a browser and connect to https://1.2.3.4:8443 , replacing 1.2.3.4 with the IP address of your host. Note that it uses https, not http. &lt;br /&gt;
We recommend using Google Chrome when connecting to an SSL enabled Launchpad. &lt;br /&gt;
If you are using Firefox and plan to use the self-signed certificate provided in the installation, please follow instructions at [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using2 Using untrusted, self-signed certificates]&lt;br /&gt;
Alternatively, you can run Launchpad with trusted CA signed SSL certs as per [http://open.riftio.com/documentation/riftware/4.3/a/monitor/avoiding-selfsigned-certificate-warnings.htm#Using Using a certificate signed by a trusted CA]&lt;br /&gt;
or, run Launchpad with SSL disabled as per [http://open.riftio.com/documentation/riftware/4.3/a/user-guide/run-launchpad-with-ssl-disabled.htm?Highlight=disable Run Launchpad with SSL Disabled]&lt;br /&gt;
&lt;br /&gt;
[[File:OSMloginWindow.png|400px|OSM login window]]&lt;br /&gt;
&lt;br /&gt;
Make sure that port 8443 is accessible, as well as the following required ports: 8000, 4567, 8008, 80, 9090.&lt;br /&gt;
&lt;br /&gt;
As a result of the installation, three LXD containers are created in the host: RO, VCA, and SO-ub (running the SO and the UI), as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:OSMcontainers.png|400px|OSM Release ONE installation result]]&lt;br /&gt;
&lt;br /&gt;
=Adding a VIM account=&lt;br /&gt;
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Three different kinds of VIMs are currently supported by OSM:&lt;br /&gt;
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release One)]]&lt;br /&gt;
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release ONE)]]&lt;br /&gt;
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release One]]&lt;br /&gt;
&lt;br /&gt;
==OpenVIM site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openvim-site&amp;quot;, IP address: 10.10.10.10, VIM tenant: &amp;quot;osm&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openvim-site http://10.10.10.10:9080/openvim --type openvim --description &amp;quot;Openvim site&amp;quot; &lt;br /&gt;
 openmano datacenter-attach openvim-site --vim-tenant-name=osm&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==Openstack site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;openstack-site&amp;quot;, IP address: 10.10.10.11, VIM tenant: &amp;quot;admin&amp;quot;, user: &amp;quot;admin&amp;quot;, password: &amp;quot;userpwd&amp;quot;)&lt;br /&gt;
 export OPENMANO_TENANT=osm&lt;br /&gt;
 openmano datacenter-create openstack-site http://10.10.10.11:5000/v2.0 --type openstack --description &amp;quot;OpenStack site&amp;quot;&lt;br /&gt;
 openmano datacenter-attach openstack-site --user=admin --password=userpwd --vim-tenant-name=admin&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
==VMware site==&lt;br /&gt;
*Go into the RO container:&lt;br /&gt;
 lxc exec RO -- bash&lt;br /&gt;
*Execute the following commands, using the appropriate parameters (e.g. site name: &amp;quot;vmware-site&amp;quot;, IP address: 10.10.10.12, VIM tenant: &amp;quot;vmware-tenant&amp;quot;, user: &amp;quot;osm&amp;quot;, password: &amp;quot;osm4u&amp;quot;, admin user: &amp;quot;admin&amp;quot;, admin password: &amp;quot;adminpwd&amp;quot;)&lt;br /&gt;
 openmano datacenter-create vmware-site https://10.10.10.12 --type vmware --description &amp;quot;VMware site&amp;quot; --config &#039;{admin_password: adminpwd, admin_username: admin}&#039;&lt;br /&gt;
 openmano datacenter-attach vmware-site --user=osm --password=osm4u --vim-tenant-name=vmware-tenant&lt;br /&gt;
 openmano datacenter-list&lt;br /&gt;
 exit     #or Ctrl+D to get out of the RO container&lt;br /&gt;
&lt;br /&gt;
 Note: The name of the site/datacenter &amp;quot;vmware-site&amp;quot; has to match the name of the organization of &amp;quot;vCloud Director&amp;quot;. Inside this organization the tenant &amp;quot;vmware-tenant&amp;quot; must exist&lt;br /&gt;
&lt;br /&gt;
=Deploying your first Network Service=&lt;br /&gt;
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.&lt;br /&gt;
&lt;br /&gt;
[[File:cirros_2vnf_ns.png|500px|NS with 2 CirrOS VNF]]&lt;br /&gt;
&lt;br /&gt;
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/examples/cirros_2vnf_ns/&lt;br /&gt;
&lt;br /&gt;
==Uploading VNF image to the VIM==&lt;br /&gt;
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
Then, onboard the image into the VIM. The instruction differs from one VIM to another:&lt;br /&gt;
*In Openstack:&lt;br /&gt;
 openstack image create --file=&amp;quot;./cirros-0.3.4-x86_64-disk.img&amp;quot; --container-format=bare --disk-format=qcow2 --public --property location=&amp;quot;/mnt/powervault/virtualization/osm/CirrOS/cirros-0.3.4-x86_64-disk.img&amp;quot; cirros034&lt;br /&gt;
*In openvim:&lt;br /&gt;
 openvim image-create --name cirros034 --path /mnt/powervault/virtualization/osm/CirrOS/cirros-0.3.4-x86_64-disk.img&lt;br /&gt;
&lt;br /&gt;
==Onboarding a VNF==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then VNFD&lt;br /&gt;
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.&lt;br /&gt;
[[File:onboardingVNF.png|300px|Onboarding a VNF]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
&lt;br /&gt;
Execute the following from the SO-ub container(&amp;quot;lxc exec SO-ub bash&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  &amp;lt;vnf-package-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Onboarding a NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Catalog&lt;br /&gt;
**Click on the import button, then NSD&lt;br /&gt;
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container execute the following command(&amp;quot;lxc exec SO-ub bash&amp;quot;)&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg -s 127.0.0.1  -u  &amp;lt;ns-package-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instantiating the NS==&lt;br /&gt;
*From the UI:&lt;br /&gt;
**Go to Launchpad &amp;gt; Instantiate&lt;br /&gt;
**Select the NS descriptor to be instantiated, and click on Next&lt;br /&gt;
**Add a name to the NS instance, and click on Launch.&lt;br /&gt;
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                  [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]&lt;br /&gt;
*From the SO CLI:&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container execute the following command (&amp;quot;lxc exec SO-ub bash&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 /root/SO/rwlaunchpad/plugins/rwlaunchpadtasklet/scripts/onboard_pkg  -i &amp;lt;ns-instance-name&amp;gt;  -d &amp;lt;nsd-id&amp;gt; -D &amp;lt;data-center-id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for the message that the NS has been successfully deployed, and that&#039;s all!&lt;br /&gt;
&lt;br /&gt;
== Accessing CLI for viewing instantiated NS details ==&lt;br /&gt;
&lt;br /&gt;
From the SO-ub container execute the following command (&amp;quot;lxc exec SO-ub bash&amp;quot;) to bring up SO CLI(username:admin password:admin)&lt;br /&gt;
&lt;br /&gt;
 cd /usr/rift&lt;br /&gt;
 ./rift-shell -i /usr/rift&lt;br /&gt;
 export RIFT_VAR_ROOT=/usr/rift/var/rift&lt;br /&gt;
 rwcli&lt;br /&gt;
&lt;br /&gt;
The CLI can be used to both configure the system and show operational-data from the system.&lt;br /&gt;
&lt;br /&gt;
Example CLIs,&lt;br /&gt;
&lt;br /&gt;
  rift# show nsd-catalog # show the nsd catalog&lt;br /&gt;
  rift# show vnfd-catalog # show vnfd catalog&lt;br /&gt;
  rift# show ns-instance-config nsr # Lists instantiated network service&lt;br /&gt;
  rift# show ns-instance-opdata nsr # Lists of instantiated network service op-data&lt;br /&gt;
&lt;br /&gt;
=Additional information=&lt;br /&gt;
&lt;br /&gt;
*Check other VNF packages and NS packages in the links below:&lt;br /&gt;
**VNF packages: https://osm-download.etsi.org/ftp/osm-1.0-one/vnf-packages&lt;br /&gt;
**NS packages: https://osm-download.etsi.org/ftp/osm-1.0-one/ns-packages&lt;br /&gt;
*[[Deploying advanced Network Services (Release ONE)|Deploy advanced Network Services]]&lt;br /&gt;
*[[Creating your own VNF package (Release ONE)|Create your own VNF package]]&lt;br /&gt;
*[[How to report issues (Release ONE)|Have you detected any bug? Check this guide to see how to report issues]]&lt;br /&gt;
*[[Logs and troubleshooting (Release ONE)|Logs and troubleshooting]]&lt;br /&gt;
*[[Release ONE Data Model details|Data Model Details]]&lt;br /&gt;
*[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseONE-FINAL.pdf OSM White Paper - Release ONE Technical Overview]&lt;br /&gt;
*[[Release ONE Technical FAQ|Technical FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Feedback}}&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=949</id>
		<title>OpenVIM installation (Release One)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=949"/>
		<updated>2016-11-03T09:20:08Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* DHCP server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
In order to run openvim in normal mode (see bellow the available modes) and deploy dataplane VNFs, an appropriate infrastructure is required. Below a reference architecture for an openvim-based DC deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenvimDC.png|500px|Openvim Datacenter infrastructure]]&lt;br /&gt;
&lt;br /&gt;
Openvim needs to be accesible from Resource Orchestrator (openmano).&lt;br /&gt;
Openvim needs:&lt;br /&gt;
* To make its API accesible from Resource Orchestrator (openmano). That&#039;s the purpose of the VIM mgmt network in the figure.&lt;br /&gt;
* To be connected to all compute servers through a network, the DC infrastructure network in the figure.&lt;br /&gt;
* To offer management IP addresses to VNFs for VNF configuration from CM (Juju server). That&#039;s the purpose of the Telco/VNF management network.&lt;br /&gt;
&lt;br /&gt;
Compute nodes, besides being connected to the DC infrastructure network, must also be connected to two additional networks:&lt;br /&gt;
*Telco/VNF management network, used by Configuration Manager (Juju Server) to configure the VNFs&lt;br /&gt;
*Inter-DC network, optionally required to interconnect this datacenter to other datacenters (e.g. in MWC&#039;16 demo, to interconnect the two sites).&lt;br /&gt;
&lt;br /&gt;
VMs will be connected to these two networks at deployment time if requested by openmano.&lt;br /&gt;
&lt;br /&gt;
=VM creation (openvim server)=&lt;br /&gt;
* Requirements:&lt;br /&gt;
** 1 vCPU (2 recommended)&lt;br /&gt;
** 4 GB RAM (4 GB are required to run OpenDaylight controller; if the ODL controller runs outside the VM, 2 GB RAM are enough)&lt;br /&gt;
** 40 GB disk&lt;br /&gt;
** 3 network interfaces to:&lt;br /&gt;
*** OSM network (to interact with RO)&lt;br /&gt;
*** DC intfrastructure network (to interact with the compute servers and switches)&lt;br /&gt;
*** Telco/VNF management network (to provide IP addresses via DHCP to the VNFs) &lt;br /&gt;
*Base image: ubuntu-16.04-server-amd64&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Openvim is installed using a script&lt;br /&gt;
 wget -O install-openvim.sh &amp;quot;https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=blob_plain;f=scripts/install-openvim.sh&amp;quot;&lt;br /&gt;
 chmod +x install-openvim.sh&lt;br /&gt;
 sudo ./install-openvim.sh [-u &amp;lt;database-admin-user&amp;gt;] [-p &amp;lt;database-admin-password&amp;gt;]&lt;br /&gt;
 #NOTE: you can provide optionally the admin user (normally &#039;root&#039;) and password of the database.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 16.04 it will install openvim as a service on /opt/openvim&lt;br /&gt;
&lt;br /&gt;
== Openflow controller==&lt;br /&gt;
For normal or OF only openvim modes you will need a openflow controller. You can install e.g. floodlight-0.90. The script &#039;&#039;&#039;openvim/scripts/install-floodlight.sh&#039;&#039;&#039; makes this steps for you. And the script &#039;&#039;&#039;service-floodlight&#039;&#039;&#039; can be used to start/stop it in a screen with logs.&lt;br /&gt;
&lt;br /&gt;
== DHCP server==&lt;br /&gt;
&lt;br /&gt;
For the management network a DHCP server is needed. Install the package dhcp3-server. This package will install the actual DHCP server based on isc-dhcp-server package.&lt;br /&gt;
&lt;br /&gt;
 Ubuntu 14.04:  sudo apt-get install dhcp3-server&lt;br /&gt;
 Ubuntu 16.04:  sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
Configure it editing file &#039;&#039;&#039;/etc/default/isc-dhcp-server&#039;&#039;&#039; to enable DHCP server in the appropriate interface, the one attached to Telco/VNF management network (e.g. eth1).&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/default/isc-dhcp-server&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit file &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; to specify the subnet, netmask and range of IP addresses to be offered by the server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 86400;&lt;br /&gt;
 max-lease-time 86400;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 option subnet-mask 255.255.0.0;&lt;br /&gt;
 option broadcast-address 10.210.255.255;&lt;br /&gt;
 subnet 10.210.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 10.210.1.2 10.210.1.254;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the service:&lt;br /&gt;
&lt;br /&gt;
 sudo service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
- Go to openvim folder (&#039;&#039;&#039;/opt/openvim&#039;&#039;&#039;) and edit openvimd.cfg. Note: by default it runs in mode: &#039;&#039;&#039;test&#039;&#039;&#039; where no real hosts neither openflow controller are needed. You can uses other modes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! mode&lt;br /&gt;
! Computes hosts&lt;br /&gt;
! Openflow controller&lt;br /&gt;
! Observations&lt;br /&gt;
|-&lt;br /&gt;
| test&lt;br /&gt;
| fake&lt;br /&gt;
| X&lt;br /&gt;
| No real deployment. Just for API test&lt;br /&gt;
|-&lt;br /&gt;
| normal&lt;br /&gt;
| needed&lt;br /&gt;
| needed&lt;br /&gt;
| Normal behaviour&lt;br /&gt;
|-&lt;br /&gt;
| host only&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| No PT/SRIOV connections&lt;br /&gt;
|-&lt;br /&gt;
| develop&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| Force to cloud type deployment without EPA&lt;br /&gt;
|-&lt;br /&gt;
| OF only&lt;br /&gt;
| fake&lt;br /&gt;
| needed&lt;br /&gt;
| To test openflow controller without needed of compute hosts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Service must be restarted&lt;br /&gt;
 sudo service openvim restart&lt;br /&gt;
&lt;br /&gt;
NOTE: the following steps (ONLY if openvim runs in test mode) are done automatically by script:&lt;br /&gt;
 /opt/openvim/scripts/initopenvim.sh --insert-bashrc --force&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s configure the openvim CLI client. Needed if you have changed the /opt/openvim/openvimd.cfg file (WARNING not the ./openvim/openvimd.cfg)&lt;br /&gt;
&lt;br /&gt;
 openvim config                           # show openvim related variables&lt;br /&gt;
 #To change variables run&lt;br /&gt;
 export OPENVIM_HOST=&amp;lt;http_host of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_PORT=&amp;lt;http_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_ADMIN_PORT=&amp;lt;http_admin_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 #You can insert at .bashrc for authomatic loading at login:&lt;br /&gt;
 echo &amp;quot;export OPENVIM_HOST=&amp;lt;...&amp;gt;&amp;quot; &amp;gt;&amp;gt; /{HOME}/.bashrc&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Adding compute nodes==&lt;br /&gt;
- Let&#039;s attach compute nodes&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;test&#039;&#039;&#039; mode we need to provide fake compute nodes with all the necessary information:&lt;br /&gt;
&lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example0.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example1.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example2.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example3.yaml &lt;br /&gt;
 openvim host-list                        #-v,-vv,-vvv for verbosity levels&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;normal&#039;&#039;&#039; or &#039;&#039;&#039;host only&#039;&#039;&#039; mode, the process is a bit more complex. First, you need to configure appropriately the host following these [[guidelines|Compute node configuration]]. The current process is manual, although we are working on an automated process. For the moment, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
 #copy /opt/openvim/scripts/host-add.sh and run at compute host for gather all the information&lt;br /&gt;
 ./host_add.sh &amp;lt;user&amp;gt; &amp;lt;ip_name&amp;gt; &amp;gt;&amp;gt; host.yaml&lt;br /&gt;
&lt;br /&gt;
 #NOTE: If the host contains interfaces connected to the openflow switch for dataplane,&lt;br /&gt;
 # the switch port where the interfaces are connected must be provided manually, &lt;br /&gt;
 # otherwise these interfaces cannot be used. Follow one of two methods:&lt;br /&gt;
 #   1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ...&lt;br /&gt;
 #   ... and load with mysql -uvim -p vim_db &amp;lt; openvim/database_utils/of_ports_pci_correspondence.sql&lt;br /&gt;
 #   2) or add manually this information at generated host.yaml with a &#039;switch_port: &amp;lt;whatever&amp;gt;&#039; &lt;br /&gt;
 #   ... entry at &#039;host-data&#039;:&#039;numas&#039;: &#039;interfaces&#039; &lt;br /&gt;
&lt;br /&gt;
 # copy this generated file host.yaml to the openvim server, and add the compute host with the command:&lt;br /&gt;
 openvim host-add host.yaml&lt;br /&gt;
&lt;br /&gt;
 # copy openvim ssh key to the compute node. If openvim user didn&#039;t have a ssh key generate it using ssh-keygen&lt;br /&gt;
 ssh-copy-id &amp;lt;compute node user&amp;gt;@&amp;lt;IP address of the compute node&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: It must be noted that Openvim has been tested with servers based on Xeon E5 Intel processors with Ivy Bridge architecture. No tests have been carried out with Intel Core i3, i5 and i7 families, so there are no guarantees that the integration will be seamless.&lt;br /&gt;
&lt;br /&gt;
==Adding external networks==&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s create some external networks in openvim. These networks are public and can be used by any VNF. It must be noticed that these networks must be pre-provisioned in the compute nodes in order to be effectively used by the VNFs. The pre-provision will be skipped since we are in test mode. Four networks will be created:&lt;br /&gt;
* &#039;&#039;default&#039;&#039; -&amp;gt; default NAT network provided by libvirt. By creating this network, VMs will be able to connect to default network in the same host where they are deployed.&lt;br /&gt;
* &#039;&#039;macvtap:em1&#039;&#039; -&amp;gt; macvtap network associated to interface &amp;quot;em1&amp;quot;. By creating this network, we allow VMs to connect to a macvtap interface of physical interface &amp;quot;em1&amp;quot; in the same host where they are deployed. If the interface naming scheme is different, use the appropriate name instead of &amp;quot;em1&amp;quot;.&lt;br /&gt;
* &#039;&#039;bridge_net&#039;&#039; -&amp;gt; bridged network intended for VM-to-VM communication. The pre-provision of a Linux bridge in all compute nodes is described in [[Compute node configuration#pre-provision-of-linux-bridges]]. By creating this network, VMs will be able to connect to the Linux bridge &amp;quot;virbrMan1&amp;quot; in the same host where they are deployed. In that way, two VMs connected to &amp;quot;virbrMan1&amp;quot;, no matter the host, will be able to talk each other.&lt;br /&gt;
* &#039;&#039;data_net&#039;&#039; -&amp;gt; external data network intended for VM-to-VM communication. By creating this network, VMs will be able to connect to a network element connected behind a physical port in the external switch.&lt;br /&gt;
&lt;br /&gt;
In order to create external networks, use &#039;openvim net-create&#039;, specifying a file with the network information. Now we will create the 4 networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example0.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example1.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example2.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example3.yaml&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
 2c386a58-e2b5-11e4-a3c9-52540032c4fa   data_net&lt;br /&gt;
 35671f9e-e2b4-11e4-a3c9-52540032c4fa   default&lt;br /&gt;
 79769aa2-e2b4-11e4-a3c9-52540032c4fa   macvtap:em1&lt;br /&gt;
 8f597eb6-e2b4-11e4-a3c9-52540032c4fa   bridge_net&lt;br /&gt;
&lt;br /&gt;
You can build your own networks using the template &#039;templates/network.yaml&#039;. Alternatively, you can use &#039;openvim net-create&#039; without a file and answer the questions:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create&lt;br /&gt;
&lt;br /&gt;
You can delete a network, e.g. &amp;quot;macvtap:em1&amp;quot;, using the command:&lt;br /&gt;
&lt;br /&gt;
 openvim net-delete macvtap:em1&lt;br /&gt;
&lt;br /&gt;
==Creating a new tenant==&lt;br /&gt;
- Now let&#039;s create a new tenant &amp;quot;admin&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ openvim tenant-create --name admin --description admin&lt;br /&gt;
 &amp;lt;uuid&amp;gt;   admin   Created&lt;br /&gt;
&lt;br /&gt;
- Take the uuid of the tenant and update the environment variables used by openvim client:&lt;br /&gt;
&lt;br /&gt;
 export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&lt;br /&gt;
 #echo &amp;quot;export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&amp;quot; &amp;gt;&amp;gt; /home/${USER}/.bashrc&lt;br /&gt;
 openvim config                             #show openvim env variables&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=928</id>
		<title>OpenVIM installation (Release One)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=928"/>
		<updated>2016-10-28T12:29:16Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
In order to run openvim in normal mode (see bellow the available modes) and deploy dataplane VNFs, an appropriate infrastructure is required. Below a reference architecture for an openvim-based DC deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenvimDC.png|500px|Openvim Datacenter infrastructure]]&lt;br /&gt;
&lt;br /&gt;
Openvim needs to be accesible from Resource Orchestrator (openmano).&lt;br /&gt;
Openvim needs:&lt;br /&gt;
* To make its API accesible from Resource Orchestrator (openmano). That&#039;s the purpose of the VIM mgmt network in the figure.&lt;br /&gt;
* To be connected to all compute servers through a network, the DC infrastructure network in the figure.&lt;br /&gt;
* To offer management IP addresses to VNFs for VNF configuration from CM (Juju server). That&#039;s the purpose of the Telco/VNF management network.&lt;br /&gt;
&lt;br /&gt;
Compute nodes, besides being connected to the DC infrastructure network, must also be connected to two additional networks:&lt;br /&gt;
*Telco/VNF management network, used by Configuration Manager (Juju Server) to configure the VNFs&lt;br /&gt;
*Inter-DC network, optionally required to interconnect this datacenter to other datacenters (e.g. in MWC&#039;16 demo, to interconnect the two sites).&lt;br /&gt;
&lt;br /&gt;
VMs will be connected to these two networks at deployment time if requested by openmano.&lt;br /&gt;
&lt;br /&gt;
=VM creation (openvim server)=&lt;br /&gt;
* Requirements:&lt;br /&gt;
** 1 vCPU (2 recommended)&lt;br /&gt;
** 4 GB RAM (4 GB are required to run OpenDaylight controller; if the ODL controller runs outside the VM, 2 GB RAM are enough)&lt;br /&gt;
** 40 GB disk&lt;br /&gt;
** 3 network interfaces to:&lt;br /&gt;
*** OSM network (to interact with RO)&lt;br /&gt;
*** DC intfrastructure network (to interact with the compute servers and switches)&lt;br /&gt;
*** Telco/VNF management network (to provide IP addresses via DHCP to the VNFs) &lt;br /&gt;
*Base image: ubuntu-16.04-server-amd64&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Openvim is installed using a script&lt;br /&gt;
 wget -O install-openvim.sh &amp;quot;https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=blob_plain;f=scripts/install-openvim.sh&amp;quot;&lt;br /&gt;
 chmod +x install-openvim.sh&lt;br /&gt;
 sudo ./install-openvim.sh [-u &amp;lt;database-admin-user&amp;gt;] [-p &amp;lt;database-admin-password&amp;gt;]&lt;br /&gt;
 #NOTE: you can provide optionally the admin user (normally &#039;root&#039;) and password of the database.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 16.04 it will install openvim as a service on /opt/openvim&lt;br /&gt;
&lt;br /&gt;
== Openflow controller==&lt;br /&gt;
For normal or OF only openvim modes you will need a openflow controller. You can install e.g. floodlight-0.90. The script &#039;&#039;&#039;openvim/scripts/install-floodlight.sh&#039;&#039;&#039; makes this steps for you. And the script &#039;&#039;&#039;service-floodlight&#039;&#039;&#039; can be used to start/stop it in a screen with logs.&lt;br /&gt;
&lt;br /&gt;
== DHCP server==&lt;br /&gt;
&lt;br /&gt;
For the management network a DHCP server is needed. Install the package dhcp3-server. This package will install the actual DHCP server based on isc-dhcp-server package.&lt;br /&gt;
&lt;br /&gt;
 sudo install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
Configure it editing file &#039;&#039;&#039;/etc/default/isc-dhcp-server&#039;&#039;&#039; to enable DHCP server in the appropriate interface, the one attached to Telco/VNF management network (e.g. eth1).&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/default/isc-dhcp-server&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit file &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; to specify the subnet, netmask and range of IP addresses to be offered by the server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 86400;&lt;br /&gt;
 max-lease-time 86400;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 option subnet-mask 255.255.0.0;&lt;br /&gt;
 option broadcast-address 10.210.255.255;&lt;br /&gt;
 subnet 10.210.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 10.210.1.2 10.210.1.254;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the service:&lt;br /&gt;
&lt;br /&gt;
 sudo service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
- Go to openvim folder (&#039;&#039;&#039;/opt/openvim&#039;&#039;&#039;) and edit openvimd.cfg. Note: by default it runs in mode: &#039;&#039;&#039;test&#039;&#039;&#039; where no real hosts neither openflow controller are needed. You can uses other modes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! mode&lt;br /&gt;
! Computes hosts&lt;br /&gt;
! Openflow controller&lt;br /&gt;
! Observations&lt;br /&gt;
|-&lt;br /&gt;
| test&lt;br /&gt;
| fake&lt;br /&gt;
| X&lt;br /&gt;
| No real deployment. Just for API test&lt;br /&gt;
|-&lt;br /&gt;
| normal&lt;br /&gt;
| needed&lt;br /&gt;
| needed&lt;br /&gt;
| Normal behaviour&lt;br /&gt;
|-&lt;br /&gt;
| host only&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| No PT/SRIOV connections&lt;br /&gt;
|-&lt;br /&gt;
| develop&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| Force to cloud type deployment without EPA&lt;br /&gt;
|-&lt;br /&gt;
| OF only&lt;br /&gt;
| fake&lt;br /&gt;
| needed&lt;br /&gt;
| To test openflow controller without needed of compute hosts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Service must be restarted&lt;br /&gt;
 sudo service openvim restart&lt;br /&gt;
&lt;br /&gt;
NOTE: the following steps (ONLY if openvim runs in test mode) are done automatically by script:&lt;br /&gt;
 /opt/openvim/scripts/initopenvim.sh --insert-bashrc --force&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s configure the openvim CLI client. Needed if you have changed the /opt/openvim/openvimd.cfg file (WARNING not the ./openvim/openvimd.cfg)&lt;br /&gt;
&lt;br /&gt;
 openvim config                           # show openvim related variables&lt;br /&gt;
 #To change variables run&lt;br /&gt;
 export OPENVIM_HOST=&amp;lt;http_host of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_PORT=&amp;lt;http_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_ADMIN_PORT=&amp;lt;http_admin_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 #You can insert at .bashrc for authomatic loading at login:&lt;br /&gt;
 echo &amp;quot;export OPENVIM_HOST=&amp;lt;...&amp;gt;&amp;quot; &amp;gt;&amp;gt; /{HOME}/.bashrc&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Adding compute nodes==&lt;br /&gt;
- Let&#039;s attach compute nodes&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;test&#039;&#039;&#039; mode we need to provide fake compute nodes with all the necessary information:&lt;br /&gt;
&lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example0.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example1.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example2.yaml &lt;br /&gt;
 openvim host-add /opt/openvim/test/hosts/host-example3.yaml &lt;br /&gt;
 openvim host-list                        #-v,-vv,-vvv for verbosity levels&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;normal&#039;&#039;&#039; or &#039;&#039;&#039;host only&#039;&#039;&#039; mode, the process is a bit more complex. First, you need to configure appropriately the host following these [[guidelines|Compute node configuration]]. The current process is manual, although we are working on an automated process. For the moment, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
 #copy /opt/openvim/scripts/host-add.sh and run at compute host for gather all the information&lt;br /&gt;
 ./host_add.sh &amp;lt;user&amp;gt; &amp;lt;ip_name&amp;gt; &amp;gt;&amp;gt; host.yaml&lt;br /&gt;
&lt;br /&gt;
 #NOTE: If the host contains interfaces connected to the openflow switch for dataplane,&lt;br /&gt;
 # the switch port where the interfaces are connected must be provided manually, &lt;br /&gt;
 # otherwise these interfaces cannot be used. Follow one of two methods:&lt;br /&gt;
 #   1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ...&lt;br /&gt;
 #   ... and load with mysql -uvim -p vim_db &amp;lt; openvim/database_utils/of_ports_pci_correspondence.sql&lt;br /&gt;
 #   2) or add manually this information at generated host.yaml with a &#039;switch_port: &amp;lt;whatever&amp;gt;&#039; &lt;br /&gt;
 #   ... entry at &#039;host-data&#039;:&#039;numas&#039;: &#039;interfaces&#039; &lt;br /&gt;
&lt;br /&gt;
 # copy this generated file host.yaml to the openvim server, and add the compute host with the command:&lt;br /&gt;
 openvim host-add host.yaml&lt;br /&gt;
&lt;br /&gt;
 # copy openvim ssh key to the compute node. If openvim user didn&#039;t have a ssh key generate it using ssh-keygen&lt;br /&gt;
 ssh-copy-id &amp;lt;compute node user&amp;gt;@&amp;lt;IP address of the compute node&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: It must be noted that Openvim has been tested with servers based on Xeon E5 Intel processors with Ivy Bridge architecture. No tests have been carried out with Intel Core i3, i5 and i7 families, so there are no guarantees that the integration will be seamless.&lt;br /&gt;
&lt;br /&gt;
==Adding external networks==&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s create some external networks in openvim. These networks are public and can be used by any VNF. It must be noticed that these networks must be pre-provisioned in the compute nodes in order to be effectively used by the VNFs. The pre-provision will be skipped since we are in test mode. Four networks will be created:&lt;br /&gt;
* &#039;&#039;default&#039;&#039; -&amp;gt; default NAT network provided by libvirt. By creating this network, VMs will be able to connect to default network in the same host where they are deployed.&lt;br /&gt;
* &#039;&#039;macvtap:em1&#039;&#039; -&amp;gt; macvtap network associated to interface &amp;quot;em1&amp;quot;. By creating this network, we allow VMs to connect to a macvtap interface of physical interface &amp;quot;em1&amp;quot; in the same host where they are deployed. If the interface naming scheme is different, use the appropriate name instead of &amp;quot;em1&amp;quot;.&lt;br /&gt;
* &#039;&#039;bridge_net&#039;&#039; -&amp;gt; bridged network intended for VM-to-VM communication. The pre-provision of a Linux bridge in all compute nodes is described in [[Compute node configuration#pre-provision-of-linux-bridges]]. By creating this network, VMs will be able to connect to the Linux bridge &amp;quot;virbrMan1&amp;quot; in the same host where they are deployed. In that way, two VMs connected to &amp;quot;virbrMan1&amp;quot;, no matter the host, will be able to talk each other.&lt;br /&gt;
* &#039;&#039;data_net&#039;&#039; -&amp;gt; external data network intended for VM-to-VM communication. By creating this network, VMs will be able to connect to a network element connected behind a physical port in the external switch.&lt;br /&gt;
&lt;br /&gt;
In order to create external networks, use &#039;openvim net-create&#039;, specifying a file with the network information. Now we will create the 4 networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example0.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example1.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example2.yaml&lt;br /&gt;
 openvim net-create /opt/openvim/test/networks/net-example3.yaml&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
 2c386a58-e2b5-11e4-a3c9-52540032c4fa   data_net&lt;br /&gt;
 35671f9e-e2b4-11e4-a3c9-52540032c4fa   default&lt;br /&gt;
 79769aa2-e2b4-11e4-a3c9-52540032c4fa   macvtap:em1&lt;br /&gt;
 8f597eb6-e2b4-11e4-a3c9-52540032c4fa   bridge_net&lt;br /&gt;
&lt;br /&gt;
You can build your own networks using the template &#039;templates/network.yaml&#039;. Alternatively, you can use &#039;openvim net-create&#039; without a file and answer the questions:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create&lt;br /&gt;
&lt;br /&gt;
You can delete a network, e.g. &amp;quot;macvtap:em1&amp;quot;, using the command:&lt;br /&gt;
&lt;br /&gt;
 openvim net-delete macvtap:em1&lt;br /&gt;
&lt;br /&gt;
==Creating a new tenant==&lt;br /&gt;
- Now let&#039;s create a new tenant &amp;quot;admin&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ openvim tenant-create --name admin --description admin&lt;br /&gt;
 &amp;lt;uuid&amp;gt;   admin   Created&lt;br /&gt;
&lt;br /&gt;
- Take the uuid of the tenant and update the environment variables used by openvim client:&lt;br /&gt;
&lt;br /&gt;
 export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&lt;br /&gt;
 #echo &amp;quot;export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&amp;quot; &amp;gt;&amp;gt; /home/${USER}/.bashrc&lt;br /&gt;
 openvim config                             #show openvim env variables&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=927</id>
		<title>OpenVIM installation (Release One)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=927"/>
		<updated>2016-10-28T12:01:10Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding external networks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
In order to run openvim in normal mode (see bellow the available modes) and deploy dataplane VNFs, an appropriate infrastructure is required. Below a reference architecture for an openvim-based DC deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenvimDC.png|500px|Openvim Datacenter infrastructure]]&lt;br /&gt;
&lt;br /&gt;
Openvim needs to be accesible from Resource Orchestrator (openmano).&lt;br /&gt;
Openvim needs:&lt;br /&gt;
* To make its API accesible from Resource Orchestrator (openmano). That&#039;s the purpose of the VIM mgmt network in the figure.&lt;br /&gt;
* To be connected to all compute servers through a network, the DC infrastructure network in the figure.&lt;br /&gt;
* To offer management IP addresses to VNFs for VNF configuration from CM (Juju server). That&#039;s the purpose of the Telco/VNF management network.&lt;br /&gt;
&lt;br /&gt;
Compute nodes, besides being connected to the DC infrastructure network, must also be connected to two additional networks:&lt;br /&gt;
*Telco/VNF management network, used by Configuration Manager (Juju Server) to configure the VNFs&lt;br /&gt;
*Inter-DC network, optionally required to interconnect this datacenter to other datacenters (e.g. in MWC&#039;16 demo, to interconnect the two sites).&lt;br /&gt;
&lt;br /&gt;
VMs will be connected to these two networks at deployment time if requested by openmano.&lt;br /&gt;
&lt;br /&gt;
=VM creation (openvim server)=&lt;br /&gt;
* Requirements:&lt;br /&gt;
** 1 vCPU (2 recommended)&lt;br /&gt;
** 4 GB RAM (4 GB are required to run OpenDaylight controller; if the ODL controller runs outside the VM, 2 GB RAM are enough)&lt;br /&gt;
** 40 GB disk&lt;br /&gt;
** 3 network interfaces to:&lt;br /&gt;
*** OSM network (to interact with RO)&lt;br /&gt;
*** DC intfrastructure network (to interact with the compute servers and switches)&lt;br /&gt;
*** Telco/VNF management network (to provide IP addresses via DHCP to the VNFs) &lt;br /&gt;
*Base image: ubuntu-16.04-server-amd64&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Openvim is installed using a script&lt;br /&gt;
 wget -O install-openvim.sh &amp;quot;https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=blob_plain;f=scripts/install-openvim.sh&amp;quot;&lt;br /&gt;
 chmod +x install-openvim.sh&lt;br /&gt;
 sudo ./install-openvim.sh [-u &amp;lt;database-admin-user&amp;gt;] [-p &amp;lt;database-admin-password&amp;gt;]&lt;br /&gt;
 #NOTE: you can provide optionally the admin user (normally &#039;root&#039;) and password of the database.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 16.04 it will install openvim as a service on /opt/openvim&lt;br /&gt;
&lt;br /&gt;
== Openflow controller==&lt;br /&gt;
For normal or OF only openvim modes you will need a openflow controller. You can install e.g. floodlight-0.90. The script &#039;&#039;&#039;openvim/scripts/install-floodlight.sh&#039;&#039;&#039; makes this steps for you. And the script &#039;&#039;&#039;service-floodlight&#039;&#039;&#039; can be used to start/stop it in a screen with logs.&lt;br /&gt;
&lt;br /&gt;
== DHCP server==&lt;br /&gt;
&lt;br /&gt;
For the management network a DHCP server is needed. Install the package dhcp3-server. This package will install the actual DHCP server based on isc-dhcp-server package.&lt;br /&gt;
&lt;br /&gt;
 sudo install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
Configure it editing file &#039;&#039;&#039;/etc/default/isc-dhcp-server&#039;&#039;&#039; to enable DHCP server in the appropriate interface, the one attached to Telco/VNF management network (e.g. eth1).&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/default/isc-dhcp-server&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit file &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; to specify the subnet, netmask and range of IP addresses to be offered by the server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 86400;&lt;br /&gt;
 max-lease-time 86400;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 option subnet-mask 255.255.0.0;&lt;br /&gt;
 option broadcast-address 10.210.255.255;&lt;br /&gt;
 subnet 10.210.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 10.210.1.2 10.210.1.254;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the service:&lt;br /&gt;
&lt;br /&gt;
 sudo service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
- Go to openvim folder (&#039;&#039;&#039;/opt/openvim&#039;&#039;&#039;) and edit openvimd.cfg. Note: by default it runs in mode: &#039;&#039;&#039;test&#039;&#039;&#039; where no real hosts neither openflow controller are needed. You can uses other modes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! mode&lt;br /&gt;
! Computes hosts&lt;br /&gt;
! Openflow controller&lt;br /&gt;
! Observations&lt;br /&gt;
|-&lt;br /&gt;
| test&lt;br /&gt;
| fake&lt;br /&gt;
| X&lt;br /&gt;
| No real deployment. Just for API test&lt;br /&gt;
|-&lt;br /&gt;
| normal&lt;br /&gt;
| needed&lt;br /&gt;
| needed&lt;br /&gt;
| Normal behaviour&lt;br /&gt;
|-&lt;br /&gt;
| host only&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| No PT/SRIOV connections&lt;br /&gt;
|-&lt;br /&gt;
| develop&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| Force to cloud type deployment without EPA&lt;br /&gt;
|-&lt;br /&gt;
| OF only&lt;br /&gt;
| fake&lt;br /&gt;
| needed&lt;br /&gt;
| To test openflow controller without needed of compute hosts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Service must be restarted&lt;br /&gt;
 sudo service openvim restart&lt;br /&gt;
&lt;br /&gt;
NOTE: the following steps (ONLY if openvim runs in test mode) are done automatically by script:&lt;br /&gt;
 ./openvim/scripts/initopenvim.sh --insert-bashrc --force&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s configure the openvim CLI client. Needed if you have changed the openvimd.cfg file&lt;br /&gt;
&lt;br /&gt;
 openvim config                           # show openvim related variables&lt;br /&gt;
 #To change variables run&lt;br /&gt;
 export OPENVIM_HOST=&amp;lt;http_host of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_PORT=&amp;lt;http_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_ADMIN_PORT=&amp;lt;http_admin_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 #You can insert at .bashrc for authomatic loading at login:&lt;br /&gt;
 echo &amp;quot;export OPENVIM_HOST=&amp;lt;...&amp;gt;&amp;quot; &amp;gt;&amp;gt; /{HOME}/.bashrc&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Adding compute nodes==&lt;br /&gt;
- Let&#039;s attach compute nodes&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;test&#039;&#039;&#039; mode we need to provide fake compute nodes with all the necessary information:&lt;br /&gt;
&lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example0.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example1.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example2.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example3.yaml &lt;br /&gt;
 openvim host-list                        #-v,-vv,-vvv for verbosity levels&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;normal&#039;&#039;&#039; or &#039;&#039;&#039;host only&#039;&#039;&#039; mode, the process is a bit more complex. First, you need to configure appropriately the host following these [[guidelines|Compute node configuration]]. The current process is manual, although we are working on an automated process. For the moment, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
 #copy openvim/scripts/host-add.sh and run at compute host for gather all the information&lt;br /&gt;
 ./host_add.sh &amp;lt;user&amp;gt; &amp;lt;ip_name&amp;gt; &amp;gt;&amp;gt; host.yaml&lt;br /&gt;
&lt;br /&gt;
 #NOTE: If the host contains interfaces connected to the openflow switch for dataplane,&lt;br /&gt;
 # the switch port where the interfaces are connected must be provided manually, &lt;br /&gt;
 # otherwise these interfaces cannot be used. Follow one of two methods:&lt;br /&gt;
 #   1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ...&lt;br /&gt;
 #   ... and load with mysql -uvim -p vim_db &amp;lt; openvim/database_utils/of_ports_pci_correspondence.sql&lt;br /&gt;
 #   2) or add manually this information at generated host.yaml with a &#039;switch_port: &amp;lt;whatever&amp;gt;&#039; &lt;br /&gt;
 #   ... entry at &#039;host-data&#039;:&#039;numas&#039;: &#039;interfaces&#039; &lt;br /&gt;
&lt;br /&gt;
 # copy this generated file host.yaml to the openvim server, and add the compute host with the command:&lt;br /&gt;
 openvim host-add host.yaml&lt;br /&gt;
&lt;br /&gt;
 # copy openvim ssh key to the compute node. If openvim user didn&#039;t have a ssh key generate it using ssh-keygen&lt;br /&gt;
 ssh-copy-id &amp;lt;compute node user&amp;gt;@&amp;lt;IP address of the compute node&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: It must be noted that Openvim has been tested with servers based on Xeon E5 Intel processors with Ivy Bridge architecture. No tests have been carried out with Intel Core i3, i5 and i7 families, so there are no guarantees that the integration will be seamless.&lt;br /&gt;
&lt;br /&gt;
==Adding external networks==&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s create some external networks in openvim. These networks are public and can be used by any VNF. It must be noticed that these networks must be pre-provisioned in the compute nodes in order to be effectively used by the VNFs. The pre-provision will be skipped since we are in test mode. Four networks will be created:&lt;br /&gt;
* &#039;&#039;default&#039;&#039; -&amp;gt; default NAT network provided by libvirt. By creating this network, VMs will be able to connect to default network in the same host where they are deployed.&lt;br /&gt;
* &#039;&#039;macvtap:em1&#039;&#039; -&amp;gt; macvtap network associated to interface &amp;quot;em1&amp;quot;. By creating this network, we allow VMs to connect to a macvtap interface of physical interface &amp;quot;em1&amp;quot; in the same host where they are deployed. If the interface naming scheme is different, use the appropriate name instead of &amp;quot;em1&amp;quot;.&lt;br /&gt;
* &#039;&#039;bridge_net&#039;&#039; -&amp;gt; bridged network intended for VM-to-VM communication. The pre-provision of a Linux bridge in all compute nodes is described in [[Compute node configuration#pre-provision-of-linux-bridges]]. By creating this network, VMs will be able to connect to the Linux bridge &amp;quot;virbrMan1&amp;quot; in the same host where they are deployed. In that way, two VMs connected to &amp;quot;virbrMan1&amp;quot;, no matter the host, will be able to talk each other.&lt;br /&gt;
* &#039;&#039;data_net&#039;&#039; -&amp;gt; external data network intended for VM-to-VM communication. By creating this network, VMs will be able to connect to a network element connected behind a physical port in the external switch.&lt;br /&gt;
&lt;br /&gt;
In order to create external networks, use &#039;openvim net-create&#039;, specifying a file with the network information. Now we will create the 4 networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create ./openvim/test/networks/net-example0.yaml&lt;br /&gt;
 openvim net-create ./openvim/test/networks/net-example1.yaml&lt;br /&gt;
 openvim net-create ./openvim/test/networks/net-example2.yaml&lt;br /&gt;
 openvim net-create ./openvim/test/networks/net-example3.yaml&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
 2c386a58-e2b5-11e4-a3c9-52540032c4fa   data_net&lt;br /&gt;
 35671f9e-e2b4-11e4-a3c9-52540032c4fa   default&lt;br /&gt;
 79769aa2-e2b4-11e4-a3c9-52540032c4fa   macvtap:em1&lt;br /&gt;
 8f597eb6-e2b4-11e4-a3c9-52540032c4fa   bridge_net&lt;br /&gt;
&lt;br /&gt;
You can build your own networks using the template &#039;templates/network.yaml&#039;. Alternatively, you can use &#039;openvim net-create&#039; without a file and answer the questions:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create&lt;br /&gt;
&lt;br /&gt;
You can delete a network, e.g. &amp;quot;macvtap:em1&amp;quot;, using the command:&lt;br /&gt;
&lt;br /&gt;
 openvim net-delete macvtap:em1&lt;br /&gt;
&lt;br /&gt;
==Creating a new tenant==&lt;br /&gt;
- Now let&#039;s create a new tenant &amp;quot;admin&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ openvim tenant-create --name admin --description admin&lt;br /&gt;
 &amp;lt;uuid&amp;gt;   admin   Created&lt;br /&gt;
&lt;br /&gt;
- Take the uuid of the tenant and update the environment variables used by openvim client:&lt;br /&gt;
&lt;br /&gt;
 export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&lt;br /&gt;
 #echo &amp;quot;export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&amp;quot; &amp;gt;&amp;gt; /home/${USER}/.bashrc&lt;br /&gt;
 openvim config                             #show openvim env variables&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=926</id>
		<title>OpenVIM installation (Release One)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=926"/>
		<updated>2016-10-28T11:59:06Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding compute nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
In order to run openvim in normal mode (see bellow the available modes) and deploy dataplane VNFs, an appropriate infrastructure is required. Below a reference architecture for an openvim-based DC deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenvimDC.png|500px|Openvim Datacenter infrastructure]]&lt;br /&gt;
&lt;br /&gt;
Openvim needs to be accesible from Resource Orchestrator (openmano).&lt;br /&gt;
Openvim needs:&lt;br /&gt;
* To make its API accesible from Resource Orchestrator (openmano). That&#039;s the purpose of the VIM mgmt network in the figure.&lt;br /&gt;
* To be connected to all compute servers through a network, the DC infrastructure network in the figure.&lt;br /&gt;
* To offer management IP addresses to VNFs for VNF configuration from CM (Juju server). That&#039;s the purpose of the Telco/VNF management network.&lt;br /&gt;
&lt;br /&gt;
Compute nodes, besides being connected to the DC infrastructure network, must also be connected to two additional networks:&lt;br /&gt;
*Telco/VNF management network, used by Configuration Manager (Juju Server) to configure the VNFs&lt;br /&gt;
*Inter-DC network, optionally required to interconnect this datacenter to other datacenters (e.g. in MWC&#039;16 demo, to interconnect the two sites).&lt;br /&gt;
&lt;br /&gt;
VMs will be connected to these two networks at deployment time if requested by openmano.&lt;br /&gt;
&lt;br /&gt;
=VM creation (openvim server)=&lt;br /&gt;
* Requirements:&lt;br /&gt;
** 1 vCPU (2 recommended)&lt;br /&gt;
** 4 GB RAM (4 GB are required to run OpenDaylight controller; if the ODL controller runs outside the VM, 2 GB RAM are enough)&lt;br /&gt;
** 40 GB disk&lt;br /&gt;
** 3 network interfaces to:&lt;br /&gt;
*** OSM network (to interact with RO)&lt;br /&gt;
*** DC intfrastructure network (to interact with the compute servers and switches)&lt;br /&gt;
*** Telco/VNF management network (to provide IP addresses via DHCP to the VNFs) &lt;br /&gt;
*Base image: ubuntu-16.04-server-amd64&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Openvim is installed using a script&lt;br /&gt;
 wget -O install-openvim.sh &amp;quot;https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=blob_plain;f=scripts/install-openvim.sh&amp;quot;&lt;br /&gt;
 chmod +x install-openvim.sh&lt;br /&gt;
 sudo ./install-openvim.sh [-u &amp;lt;database-admin-user&amp;gt;] [-p &amp;lt;database-admin-password&amp;gt;]&lt;br /&gt;
 #NOTE: you can provide optionally the admin user (normally &#039;root&#039;) and password of the database.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 16.04 it will install openvim as a service on /opt/openvim&lt;br /&gt;
&lt;br /&gt;
== Openflow controller==&lt;br /&gt;
For normal or OF only openvim modes you will need a openflow controller. You can install e.g. floodlight-0.90. The script &#039;&#039;&#039;openvim/scripts/install-floodlight.sh&#039;&#039;&#039; makes this steps for you. And the script &#039;&#039;&#039;service-floodlight&#039;&#039;&#039; can be used to start/stop it in a screen with logs.&lt;br /&gt;
&lt;br /&gt;
== DHCP server==&lt;br /&gt;
&lt;br /&gt;
For the management network a DHCP server is needed. Install the package dhcp3-server. This package will install the actual DHCP server based on isc-dhcp-server package.&lt;br /&gt;
&lt;br /&gt;
 sudo install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
Configure it editing file &#039;&#039;&#039;/etc/default/isc-dhcp-server&#039;&#039;&#039; to enable DHCP server in the appropriate interface, the one attached to Telco/VNF management network (e.g. eth1).&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/default/isc-dhcp-server&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit file &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; to specify the subnet, netmask and range of IP addresses to be offered by the server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 86400;&lt;br /&gt;
 max-lease-time 86400;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 option subnet-mask 255.255.0.0;&lt;br /&gt;
 option broadcast-address 10.210.255.255;&lt;br /&gt;
 subnet 10.210.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 10.210.1.2 10.210.1.254;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the service:&lt;br /&gt;
&lt;br /&gt;
 sudo service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
- Go to openvim folder (&#039;&#039;&#039;/opt/openvim&#039;&#039;&#039;) and edit openvimd.cfg. Note: by default it runs in mode: &#039;&#039;&#039;test&#039;&#039;&#039; where no real hosts neither openflow controller are needed. You can uses other modes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! mode&lt;br /&gt;
! Computes hosts&lt;br /&gt;
! Openflow controller&lt;br /&gt;
! Observations&lt;br /&gt;
|-&lt;br /&gt;
| test&lt;br /&gt;
| fake&lt;br /&gt;
| X&lt;br /&gt;
| No real deployment. Just for API test&lt;br /&gt;
|-&lt;br /&gt;
| normal&lt;br /&gt;
| needed&lt;br /&gt;
| needed&lt;br /&gt;
| Normal behaviour&lt;br /&gt;
|-&lt;br /&gt;
| host only&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| No PT/SRIOV connections&lt;br /&gt;
|-&lt;br /&gt;
| develop&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| Force to cloud type deployment without EPA&lt;br /&gt;
|-&lt;br /&gt;
| OF only&lt;br /&gt;
| fake&lt;br /&gt;
| needed&lt;br /&gt;
| To test openflow controller without needed of compute hosts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Service must be restarted&lt;br /&gt;
 sudo service openvim restart&lt;br /&gt;
&lt;br /&gt;
NOTE: the following steps (ONLY if openvim runs in test mode) are done automatically by script:&lt;br /&gt;
 ./openvim/scripts/initopenvim.sh --insert-bashrc --force&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s configure the openvim CLI client. Needed if you have changed the openvimd.cfg file&lt;br /&gt;
&lt;br /&gt;
 openvim config                           # show openvim related variables&lt;br /&gt;
 #To change variables run&lt;br /&gt;
 export OPENVIM_HOST=&amp;lt;http_host of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_PORT=&amp;lt;http_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_ADMIN_PORT=&amp;lt;http_admin_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 #You can insert at .bashrc for authomatic loading at login:&lt;br /&gt;
 echo &amp;quot;export OPENVIM_HOST=&amp;lt;...&amp;gt;&amp;quot; &amp;gt;&amp;gt; /{HOME}/.bashrc&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Adding compute nodes==&lt;br /&gt;
- Let&#039;s attach compute nodes&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;test&#039;&#039;&#039; mode we need to provide fake compute nodes with all the necessary information:&lt;br /&gt;
&lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example0.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example1.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example2.yaml &lt;br /&gt;
 openvim host-add ./openvim/test/hosts/host-example3.yaml &lt;br /&gt;
 openvim host-list                        #-v,-vv,-vvv for verbosity levels&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;normal&#039;&#039;&#039; or &#039;&#039;&#039;host only&#039;&#039;&#039; mode, the process is a bit more complex. First, you need to configure appropriately the host following these [[guidelines|Compute node configuration]]. The current process is manual, although we are working on an automated process. For the moment, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
 #copy openvim/scripts/host-add.sh and run at compute host for gather all the information&lt;br /&gt;
 ./host_add.sh &amp;lt;user&amp;gt; &amp;lt;ip_name&amp;gt; &amp;gt;&amp;gt; host.yaml&lt;br /&gt;
&lt;br /&gt;
 #NOTE: If the host contains interfaces connected to the openflow switch for dataplane,&lt;br /&gt;
 # the switch port where the interfaces are connected must be provided manually, &lt;br /&gt;
 # otherwise these interfaces cannot be used. Follow one of two methods:&lt;br /&gt;
 #   1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ...&lt;br /&gt;
 #   ... and load with mysql -uvim -p vim_db &amp;lt; openvim/database_utils/of_ports_pci_correspondence.sql&lt;br /&gt;
 #   2) or add manually this information at generated host.yaml with a &#039;switch_port: &amp;lt;whatever&amp;gt;&#039; &lt;br /&gt;
 #   ... entry at &#039;host-data&#039;:&#039;numas&#039;: &#039;interfaces&#039; &lt;br /&gt;
&lt;br /&gt;
 # copy this generated file host.yaml to the openvim server, and add the compute host with the command:&lt;br /&gt;
 openvim host-add host.yaml&lt;br /&gt;
&lt;br /&gt;
 # copy openvim ssh key to the compute node. If openvim user didn&#039;t have a ssh key generate it using ssh-keygen&lt;br /&gt;
 ssh-copy-id &amp;lt;compute node user&amp;gt;@&amp;lt;IP address of the compute node&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: It must be noted that Openvim has been tested with servers based on Xeon E5 Intel processors with Ivy Bridge architecture. No tests have been carried out with Intel Core i3, i5 and i7 families, so there are no guarantees that the integration will be seamless.&lt;br /&gt;
&lt;br /&gt;
==Adding external networks==&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s create some external networks in openvim. These networks are public and can be used by any VNF. It must be noticed that these networks must be pre-provisioned in the compute nodes in order to be effectively used by the VNFs. The pre-provision will be skipped since we are in test mode. Four networks will be created:&lt;br /&gt;
* &#039;&#039;default&#039;&#039; -&amp;gt; default NAT network provided by libvirt. By creating this network, VMs will be able to connect to default network in the same host where they are deployed.&lt;br /&gt;
* &#039;&#039;macvtap:em1&#039;&#039; -&amp;gt; macvtap network associated to interface &amp;quot;em1&amp;quot;. By creating this network, we allow VMs to connect to a macvtap interface of physical interface &amp;quot;em1&amp;quot; in the same host where they are deployed. If the interface naming scheme is different, use the appropriate name instead of &amp;quot;em1&amp;quot;.&lt;br /&gt;
* &#039;&#039;bridge_net&#039;&#039; -&amp;gt; bridged network intended for VM-to-VM communication. The pre-provision of a Linux bridge in all compute nodes is described in [[Compute node configuration#pre-provision-of-linux-bridges]]. By creating this network, VMs will be able to connect to the Linux bridge &amp;quot;virbrMan1&amp;quot; in the same host where they are deployed. In that way, two VMs connected to &amp;quot;virbrMan1&amp;quot;, no matter the host, will be able to talk each other.&lt;br /&gt;
* &#039;&#039;data_net&#039;&#039; -&amp;gt; external data network intended for VM-to-VM communication. By creating this network, VMs will be able to connect to a network element connected behind a physical port in the external switch.&lt;br /&gt;
&lt;br /&gt;
In order to create external networks, use &#039;openvim net-create&#039;, specifying a file with the network information. Now we will create the 4 networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create test/networks/net-example0.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example1.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example2.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example3.yaml&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
 2c386a58-e2b5-11e4-a3c9-52540032c4fa   data_net&lt;br /&gt;
 35671f9e-e2b4-11e4-a3c9-52540032c4fa   default&lt;br /&gt;
 79769aa2-e2b4-11e4-a3c9-52540032c4fa   macvtap:em1&lt;br /&gt;
 8f597eb6-e2b4-11e4-a3c9-52540032c4fa   bridge_net&lt;br /&gt;
&lt;br /&gt;
You can build your own networks using the template &#039;templates/network.yaml&#039;. Alternatively, you can use &#039;openvim net-create&#039; without a file and answer the questions:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create&lt;br /&gt;
&lt;br /&gt;
You can delete a network, e.g. &amp;quot;macvtap:em1&amp;quot;, using the command:&lt;br /&gt;
&lt;br /&gt;
 openvim net-delete macvtap:em1&lt;br /&gt;
&lt;br /&gt;
==Creating a new tenant==&lt;br /&gt;
- Now let&#039;s create a new tenant &amp;quot;admin&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ openvim tenant-create --name admin --description admin&lt;br /&gt;
 &amp;lt;uuid&amp;gt;   admin   Created&lt;br /&gt;
&lt;br /&gt;
- Take the uuid of the tenant and update the environment variables used by openvim client:&lt;br /&gt;
&lt;br /&gt;
 export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&lt;br /&gt;
 #echo &amp;quot;export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&amp;quot; &amp;gt;&amp;gt; /home/${USER}/.bashrc&lt;br /&gt;
 openvim config                             #show openvim env variables&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
	<entry>
		<id>https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=925</id>
		<title>OpenVIM installation (Release One)</title>
		<link rel="alternate" type="text/html" href="https://osm.etsi.org/wikipub/index.php?title=OpenVIM_installation_(Release_One)&amp;diff=925"/>
		<updated>2016-10-28T11:58:11Z</updated>

		<summary type="html">&lt;p&gt;Montesmoreno: /* Adding compute nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Infrastructure=&lt;br /&gt;
In order to run openvim in normal mode (see bellow the available modes) and deploy dataplane VNFs, an appropriate infrastructure is required. Below a reference architecture for an openvim-based DC deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenvimDC.png|500px|Openvim Datacenter infrastructure]]&lt;br /&gt;
&lt;br /&gt;
Openvim needs to be accesible from Resource Orchestrator (openmano).&lt;br /&gt;
Openvim needs:&lt;br /&gt;
* To make its API accesible from Resource Orchestrator (openmano). That&#039;s the purpose of the VIM mgmt network in the figure.&lt;br /&gt;
* To be connected to all compute servers through a network, the DC infrastructure network in the figure.&lt;br /&gt;
* To offer management IP addresses to VNFs for VNF configuration from CM (Juju server). That&#039;s the purpose of the Telco/VNF management network.&lt;br /&gt;
&lt;br /&gt;
Compute nodes, besides being connected to the DC infrastructure network, must also be connected to two additional networks:&lt;br /&gt;
*Telco/VNF management network, used by Configuration Manager (Juju Server) to configure the VNFs&lt;br /&gt;
*Inter-DC network, optionally required to interconnect this datacenter to other datacenters (e.g. in MWC&#039;16 demo, to interconnect the two sites).&lt;br /&gt;
&lt;br /&gt;
VMs will be connected to these two networks at deployment time if requested by openmano.&lt;br /&gt;
&lt;br /&gt;
=VM creation (openvim server)=&lt;br /&gt;
* Requirements:&lt;br /&gt;
** 1 vCPU (2 recommended)&lt;br /&gt;
** 4 GB RAM (4 GB are required to run OpenDaylight controller; if the ODL controller runs outside the VM, 2 GB RAM are enough)&lt;br /&gt;
** 40 GB disk&lt;br /&gt;
** 3 network interfaces to:&lt;br /&gt;
*** OSM network (to interact with RO)&lt;br /&gt;
*** DC intfrastructure network (to interact with the compute servers and switches)&lt;br /&gt;
*** Telco/VNF management network (to provide IP addresses via DHCP to the VNFs) &lt;br /&gt;
*Base image: ubuntu-16.04-server-amd64&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Openvim is installed using a script&lt;br /&gt;
 wget -O install-openvim.sh &amp;quot;https://osm.etsi.org/gitweb/?p=osm/openvim.git;a=blob_plain;f=scripts/install-openvim.sh&amp;quot;&lt;br /&gt;
 chmod +x install-openvim.sh&lt;br /&gt;
 sudo ./install-openvim.sh [-u &amp;lt;database-admin-user&amp;gt;] [-p &amp;lt;database-admin-password&amp;gt;]&lt;br /&gt;
 #NOTE: you can provide optionally the admin user (normally &#039;root&#039;) and password of the database.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 16.04 it will install openvim as a service on /opt/openvim&lt;br /&gt;
&lt;br /&gt;
== Openflow controller==&lt;br /&gt;
For normal or OF only openvim modes you will need a openflow controller. You can install e.g. floodlight-0.90. The script &#039;&#039;&#039;openvim/scripts/install-floodlight.sh&#039;&#039;&#039; makes this steps for you. And the script &#039;&#039;&#039;service-floodlight&#039;&#039;&#039; can be used to start/stop it in a screen with logs.&lt;br /&gt;
&lt;br /&gt;
== DHCP server==&lt;br /&gt;
&lt;br /&gt;
For the management network a DHCP server is needed. Install the package dhcp3-server. This package will install the actual DHCP server based on isc-dhcp-server package.&lt;br /&gt;
&lt;br /&gt;
 sudo install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
Configure it editing file &#039;&#039;&#039;/etc/default/isc-dhcp-server&#039;&#039;&#039; to enable DHCP server in the appropriate interface, the one attached to Telco/VNF management network (e.g. eth1).&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/default/isc-dhcp-server&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit file &#039;&#039;&#039;/etc/dhcp/dhcpd.conf&#039;&#039;&#039; to specify the subnet, netmask and range of IP addresses to be offered by the server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo vi /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 86400;&lt;br /&gt;
 max-lease-time 86400;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 option subnet-mask 255.255.0.0;&lt;br /&gt;
 option broadcast-address 10.210.255.255;&lt;br /&gt;
 subnet 10.210.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 10.210.1.2 10.210.1.254;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the service:&lt;br /&gt;
&lt;br /&gt;
 sudo service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
- Go to openvim folder (&#039;&#039;&#039;/opt/openvim&#039;&#039;&#039;) and edit openvimd.cfg. Note: by default it runs in mode: &#039;&#039;&#039;test&#039;&#039;&#039; where no real hosts neither openflow controller are needed. You can uses other modes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! mode&lt;br /&gt;
! Computes hosts&lt;br /&gt;
! Openflow controller&lt;br /&gt;
! Observations&lt;br /&gt;
|-&lt;br /&gt;
| test&lt;br /&gt;
| fake&lt;br /&gt;
| X&lt;br /&gt;
| No real deployment. Just for API test&lt;br /&gt;
|-&lt;br /&gt;
| normal&lt;br /&gt;
| needed&lt;br /&gt;
| needed&lt;br /&gt;
| Normal behaviour&lt;br /&gt;
|-&lt;br /&gt;
| host only&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| No PT/SRIOV connections&lt;br /&gt;
|-&lt;br /&gt;
| develop&lt;br /&gt;
| needed&lt;br /&gt;
| X&lt;br /&gt;
| Force to cloud type deployment without EPA&lt;br /&gt;
|-&lt;br /&gt;
| OF only&lt;br /&gt;
| fake&lt;br /&gt;
| needed&lt;br /&gt;
| To test openflow controller without needed of compute hosts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Service must be restarted&lt;br /&gt;
 sudo service openvim restart&lt;br /&gt;
&lt;br /&gt;
NOTE: the following steps (ONLY if openvim runs in test mode) are done automatically by script:&lt;br /&gt;
 ./openvim/scripts/initopenvim.sh --insert-bashrc --force&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s configure the openvim CLI client. Needed if you have changed the openvimd.cfg file&lt;br /&gt;
&lt;br /&gt;
 openvim config                           # show openvim related variables&lt;br /&gt;
 #To change variables run&lt;br /&gt;
 export OPENVIM_HOST=&amp;lt;http_host of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_PORT=&amp;lt;http_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 export OPENVIM_ADMIN_PORT=&amp;lt;http_admin_port of openvimd.cfg&amp;gt;&lt;br /&gt;
 #You can insert at .bashrc for authomatic loading at login:&lt;br /&gt;
 echo &amp;quot;export OPENVIM_HOST=&amp;lt;...&amp;gt;&amp;quot; &amp;gt;&amp;gt; /{HOME}/.bashrc&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Adding compute nodes==&lt;br /&gt;
- Let&#039;s attach compute nodes&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;test&#039;&#039;&#039; mode we need to provide fake compute nodes with all the necessary information:&lt;br /&gt;
&lt;br /&gt;
 openvim host-add test/hosts/host-example0.yaml &lt;br /&gt;
 openvim host-add test/hosts/host-example1.yaml &lt;br /&gt;
 openvim host-add test/hosts/host-example2.yaml &lt;br /&gt;
 openvim host-add test/hosts/host-example3.yaml &lt;br /&gt;
 openvim host-list                        #-v,-vv,-vvv for verbosity levels&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;normal&#039;&#039;&#039; or &#039;&#039;&#039;host only&#039;&#039;&#039; mode, the process is a bit more complex. First, you need to configure appropriately the host following these [[guidelines|Compute node configuration]]. The current process is manual, although we are working on an automated process. For the moment, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
 #copy openvim/scripts/host-add.sh and run at compute host for gather all the information&lt;br /&gt;
 ./host_add.sh &amp;lt;user&amp;gt; &amp;lt;ip_name&amp;gt; &amp;gt;&amp;gt; host.yaml&lt;br /&gt;
&lt;br /&gt;
 #NOTE: If the host contains interfaces connected to the openflow switch for dataplane,&lt;br /&gt;
 # the switch port where the interfaces are connected must be provided manually, &lt;br /&gt;
 # otherwise these interfaces cannot be used. Follow one of two methods:&lt;br /&gt;
 #   1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ...&lt;br /&gt;
 #   ... and load with mysql -uvim -p vim_db &amp;lt; openvim/database_utils/of_ports_pci_correspondence.sql&lt;br /&gt;
 #   2) or add manually this information at generated host.yaml with a &#039;switch_port: &amp;lt;whatever&amp;gt;&#039; &lt;br /&gt;
 #   ... entry at &#039;host-data&#039;:&#039;numas&#039;: &#039;interfaces&#039; &lt;br /&gt;
&lt;br /&gt;
 # copy this generated file host.yaml to the openvim server, and add the compute host with the command:&lt;br /&gt;
 openvim host-add host.yaml&lt;br /&gt;
&lt;br /&gt;
 # copy openvim ssh key to the compute node. If openvim user didn&#039;t have a ssh key generate it using ssh-keygen&lt;br /&gt;
 ssh-copy-id &amp;lt;compute node user&amp;gt;@&amp;lt;IP address of the compute node&amp;gt;&lt;br /&gt;
         &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: It must be noted that Openvim has been tested with servers based on Xeon E5 Intel processors with Ivy Bridge architecture. No tests have been carried out with Intel Core i3, i5 and i7 families, so there are no guarantees that the integration will be seamless.&lt;br /&gt;
&lt;br /&gt;
==Adding external networks==&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s create some external networks in openvim. These networks are public and can be used by any VNF. It must be noticed that these networks must be pre-provisioned in the compute nodes in order to be effectively used by the VNFs. The pre-provision will be skipped since we are in test mode. Four networks will be created:&lt;br /&gt;
* &#039;&#039;default&#039;&#039; -&amp;gt; default NAT network provided by libvirt. By creating this network, VMs will be able to connect to default network in the same host where they are deployed.&lt;br /&gt;
* &#039;&#039;macvtap:em1&#039;&#039; -&amp;gt; macvtap network associated to interface &amp;quot;em1&amp;quot;. By creating this network, we allow VMs to connect to a macvtap interface of physical interface &amp;quot;em1&amp;quot; in the same host where they are deployed. If the interface naming scheme is different, use the appropriate name instead of &amp;quot;em1&amp;quot;.&lt;br /&gt;
* &#039;&#039;bridge_net&#039;&#039; -&amp;gt; bridged network intended for VM-to-VM communication. The pre-provision of a Linux bridge in all compute nodes is described in [[Compute node configuration#pre-provision-of-linux-bridges]]. By creating this network, VMs will be able to connect to the Linux bridge &amp;quot;virbrMan1&amp;quot; in the same host where they are deployed. In that way, two VMs connected to &amp;quot;virbrMan1&amp;quot;, no matter the host, will be able to talk each other.&lt;br /&gt;
* &#039;&#039;data_net&#039;&#039; -&amp;gt; external data network intended for VM-to-VM communication. By creating this network, VMs will be able to connect to a network element connected behind a physical port in the external switch.&lt;br /&gt;
&lt;br /&gt;
In order to create external networks, use &#039;openvim net-create&#039;, specifying a file with the network information. Now we will create the 4 networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create test/networks/net-example0.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example1.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example2.yaml&lt;br /&gt;
 openvim net-create test/networks/net-example3.yaml&lt;br /&gt;
&lt;br /&gt;
- Let&#039;s list the external networks:&lt;br /&gt;
&lt;br /&gt;
 openvim net-list&lt;br /&gt;
 2c386a58-e2b5-11e4-a3c9-52540032c4fa   data_net&lt;br /&gt;
 35671f9e-e2b4-11e4-a3c9-52540032c4fa   default&lt;br /&gt;
 79769aa2-e2b4-11e4-a3c9-52540032c4fa   macvtap:em1&lt;br /&gt;
 8f597eb6-e2b4-11e4-a3c9-52540032c4fa   bridge_net&lt;br /&gt;
&lt;br /&gt;
You can build your own networks using the template &#039;templates/network.yaml&#039;. Alternatively, you can use &#039;openvim net-create&#039; without a file and answer the questions:&lt;br /&gt;
&lt;br /&gt;
 openvim net-create&lt;br /&gt;
&lt;br /&gt;
You can delete a network, e.g. &amp;quot;macvtap:em1&amp;quot;, using the command:&lt;br /&gt;
&lt;br /&gt;
 openvim net-delete macvtap:em1&lt;br /&gt;
&lt;br /&gt;
==Creating a new tenant==&lt;br /&gt;
- Now let&#039;s create a new tenant &amp;quot;admin&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ openvim tenant-create --name admin --description admin&lt;br /&gt;
 &amp;lt;uuid&amp;gt;   admin   Created&lt;br /&gt;
&lt;br /&gt;
- Take the uuid of the tenant and update the environment variables used by openvim client:&lt;br /&gt;
&lt;br /&gt;
 export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&lt;br /&gt;
 #echo &amp;quot;export OPENVIM_TENANT=&amp;lt;obtained uuid&amp;gt;&amp;quot; &amp;gt;&amp;gt; /home/${USER}/.bashrc&lt;br /&gt;
 openvim config                             #show openvim env variables&lt;/div&gt;</summary>
		<author><name>Montesmoreno</name></author>
	</entry>
</feed>