Introduction to OpenMANO_
Network Innovation & Virtualisation
Global CTO Unit
GERARDO GARCÍA
Network Virtualisation Initiative @ GCTO Unit
gerardo.garciadeblas@telefonica.com
How much do we know about NFV?
Let’s do an exam
Questions about NFV architecture (I)
1. How many VMs is a VNF composed of?
• One
• Two
• At least one
• No more than 8
2. Does a VNF have internal networks?
• Yes
• Maybe
• No
3. According to ETSI NFV, what is a Network Service*?
• A forwarding graph of Network Functions (NFs) interconnected by
supporting network infrastructure
• Subset of the end to end service formed by Virtualised Network
Functions and associated Virtual Links instantiated on the NFVI
(*) Sources:
First definition: ETSI GS NFV 002 V1.2.1 ”Network Functions Virtualisation (NFV); Architectural Framework”, December 2014, p. 11
Second definition: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.61
Network service in ETSI
(*) Source: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.60
(**) Source: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.61
Topology of VNFs and links* Forwarding path for specific flows**
In OpenMANO we avoid the use of the term ‘Network Service’.
Instead, we use the term ‘Network Scenario’, which refers to a
network topology consisting of VNFs and the networks/links used to
interconnect them
Questions about NFV architecture (II)
5. Who interacts with the infrastructure for the on-boarding of a VM?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
6. Who gives the order to on-board a VM instance?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
7. Who interacts with the infrastructure to create the connectivity
between 2 VMs?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
8. Who gives the order of creating a network between 2 VMs?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
NFVO-centric vs VNFM-centric
OpenMANO follows an NFVO-centric approach,
with a simplified VNF instance lifecycle management
at the NFVO (VNF instantiation and termination)
• Interaction with VIM for VM
deployment is done by VNFM
• Interaction with VIM to create
networks/links between VMs of a
VNF done by VNFM
• VNF instance lifecycle exclusively
managed by VNFM
• Networks/links between VNFs
managed by NFVO
VNFM-centric
• Interaction with VIM for VM
deployment is done by NFVO
• Interaction with VIM to create
networks/links between VMs of a
VNF is done by NFVO
• VNF lifecycle management function
split between NFVO and VNFM
• VNF performance monitoring, fault
management and event management
done by VNFM
NFVO-centric
Questions about NFV architecture (II)
8. Who adds a new VNF to the catalogue of available VNFs?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
9. Who uses the VNF catalogue for instantiating VNFs?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
10. Who defines a new Network Service?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
11. Where does the Network Service definition reside?
• VIM
• VNF Manager
• NFV Orchestrator
• OSS / Network operator guy
OpenMANO introduction
OpenMANO. Open WHAT?
Open: open source project released in GitHub under Apache 2
license
MANO: practical implementation of Management &
Orchestration (MANO) stack for NFV
https://github.com/nfvlabs/openmano
OpenMANO main features
• FRIENDLY FOR NETWORK ENGINEERS
• NETWORK SCENARIOS & SNAPSHOTS
• Provides NFVO & VIM (+ GUI and CLI)
• Support for HIGH PERFORMANCE VNFs
(EPA-aware)
• REST-BASED APIs, OpenStack-friendly
• MULTI-VENDOR by design
• No formal integration needed
• Assures optimal VNF deployment and IXC
• >30 VNFs tested
• OpenMANO code @ GitHub:
o Python-based
o 37k code lines
o Released with Apache 2 license
o 24 forks
OpenMANO works with network scenarios via descriptors…
VNF
VNF
VNF
VNF
VNF
VM
VM VM
VM
VM
VM
VM
VM VM
VNF
VNF
VNF
VM
VM VM
VM
VM
VM
VM
VM VM
NS
(NETWORK SCENARIO)
VNF
(SW-BASED NODE)
+
-
Abstraction
VM
(DEPLOYMENT UNIT)
… providing Enhanced Platform Awareness (EPA) natively…
x100
Line rate with 192
bytes frame size
x100
Having x100 times better scalability should be sufficiently
appealing! 
With the right exposure of HW resources to the VNFs, carrier-grade
performance can be achieved.
…while a comprehensive set of connectivities is available
Support of L2 networks with
passthrough, SR-IOV or virtio
interfaces:
• E-Line
• E-LAN
Traditional E-LAN based on virtual
bridges/switches is still supported
VNF VNF
VNF VNF
VNF VNF
This combination hides low-level complexity to network
engineers while assures consistent deployments
OpenMANO components
openvim: the VIM module
Openvim: the VIM module (I)
Relation to NFVI
OpenFlow
Controller
(FloodLight)
Image
storage
NFV Infrastructure
openvim
server
OpenFlow switch
openvim
API
OFC
API
Compute nodes
openvim
client
openMANO
Openvim + OFC controller (Floodlight) = NFV VIM
- Interaction with compute nodes through libvirt
- Tested on compute nodes based on Intel Xeon E5 processors, Linux as host OS, KVM as
hypervisor
- Openflow switch controlled by proactive rules
- Image storage based on NAS. Image uploading is not managed by openvim
Openvim: the VIM module (II)
Modes of operation
4 modes to run openvim
MODE Purpose Required
infrastructure
normal Regular operation Compute nodes
OpenFlow switch
host only Deploy without OpenFlow
switch and without OFC
Compute nodes
development VNF development
(deploys without EPA)
“Low performance”
compute node
test Test openMANO
installation and API
-
Openvim: the VIM module (III)
Main characteristics
• Host mgmt
o Administrative primitive (managed by an independent thread)
o Host addition can be automatic or manual through a YAML file
o Hosts can be administratively set up or down
• Tenant mgmt
o Tenants delimit the property and scope of flavors, images, vms,
nets, etc.
o No identity mgmt: neither users nor roles
• Networks mgmt
o Networks are pure L2 networks:
 ptp: used to create an E-Line service between two data plane
interfaces
 data: used to create an E-LAN service with data plane interfaces
 bridge_data: used to create an E-LAN service based on pre-
provisioned linux bridges
o No concept of subnet
o Public vs private (tenant scope)
ADMINISTRATIVE
PRIMITIVE
ORDINARY USE
ORDINARY USE
ORDINARY USE TO
CREATE
PUBLIC/SHARED
NETWORKS
Openvim: the VIM module (IV)
Main characteristics
• Ports mgmt
o Ports are attached to networks (similarly to OpenStack)
o 2 types of ports:
 Instance-related ports: VM interfaces created and deleted as part of the
VM life cycle
 External ports: set explicitly by the network administrator in order to
define connections to PNF or external networks physically attached to
the Openflow switch
• Image mgmt
o Image uploading to the image repo must be done manually by the
end user
o Support of incremental images
• Flavor mgmt
o Openstack-like, but with new fields to indicate EPA requirements
• VM instance mgmt
o Besides traditional primitives (create, delete, list), allows actions
over VMs (shutdown, start, pause, resume, rebuild, reboot)
ORDINARY USE TO
CREATE
EXTERNAL PORTS
ADMINISTRATIVE
PRIMITIVE
TYPICALLY USED
BY OPENMANO
MODULE
TYPICALLY USED
BY OPENMANO
MODULE
ORDINARY USE
Openvim: the VIM module (V)
Components
VIM
DB
host_thread
openflow_thread
openvimd
OpenFlow
Controller
FloodLight
vim_schema
utils
vim_db
httpserver
OPENVIM
Image
storage
Northbound API
openvimd.py
- Main program
host_thread.py
- Thread that interacts with the
compute node through libvirt to
manage VM instances
- One thread per compute node
httpserver.py
- Thread that manage
northbound API requests
- Two threads, for common
requests and for administrative
ones
vim_db.py
- Module used to interact with
the openvim DB
- General table management and
transactional-based writings
vim_schema.py
- Dictionary schemas used to
validate API request content
using jsonschema library
openflow_thread.py
- Interacts with an OpenFlow
Floodligth controller to create
dataplane connections
Openvim: the VIM module (VI)
Northbound API
REST-based API, intentionally similar to Openstack API
Example 1. Removing a flavor
Request: DELETE /openvim/{tenant_id}/flavors/{flavor_id}
Response: 200 OK, 400 Bad Request, …
Example 2. Listing images
Request: GET /openvim/{tenant_id}/images
Response:
200 OK
{
"images": [
{ "id": "70a599e0-31e7-49b7-b260-868f441e862b", "path": /opt/image1.raw", "name": “image1"},
{ "id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "path": "/opt/image2.qcow2", "name": “image2“}
]
}
Openvim: the VIM module (VII)
Northbound API documentation
URL: http://github.com/nfvlabs/openmano/raw/master/docs/openvim-
api-0.6.pdf
Openvim: the VIM module (VIII)
Other details
• openvimd.cfg -> configuration file
o Mode of operation
o IP addresses and ports where the HTTP servers is listening to API
requests
o OFC parameters
o DB parameters
• openvim client, Python-based
$ openvim -h
usage: openvim [-h] [--version]
{config,image-list,image-create,image-delete,image-edit,vm-list,vm-
create,vm-delete,vm-edit,vm-shutdown,vm-start,vm-rebuild,vm-reboot,vm-createImage,port-
list,port-create,port-delete,port-edit,port-attach,port-detach,host-list,host-add,host-
remove,host-edit,host-up,host-down,net-list,net-create,net-delete,net-edit,net-up,net-
down,flavor-list,flavor-create,flavor-delete,flavor-edit,tenant-list,tenant-
create,tenant-delete,tenant-edit,openflow-port-list,openflow-clear-all,openflow-net-
reinstall,openflow-net-list}
...
User program to interact with OPENVIM-SERVER (openvimd)
OpenMANO components
openmano: the NFVO module
Openmano: the NFVO module (I)
Introduction
openmano
client
openvim
server
openmano
server
openMANO
openmano
API
openvim
API
CHARACTERISTICS
• In spite of the name, it’s an NFVO
• Simple VNFM role: simplified VNF
instance lifecycle management
(VNF instantiation and termination)
• Hides complexity to the network
engineer:
o No compute nodes
o No VMs
o Just nodes and links
• VNF catalogue
• NS definitions
• NS instance creation and termination
(and associated VNF creation)
Openmano: the NFVO module (II)
Tenant and datacenter management
• Tenant mgmt
o Tenants delimit the property and scope of VNF and NS, and the
actions over them (instantiation, termination)
o Separate from openvim tenant space
 Different programs with different databases
• Datacenter mgmt
o A new datacenter must be added in order to interact with a specific
pool of resources. The datacenter is characterized by:
 type: openvim (in the future, openstack)
 URL of the VIM that manage that datacenter
o Datacenters are not directly available to tenants
o An NFVO tenant must be attached to a datacenter and a VIM tenant
o Datacenter nets can be inherited as external networks to be used
Openmano: the NFVO module (III)
VNF concept and structure
• VNF: SW-based network function that can be deployed on an NFV
datacenter
• VNF definition vs VNF instance  class vs object
• VNF structure: VNFCs/VMs, internal-connections, external-connections
Single-VM VNF Multi-VM VNF
Openmano: the NFVO module (IV)
VNF descriptor
Name: unique name of the VNF
Description
External-connections:
• External interfaces of that VNF that can be connected in an NS to other VNFs or
networks
• Properties:
• name
• type: mgmt/bridge/data
• mapping to a VNFC interface
Internal-connections:
• It defines how VNFC/VMs are interconnected. This property is only required in
case of VNFs consisting of several VMs
• Properties:
• name
• type: mgmt/bridge/data
• list of interconnected VNFC/VMs (and their interfaces)
VNFC:
• List of components or virtual machines this VNF is composed of.
Openmano: the NFVO module (V)
VNF descriptor (continuation)
VNFC properties:
• name
• description
• image path:
• When a new VNF is added to the catalogue, new VM images are created in
openvim for each VNFC based on this path
• vcpus: number of virtual CPUs (traditional cloud requirement
• ram: number of virtual CPUs (traditional cloud requirement
• bridge-ifaces: virtio interfaces with no high I/O performance requirements.
They will be attached to Linux bridges in the host.
• numas: CPU, memory and interface requirements for high I/O performance
• CPU type (cores, paired threads, threads), number and pinning
• Memory (number of 1G hugepages)
• Interface details:
• Type: passthrough, VLAN-based SRIOV, MAC-based SRIOV
• Bandwidth
• Virtual PCI to assure appropriate identification at the VM
• devices: additional devices can be included (disk, cdrom, etc.) in this section
TRADITIONAL
REQUIREMENTS
EPA
REQUIREMENTS
Openmano: the NFVO module (VI)
NS concept and structure
• NS: topologies of VNFs and their interconnections
• NS definition vs NS instance  class vs object
• NS structure: VNFs, external networks, point-to-multipoint networks
and connections
Simple Complex
Openmano: the NFVO module (VII)
NS descriptor
Name: unique name of the network scenario
Description
Topology: defines the nodes and their connections
Nodes
• Type
 VNF (for a VNF)
 network (for a internal/private scenario point-to-multipoint network). Point-to-point
data plane networks can be omitted
 external_network (for a datacenter network, previously created as external/public).
• VNF model Type (only for VNF): must match a previosly created VNF
• model (only for networks):
 name of the network (in case of external/public datacenter network)
 bridge_net (for control plane internal/private networks)
 dataplane_net (for data plane internal/private networks)
Connections:
• name
• list of nodes (VNFs and networks) that must be interconnected together.
Openmano: the NFVO module (VIII)
Components
MANO
DB
openmanodhttpserver
nfvo_db
openmano_schemas
utils
nfvo
vimconnector
openvim
OPENMANO
Northbound API
openmanod.py
- Main program
httpserver.py
- Thread that manage northbound
API requests
nfvo.py
- NFVO engine, implementing all the
methods for the creation, deletion
and management of vnfs, scenarios
and instances
nfvo_db.py
- Module used to interact with the
openmano DB
openmano_schemas.py
- Dictionary schemas used to
validate API request and response
content using jsonschema library
vimconnector.py
- Interacts with an openvim-based VIM
through the openvim API
Openmano: the NFVO module (IX)
Northbound API
• REST-based API
• Not yet documented
Example 1. Removing a VNF
Request: DELETE /openmano/{tenant_id}/vnfs/{vnf_id}
Response: 200 OK, …
Example 2. Listing network scenarios
Request: GET /openmano/{tenant_id}/scenarios
Response:
200 OK
{
"scenarios": [
{
"uuid": "ec1d744e-f56b-11e4-874f-52540032c4fa",
"created_at": "2015-05-08T12:20:59",
"description": "Simple network scenario consisting of a single VNF connected to an external network",
"name": "simple",
"public": false
},
]
}
Openmano: the NFVO module (X)
Other details
• openmanod.cfg -> configuration file
o IP address and port where the HTTP server is listening to API
requests
o DB parameters
o VNF repo folder where copies of the VNFD will be stored
• openmano client, Python-based
$ openmano -h
usage: openmano [-h] [--version]
{config,vnf-create,vnf-list,vnf-delete,scenario-create,scenario-
list,scenario-delete,scenario-deploy,scenario-verify,instance-scenario-list,instance-
scenario-delete,tenant-create,tenant-delete,tenant-list,tenant-edit,datacenter-
edit,datacenter-create,datacenter-delete,datacenter-list,datacenter-attach,datacenter-
detach,datacenter-net-edit,datacenter-net-update,datacenter-net-delete,datacenter-net-
list}
...
User program to interact with OPENMANO-SERVER (openmanod)
OpenMANO components
openmano-gui: web-based interface
Openmano-gui: the web-based interface (I)
Relation to openmano
Web browser
(e.g. Chrome, Firefox)
openmano
server
openMANO
openmano
API
openmano-gui
CHARACTERISTICS
• Access to network scenario
definitions and instances
• Drag&drop scenario builder with
access to the VNF catalogue
• Actions over network scenario
instances (stop, shutdown, delete,
deploy) and over specific VNF
instances inside an NS instance
CONFIGURATION
• config.php: configuration file
Openmano-gui: the web-based interface (II)
NS definitions and instances
Button to access NS builder
NS definition
NS instance (currently running)
Openmano-gui: the web-based interface (III)
NS builder
Catalogue of VNFs and
external/public networks
Drag & drop panel
Openmano-gui: the NFVO module (V)
Actions over NS instances
Status of VNF instances (and their VM instances)
Available actions
Summary and future work
OpenMANO addresses successfully network creation,
becoming a sound foundation for further automation
VNF AND NS DESCRIPTORS MAKE NETWORK DESIGN SIMPLE
EPA SUPPORT (NFVO & VIM)
PROPER VARIETY OF L2 CONNECTIVITIES
VNF ON-BOARDING DOES NOT REQUIRE FORMAL INTEGRATION
• Abstract models that hide complexity to
network engineer: just nodes and links
interconnecting them
• Allows to deploy for high performance
• Passthrough, SR-IOV, Virtio
• E-Line & E-LAN
• Descriptor-based (openly available)
VNF VNF
VNF VNF
VNF VNF
E-Line E-LAN
Current work areas
Improved VNF life-cycle management
Integration with ODL controller
Multi-VIM support (EPA-ready Openstack)
Want to know more about OpenMANO?
Fresh ideas and enthusiastic contributors
are always welcome!
https://github.com/nfvlabs/openmano
All info at:
nfvlabs@tid.esQuestions/feedback/suggestions:
More details in afternoon talk:
OpenMANO: set up and usage
E-Mail: gerardo.garciadeblas@telefonica.com
Twitter: @garciadeblas
COMMENTS / QUESTIONS
GitHub: https://github.com/nfvlabs/openmano
E-Mail: nfvlabs@tid.es
ABOUT OpenMANO

Introduction to Open Mano

  • 1.
    Introduction to OpenMANO_ NetworkInnovation & Virtualisation Global CTO Unit GERARDO GARCÍA Network Virtualisation Initiative @ GCTO Unit gerardo.garciadeblas@telefonica.com
  • 2.
    How much dowe know about NFV? Let’s do an exam
  • 3.
    Questions about NFVarchitecture (I) 1. How many VMs is a VNF composed of? • One • Two • At least one • No more than 8 2. Does a VNF have internal networks? • Yes • Maybe • No 3. According to ETSI NFV, what is a Network Service*? • A forwarding graph of Network Functions (NFs) interconnected by supporting network infrastructure • Subset of the end to end service formed by Virtualised Network Functions and associated Virtual Links instantiated on the NFVI (*) Sources: First definition: ETSI GS NFV 002 V1.2.1 ”Network Functions Virtualisation (NFV); Architectural Framework”, December 2014, p. 11 Second definition: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.61
  • 4.
    Network service inETSI (*) Source: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.60 (**) Source: ETSI GS NFV-MAN 001 V1.1.1 “Network Functions Virtualisation (NFV); Management and Orchestration”, December 2014, p.61 Topology of VNFs and links* Forwarding path for specific flows** In OpenMANO we avoid the use of the term ‘Network Service’. Instead, we use the term ‘Network Scenario’, which refers to a network topology consisting of VNFs and the networks/links used to interconnect them
  • 5.
    Questions about NFVarchitecture (II) 5. Who interacts with the infrastructure for the on-boarding of a VM? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 6. Who gives the order to on-board a VM instance? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 7. Who interacts with the infrastructure to create the connectivity between 2 VMs? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 8. Who gives the order of creating a network between 2 VMs? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy
  • 6.
    NFVO-centric vs VNFM-centric OpenMANOfollows an NFVO-centric approach, with a simplified VNF instance lifecycle management at the NFVO (VNF instantiation and termination) • Interaction with VIM for VM deployment is done by VNFM • Interaction with VIM to create networks/links between VMs of a VNF done by VNFM • VNF instance lifecycle exclusively managed by VNFM • Networks/links between VNFs managed by NFVO VNFM-centric • Interaction with VIM for VM deployment is done by NFVO • Interaction with VIM to create networks/links between VMs of a VNF is done by NFVO • VNF lifecycle management function split between NFVO and VNFM • VNF performance monitoring, fault management and event management done by VNFM NFVO-centric
  • 7.
    Questions about NFVarchitecture (II) 8. Who adds a new VNF to the catalogue of available VNFs? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 9. Who uses the VNF catalogue for instantiating VNFs? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 10. Who defines a new Network Service? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy 11. Where does the Network Service definition reside? • VIM • VNF Manager • NFV Orchestrator • OSS / Network operator guy
  • 8.
  • 9.
    OpenMANO. Open WHAT? Open:open source project released in GitHub under Apache 2 license MANO: practical implementation of Management & Orchestration (MANO) stack for NFV https://github.com/nfvlabs/openmano
  • 10.
    OpenMANO main features •FRIENDLY FOR NETWORK ENGINEERS • NETWORK SCENARIOS & SNAPSHOTS • Provides NFVO & VIM (+ GUI and CLI) • Support for HIGH PERFORMANCE VNFs (EPA-aware) • REST-BASED APIs, OpenStack-friendly • MULTI-VENDOR by design • No formal integration needed • Assures optimal VNF deployment and IXC • >30 VNFs tested • OpenMANO code @ GitHub: o Python-based o 37k code lines o Released with Apache 2 license o 24 forks
  • 11.
    OpenMANO works withnetwork scenarios via descriptors… VNF VNF VNF VNF VNF VM VM VM VM VM VM VM VM VM VNF VNF VNF VM VM VM VM VM VM VM VM VM NS (NETWORK SCENARIO) VNF (SW-BASED NODE) + - Abstraction VM (DEPLOYMENT UNIT)
  • 12.
    … providing EnhancedPlatform Awareness (EPA) natively… x100 Line rate with 192 bytes frame size x100 Having x100 times better scalability should be sufficiently appealing!  With the right exposure of HW resources to the VNFs, carrier-grade performance can be achieved.
  • 13.
    …while a comprehensiveset of connectivities is available Support of L2 networks with passthrough, SR-IOV or virtio interfaces: • E-Line • E-LAN Traditional E-LAN based on virtual bridges/switches is still supported VNF VNF VNF VNF VNF VNF
  • 14.
    This combination hideslow-level complexity to network engineers while assures consistent deployments
  • 15.
  • 16.
    Openvim: the VIMmodule (I) Relation to NFVI OpenFlow Controller (FloodLight) Image storage NFV Infrastructure openvim server OpenFlow switch openvim API OFC API Compute nodes openvim client openMANO Openvim + OFC controller (Floodlight) = NFV VIM - Interaction with compute nodes through libvirt - Tested on compute nodes based on Intel Xeon E5 processors, Linux as host OS, KVM as hypervisor - Openflow switch controlled by proactive rules - Image storage based on NAS. Image uploading is not managed by openvim
  • 17.
    Openvim: the VIMmodule (II) Modes of operation 4 modes to run openvim MODE Purpose Required infrastructure normal Regular operation Compute nodes OpenFlow switch host only Deploy without OpenFlow switch and without OFC Compute nodes development VNF development (deploys without EPA) “Low performance” compute node test Test openMANO installation and API -
  • 18.
    Openvim: the VIMmodule (III) Main characteristics • Host mgmt o Administrative primitive (managed by an independent thread) o Host addition can be automatic or manual through a YAML file o Hosts can be administratively set up or down • Tenant mgmt o Tenants delimit the property and scope of flavors, images, vms, nets, etc. o No identity mgmt: neither users nor roles • Networks mgmt o Networks are pure L2 networks:  ptp: used to create an E-Line service between two data plane interfaces  data: used to create an E-LAN service with data plane interfaces  bridge_data: used to create an E-LAN service based on pre- provisioned linux bridges o No concept of subnet o Public vs private (tenant scope) ADMINISTRATIVE PRIMITIVE ORDINARY USE ORDINARY USE ORDINARY USE TO CREATE PUBLIC/SHARED NETWORKS
  • 19.
    Openvim: the VIMmodule (IV) Main characteristics • Ports mgmt o Ports are attached to networks (similarly to OpenStack) o 2 types of ports:  Instance-related ports: VM interfaces created and deleted as part of the VM life cycle  External ports: set explicitly by the network administrator in order to define connections to PNF or external networks physically attached to the Openflow switch • Image mgmt o Image uploading to the image repo must be done manually by the end user o Support of incremental images • Flavor mgmt o Openstack-like, but with new fields to indicate EPA requirements • VM instance mgmt o Besides traditional primitives (create, delete, list), allows actions over VMs (shutdown, start, pause, resume, rebuild, reboot) ORDINARY USE TO CREATE EXTERNAL PORTS ADMINISTRATIVE PRIMITIVE TYPICALLY USED BY OPENMANO MODULE TYPICALLY USED BY OPENMANO MODULE ORDINARY USE
  • 20.
    Openvim: the VIMmodule (V) Components VIM DB host_thread openflow_thread openvimd OpenFlow Controller FloodLight vim_schema utils vim_db httpserver OPENVIM Image storage Northbound API openvimd.py - Main program host_thread.py - Thread that interacts with the compute node through libvirt to manage VM instances - One thread per compute node httpserver.py - Thread that manage northbound API requests - Two threads, for common requests and for administrative ones vim_db.py - Module used to interact with the openvim DB - General table management and transactional-based writings vim_schema.py - Dictionary schemas used to validate API request content using jsonschema library openflow_thread.py - Interacts with an OpenFlow Floodligth controller to create dataplane connections
  • 21.
    Openvim: the VIMmodule (VI) Northbound API REST-based API, intentionally similar to Openstack API Example 1. Removing a flavor Request: DELETE /openvim/{tenant_id}/flavors/{flavor_id} Response: 200 OK, 400 Bad Request, … Example 2. Listing images Request: GET /openvim/{tenant_id}/images Response: 200 OK { "images": [ { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "path": /opt/image1.raw", "name": “image1"}, { "id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "path": "/opt/image2.qcow2", "name": “image2“} ] }
  • 22.
    Openvim: the VIMmodule (VII) Northbound API documentation URL: http://github.com/nfvlabs/openmano/raw/master/docs/openvim- api-0.6.pdf
  • 23.
    Openvim: the VIMmodule (VIII) Other details • openvimd.cfg -> configuration file o Mode of operation o IP addresses and ports where the HTTP servers is listening to API requests o OFC parameters o DB parameters • openvim client, Python-based $ openvim -h usage: openvim [-h] [--version] {config,image-list,image-create,image-delete,image-edit,vm-list,vm- create,vm-delete,vm-edit,vm-shutdown,vm-start,vm-rebuild,vm-reboot,vm-createImage,port- list,port-create,port-delete,port-edit,port-attach,port-detach,host-list,host-add,host- remove,host-edit,host-up,host-down,net-list,net-create,net-delete,net-edit,net-up,net- down,flavor-list,flavor-create,flavor-delete,flavor-edit,tenant-list,tenant- create,tenant-delete,tenant-edit,openflow-port-list,openflow-clear-all,openflow-net- reinstall,openflow-net-list} ... User program to interact with OPENVIM-SERVER (openvimd)
  • 24.
  • 25.
    Openmano: the NFVOmodule (I) Introduction openmano client openvim server openmano server openMANO openmano API openvim API CHARACTERISTICS • In spite of the name, it’s an NFVO • Simple VNFM role: simplified VNF instance lifecycle management (VNF instantiation and termination) • Hides complexity to the network engineer: o No compute nodes o No VMs o Just nodes and links • VNF catalogue • NS definitions • NS instance creation and termination (and associated VNF creation)
  • 26.
    Openmano: the NFVOmodule (II) Tenant and datacenter management • Tenant mgmt o Tenants delimit the property and scope of VNF and NS, and the actions over them (instantiation, termination) o Separate from openvim tenant space  Different programs with different databases • Datacenter mgmt o A new datacenter must be added in order to interact with a specific pool of resources. The datacenter is characterized by:  type: openvim (in the future, openstack)  URL of the VIM that manage that datacenter o Datacenters are not directly available to tenants o An NFVO tenant must be attached to a datacenter and a VIM tenant o Datacenter nets can be inherited as external networks to be used
  • 27.
    Openmano: the NFVOmodule (III) VNF concept and structure • VNF: SW-based network function that can be deployed on an NFV datacenter • VNF definition vs VNF instance  class vs object • VNF structure: VNFCs/VMs, internal-connections, external-connections Single-VM VNF Multi-VM VNF
  • 28.
    Openmano: the NFVOmodule (IV) VNF descriptor Name: unique name of the VNF Description External-connections: • External interfaces of that VNF that can be connected in an NS to other VNFs or networks • Properties: • name • type: mgmt/bridge/data • mapping to a VNFC interface Internal-connections: • It defines how VNFC/VMs are interconnected. This property is only required in case of VNFs consisting of several VMs • Properties: • name • type: mgmt/bridge/data • list of interconnected VNFC/VMs (and their interfaces) VNFC: • List of components or virtual machines this VNF is composed of.
  • 29.
    Openmano: the NFVOmodule (V) VNF descriptor (continuation) VNFC properties: • name • description • image path: • When a new VNF is added to the catalogue, new VM images are created in openvim for each VNFC based on this path • vcpus: number of virtual CPUs (traditional cloud requirement • ram: number of virtual CPUs (traditional cloud requirement • bridge-ifaces: virtio interfaces with no high I/O performance requirements. They will be attached to Linux bridges in the host. • numas: CPU, memory and interface requirements for high I/O performance • CPU type (cores, paired threads, threads), number and pinning • Memory (number of 1G hugepages) • Interface details: • Type: passthrough, VLAN-based SRIOV, MAC-based SRIOV • Bandwidth • Virtual PCI to assure appropriate identification at the VM • devices: additional devices can be included (disk, cdrom, etc.) in this section TRADITIONAL REQUIREMENTS EPA REQUIREMENTS
  • 30.
    Openmano: the NFVOmodule (VI) NS concept and structure • NS: topologies of VNFs and their interconnections • NS definition vs NS instance  class vs object • NS structure: VNFs, external networks, point-to-multipoint networks and connections Simple Complex
  • 31.
    Openmano: the NFVOmodule (VII) NS descriptor Name: unique name of the network scenario Description Topology: defines the nodes and their connections Nodes • Type  VNF (for a VNF)  network (for a internal/private scenario point-to-multipoint network). Point-to-point data plane networks can be omitted  external_network (for a datacenter network, previously created as external/public). • VNF model Type (only for VNF): must match a previosly created VNF • model (only for networks):  name of the network (in case of external/public datacenter network)  bridge_net (for control plane internal/private networks)  dataplane_net (for data plane internal/private networks) Connections: • name • list of nodes (VNFs and networks) that must be interconnected together.
  • 32.
    Openmano: the NFVOmodule (VIII) Components MANO DB openmanodhttpserver nfvo_db openmano_schemas utils nfvo vimconnector openvim OPENMANO Northbound API openmanod.py - Main program httpserver.py - Thread that manage northbound API requests nfvo.py - NFVO engine, implementing all the methods for the creation, deletion and management of vnfs, scenarios and instances nfvo_db.py - Module used to interact with the openmano DB openmano_schemas.py - Dictionary schemas used to validate API request and response content using jsonschema library vimconnector.py - Interacts with an openvim-based VIM through the openvim API
  • 33.
    Openmano: the NFVOmodule (IX) Northbound API • REST-based API • Not yet documented Example 1. Removing a VNF Request: DELETE /openmano/{tenant_id}/vnfs/{vnf_id} Response: 200 OK, … Example 2. Listing network scenarios Request: GET /openmano/{tenant_id}/scenarios Response: 200 OK { "scenarios": [ { "uuid": "ec1d744e-f56b-11e4-874f-52540032c4fa", "created_at": "2015-05-08T12:20:59", "description": "Simple network scenario consisting of a single VNF connected to an external network", "name": "simple", "public": false }, ] }
  • 34.
    Openmano: the NFVOmodule (X) Other details • openmanod.cfg -> configuration file o IP address and port where the HTTP server is listening to API requests o DB parameters o VNF repo folder where copies of the VNFD will be stored • openmano client, Python-based $ openmano -h usage: openmano [-h] [--version] {config,vnf-create,vnf-list,vnf-delete,scenario-create,scenario- list,scenario-delete,scenario-deploy,scenario-verify,instance-scenario-list,instance- scenario-delete,tenant-create,tenant-delete,tenant-list,tenant-edit,datacenter- edit,datacenter-create,datacenter-delete,datacenter-list,datacenter-attach,datacenter- detach,datacenter-net-edit,datacenter-net-update,datacenter-net-delete,datacenter-net- list} ... User program to interact with OPENMANO-SERVER (openmanod)
  • 35.
  • 36.
    Openmano-gui: the web-basedinterface (I) Relation to openmano Web browser (e.g. Chrome, Firefox) openmano server openMANO openmano API openmano-gui CHARACTERISTICS • Access to network scenario definitions and instances • Drag&drop scenario builder with access to the VNF catalogue • Actions over network scenario instances (stop, shutdown, delete, deploy) and over specific VNF instances inside an NS instance CONFIGURATION • config.php: configuration file
  • 37.
    Openmano-gui: the web-basedinterface (II) NS definitions and instances Button to access NS builder NS definition NS instance (currently running)
  • 38.
    Openmano-gui: the web-basedinterface (III) NS builder Catalogue of VNFs and external/public networks Drag & drop panel
  • 39.
    Openmano-gui: the NFVOmodule (V) Actions over NS instances Status of VNF instances (and their VM instances) Available actions
  • 40.
  • 41.
    OpenMANO addresses successfullynetwork creation, becoming a sound foundation for further automation VNF AND NS DESCRIPTORS MAKE NETWORK DESIGN SIMPLE EPA SUPPORT (NFVO & VIM) PROPER VARIETY OF L2 CONNECTIVITIES VNF ON-BOARDING DOES NOT REQUIRE FORMAL INTEGRATION • Abstract models that hide complexity to network engineer: just nodes and links interconnecting them • Allows to deploy for high performance • Passthrough, SR-IOV, Virtio • E-Line & E-LAN • Descriptor-based (openly available) VNF VNF VNF VNF VNF VNF E-Line E-LAN
  • 42.
    Current work areas ImprovedVNF life-cycle management Integration with ODL controller Multi-VIM support (EPA-ready Openstack)
  • 43.
    Want to knowmore about OpenMANO? Fresh ideas and enthusiastic contributors are always welcome! https://github.com/nfvlabs/openmano All info at: nfvlabs@tid.esQuestions/feedback/suggestions: More details in afternoon talk: OpenMANO: set up and usage
  • 45.
    E-Mail: gerardo.garciadeblas@telefonica.com Twitter: @garciadeblas COMMENTS/ QUESTIONS GitHub: https://github.com/nfvlabs/openmano E-Mail: nfvlabs@tid.es ABOUT OpenMANO