This chapter provides information about designing and onboarding network services, VNFs, and PNFs.
Design components are files that you create in Oracle Communications Design Studio. Network Service Orchestration uses different types of files that you create in Design Studio to describe the behavior of your network services, VNFs, and PNFs.
Descriptor files. The descriptor files describe the attributes of the VNF, PNF, and Network Service specifications.
See "About Descriptor Files" for more information about the descriptor files.
Technical actions files. The technical actions files describe the actions for the VNFs, PNFs, and network services in the VIM. There is one technical actions file for each network service, VNF, and PNF.
See "About Technical Actions Files" for more information about the technical actions files.
Configuration and template files. The configuration files contain the configuration and post-configuration details for the VNFs.
See "About VNF Configuration Files" for more information about the descriptor files.
Entity Specifications. In Design Studio, you create entity specifications that you use to create instances of VNFs and network services in Network Service Orchestration. You package the entity specifications into cartridges. You create one cartridge for each VNF, network service, and PNF. See "Designing Custom Network Services" for more information.
See Design Studio Help for information about creating entity specifications in Design Studio.
Custom extensions. See "Extending Network Service Orchestration" for information about implementing custom extensions.
Descriptor files contain metadata about network services, VNFs, and PNFs. Network Service Orchestration defines descriptors as Design Studio specifications and uses these specifications to manage the life cycles of network services and VNFs.
Descriptors describe the behavior of virtual network functions that are defined in the Network Service Orchestration cartridges. There is one descriptor file for each network service, VNF, and PNF.
Network Service descriptor files describe the deployment requirements, operational behavior, and policies required by network services based on them. You use one descriptor file for each network service.
When you instantiate, scale, or terminate a network service, Network Service Orchestration deploys, scales, and undeploys the constituent VNFs based on the parameters and policies specified in the descriptor file.
You use network service descriptor files for the following purposes:
Defining the networks by either creating them or by referencing existing networks and specifying network types. See "Describing Networks" for more information.
For each network, specifying the VNF connection points that the network service should use.
Specifying the network forwarding path for the network traffic. See "Describing Forwarding Graphs" for more information.
For each VNF in the network service, specifying parameters related to CPU utilization and when you want Network Service Orchestration to heal a VNF and scale the network service. See "Describing Deployment Flavors" for more information.
In the network service descriptor file, you define networks by creating them or by referencing existing networks and specifying their types. You represent networks as virtual links. You can create or reference any number of networks based on your service requirements. You can also specify the number of end points the networks can have.
The following text shows the parameters that you specify for a virtual link descriptor in a network service descriptor XML file:
<virtualLinkDescriptors> <virtualLinkDescriptor name="network_name" isReferenced="value_reference" isDHCPEnabled="value_DHCP" type="network_type"> <numberOfEndPoints>number_of_endpoints</numberOfEndPoints> <connectionPoints> <!-- The format is VNFD:ConnectionPoint --> <connectionPoint name="vnf_descriptor_name:connection_point_name" type="connection_point_type" order="connection_point_order" isExternal="value_external"> <extensions> <portSecurity enabled="value_port_security"/> <!-- port-level security groups --> <securityGroup name="name_security_group"/> <securityGroup name="name_security_group"/> <securityGroup name="name_security_group"/> </extensions> </connectionPoint> </connectionPoints> <extensions> <providerNetwork name="name_provider_network"/> <externalRouter name="name_external_router"/> </extensions> </virtualLinkDescriptor> </virtualLinkDescriptors>
Table 3-1 describes the parameters you specify for a virtual link descriptor in the network service descriptor XML file.
Table 3-1 Virtual Link Descriptor Parameters
Parameter | Description |
---|---|
network_name |
Specify a unique name of the network that you want to create or reference. |
value_reference |
Specify whether you want to create the network or reference an existing network in run-time. Specify true if you want to reference an existing network. Otherwise, specify false. If you reference an existing network, specify the networks using the following key in your network service descriptor properties file: vim_Id.network_service_descriptor.network_name See "Setting Network Service Descriptor Properties" for more information about setting parameters in the network service descriptor properties file. |
value_DHCP |
Specify whether the network you create or reference should support DHCP or not. Specify true if the network should support DHCP. Otherwise, specify false. |
network_type |
Specify the type of the network that you want to create or reference. For example, specify MANAGEMENT for the management network and DATA for the packet-in network. |
number_of_endpoints |
Specify the number of endpoints that the network provides. Network Service Orchestration determines the subnet prefix to be created within the network. |
vnf_descriptor_name:connection_point_name |
Specify the name of the VNF descriptor XML file and the name of the VNF connection point. |
connection_point_type |
Specify the type of the connection point. For example, specify IN or OUT. |
connection_point_order |
Specify the order of the connection point for the VNF. The order of the connection points is determined by the VNF vendor. |
value_external |
Specify whether this connection point requires access to external traffic or not. Specify true if this connection point requires access to external traffic to ensure that Network Service Orchestration allocates a floating IP address. |
value_port_security |
Specify whether ports should be created with security enabled or disabled. Specify true to enable security for the ports. Otherwise, specify false. By default, this field is set to false. |
name_security_group |
Specify the name of the security group. Security groups are configured in OpenStack. If the security requirements for each connection point in the VNF are different, define separate security groups for each security requirement and specify the security group at the port level. |
name_provider_network |
Specify the name of the external network that is configured in your VIM. Specify a value for this parameter if the isExternal parameter in the connectionPoint element is set to true. If you use multiple VIMs, add and specify multiple instances of the following parameter in your network service descriptor properties file: vim_Id.network_service_descriptor.name_provider_network For example, if you implement the Residential Gateway network service using OpenStack Mitaka, specify: OpenStackMitaka.ResidentialGateway_NSD.ext-net = publicNet |
name_external_router |
Specify the name of the router that is configured in your VIM and connects to the external network. Specify a value for this if the isExternal tag in the connectionPoint parameter is set to true. If you use multiple VIMs, add and specify multiple instances of the following parameter in your network service properties file: vim_Id.network_service_descriptor.name_external_router For example, if you implement the Residential Gateway network service using OpenStack Mitaka, specify: OpenStackMitaka.ResidentialGateway_NSD.AccessExternal = publicRouter |
The following text shows a virtual link descriptor element in the NPaaS_NSD.xml sample network service descriptor file:
<virtualLinkDescriptors>
<virtualLinkDescriptor name="Data_IN" type="DATA" isDHCPEnabled="false" isReferenced="false">
<numberOfEndPoints>20</numberOfEndPoints>
<connectionPoints>
<!-- The format is VNFD:ConnectionPoint -->
<connectionPoint name="Juniper_vSRX_VNFD:CP01" type="IN" order="2"/>
<connectionPoint name="Checkpoint_NG_FW_VNFD:CP01" type="IN" order="1"/>
<connectionPoint name="Oracle_VNS_VNFD:CP01" type="IN" order="3"/>
</connectionPoints>
</virtualLinkDescriptor>
</virtualLinkDescriptors>
The following text shows a virtual link descriptor element in the ResidentialGateway_NSD.xml sample network service descriptor file:
<virtualLinkDescriptor name="Data1" isReferenced="false" isDHCPEnabled="false" type="DATA"> <numberOfEndPoints>2</numberOfEndPoints> <connectionPoints> <!-- The format is VNFD:ConnectionPoint --> <connectionPoint name="Cisco_xRV_PNFD:CP02" order="2" type="OUT"/> <connectionPoint name="Juniper_vSRX_VNFD:CP02" order="2" type="IN" isExternal="true"> <extensions> <portSecurity enabled="true" /> <!-- port-level security groups --> <securityGroup name="open" /> </extensions> </connectionPoint> </connectionPoints> <!-- extensions is for FloatingIP Assignment--> <extensions> <providerNetwork name="ext-net" /> <externalRouter name="AccessExternal" /> </extensions> </virtualLinkDescriptor>
In the network service descriptor file, you also describe forwarding graphs by specifying the network forwarding path for the network traffic.
The following text shows the pattern in which you describe a forwarding graph in a network service descriptor file:
<forwardingGraphDescriptors> <forwardingGraphDescriptor name="name_forwarding_graph" default="default"> <networkForwardingPath> <vnfd name="name_vnf_descriptor"> <connectionPoints> <connectionPoint name="name_connection_point" type="type_connectionPoint"/> <connectionPoint name="name_connection_point" type="type_connectionPoint"/> </connectionPoints> </vnfd> </networkForwardingPath> </forwardingGraphDescriptor> </forwardingGraphDescriptors>
where:
name_forwarding_graph is the unique name of the forwarding graph.
default indicates if the network service should use this forwarding graph by default or not.
name_vnf_descriptor is the name of the VNF descriptor that you want to use with the network service.
name_connection_point is the name of the connection point defined in the VNF descriptor, that you want to use for the forwarding graph.
type_connectionPoint is the type of the connection point.
The following text shows a forwarding graph element in the NPaaS_NSD.xml sample network service descriptor file:
<forwardingGraphDescriptors> <forwardingGraphDescriptor name="Data" default="true"> <networkForwardingPath> <vnfd name="Checkpoint_NG_FW_VNFD"> <connectionPoints> <connectionPoint name="CP01" type="IN"/> <connectionPoint name="CP02" type="OUT"/> </connectionPoints> </vnfd> </networkForwardingPath> </forwardingGraphDescriptor> </forwardingGraphDescriptors>
In the network service descriptor file, you also describe deployment flavors where in you specify constituent VNFs and PNFs. You also define assurance parameters for various factors, such as CPU utilization of the virtual machine on which the VNFs are deployed. You also specify when you want to heal a VNF and scale the network service.
The following text shows the pattern in which you describe deployment flavors in a network service descriptor file:
<serviceDeploymentFlavors> <serviceDeploymentFlavor name="name_flavor"> <constituentPNFDs> <pnf> <pnfd name="name_PNFD" /> </pnf> </constituentPNFDs> <constituentVNFDs> <vnf> <vnfd name="name_VNFD"/> <assuranceParameters> <assuranceParameter name="name_assurance_parameter" action="action"> <id>Id</id> <value>value</value> <condition>condition</condition> </assuranceParameter> <assuranceParameter name="name_assurance_parameter" action="action"> <id>Id</id> <value>value</value> <condition>condition</condition> </assuranceParameter> </assuranceParameters> -<extensions> <!-- instance-level security groups --> <securityGroup name="name_security_group"/> <securityGroup name="name_security_group"/> </extensions> </vnf> </constituentVNFDs> </serviceDeploymentFlavor> </serviceDeploymentFlavors>
Table 3-2 describes the parameters you specify for a service deployment flavor in the network service descriptor XML file.
Table 3-2 Service Deployment Flavor Parameters
Parameter | Description |
---|---|
name_flavor |
Specify a unique name for the service deployment flavor. |
name_PNFD |
Specify the name of the PNF descriptor. |
name_VNFD |
Specify the name of the VNF descriptor. |
name_assurance_parameter |
Specify the name of the assurance parameter. For example specify Low CPU Utilization and High CPU Utilization to define actions for the CPU utilization parameter. |
action |
Specify the action that you want Network Service Orchestration to perform on the VNF. For example, specify heal for the low CPU utilization assurance parameter and scale for the high CPU utilization assurance parameter. |
Id |
Specify the Id of the assurance parameter. |
value |
Specify the threshold value for the assurance parameter. |
condition |
Specify the condition based on which the defined action, either heal or scale, should be performed. |
name_security_group |
Specify the name of the security group. Security groups are configured in OpenStack. If security groups are not specified at the connection point level, this parameter enables security groups at the VNF level, provided that the isEnabled parameter is set to true at the connection point level and the security group is specified. If the security requirements are common for all the connection points of a VNF, define a common security group and use this group. |
The following text shows a service deployment flavor element in the NPaaS_NSD.xml sample network service descriptor file:
<serviceDeploymentFlavors> <serviceDeploymentFlavor name="Checkpoint"> <constituentVNFDs> <vnf> <vnfd name="Checkpoint_NG_FW_VNFD"/> <assuranceParameters> <assuranceParameter name="Low CPU Utilization" action="heal"> <id>cpu_util</id> <value>0.0</value> <condition>eq</condition> </assuranceParameter> <assuranceParameter name="High CPU Utilization" action="scale"> <id>cpu_util</id> <value>80.0</value> <condition>gt</condition> </assuranceParameter> </assuranceParameters> </vnf> </constituentVNFDs> </serviceDeploymentFlavor> </serviceDeploymentFlavors>
The following text shows a service deployment flavor element in the ResidentialGateway_NSD.xml sample network service descriptor file that includes a PNF:
<serviceDeploymentFlavors> <serviceDeploymentFlavor name="RGW"> <constituentPNFDs> <pnf> <pnfd name="Cisco_xRV_PNFD"/> </pnf> </constituentPNFDs> <constituentVNFDs> <vnf> <vnfd name="Juniper_vSRX_VNFD"/> <assuranceParameters> <assuranceParameter name="Low CPU Utilization" action="heal"> <id>cpu_util</id> <value>0.0</value> <condition>eq</condition> </assuranceParameter> <assuranceParameter name="High CPU Utilization" action="scale"> <id>cpu_util</id> <value>80.0</value> <condition>gt</condition> </assuranceParameter> </assuranceParameters> -<extensions> <!-- instance-level security groups --> <securityGroup name="ALL"/> <securityGroup name="default"/> </extensions> </vnf> </constituentVNFDs> </serviceDeploymentFlavor> </serviceDeploymentFlavors>
VNF descriptor files describe the deployment requirements, operational behavior, and policies required by VNFs that are based on them.
Network Service Orchestration includes the following sample VNF descriptor files:
Juniper_vSRX_VNFD.xml. This is the descriptor file for the Juniper vSRX firewall VNF.
Checkpoint_NG_FW_VNFD.xml. This is the descriptor file for the Checkpoint NG firewall VNF.
In the VNF descriptor file, you specify:
Deployment flavor parameters
Connection points for the VNF
The software version of the VNF
The following text shows the pattern in which you describe a VNF in the VNF descriptor file:
<vnfd name="name_VNFD"> <deploymentFlavors> <deploymentFlavor name="name_deploymentFlavor" disk="diskSpace" memory="memory" vcpus="vcpus"/> <deploymentFlavor name="name_deploymentFlavor" disk="diskSpace" memory="memory" vcpus="vcpus"/> </deploymentFlavors> <connectionPoints> <connectionPoint name="name_ConnectionPoint"/> <connectionPoint name="name_ConnectionPoint"/> <connectionPoint name="name_ConnectionPoint"/> </connectionPoints> <defaultDeploymentFlavor>name_default_deploymentFlavor</defaultDeploymentFlavor> <versions> <version imagePasswd="" imageUserName="" imageName="imageName" number="versionNumber"/> <version imagePasswd="" imageUserName="" imageName="imageName" number="versionNumber"/> </versions> </vnfd>
where:
name_VNFD is the name of the VNF Descriptor.
name_deploymentFlavor is the unique name for the VNF deployment flavor.
diskSpace is the disk space that you want to allocate for the VNF. Specify the disk space in GB.
memory is the memory you want to allocate for the VNF. Specify the memory in GB.
vcpus is the number of virtual CPUs that you want to allocate for the VNF.
name_ConnectionPoint is the unique name of the connection point.
name_default_deploymentFlavor is the name of the deployment flavor that you want to use for the VNF by default.
imageName is the name of the VNF image.
versionNumber is the unique version number for the VNF image.
The following text shows the elements in the Juniper_vSRX_VNFD.xml sample VNF descriptor file:
<vnfd name="Juniper_vSRX_VNFD"> <deploymentFlavors> <deploymentFlavor name="vsrx.medium" disk="20" memory="4" vcpus="2"/> <deploymentFlavor name="m1.medium" disk="40" memory="4" vcpus="2"/> </deploymentFlavors> <connectionPoints> <connectionPoint name="CP01"/> <connectionPoint name="CP02"/> <connectionPoint name="CP03"/> </connectionPoints> <defaultDeploymentFlavor>vsrx.medium</defaultDeploymentFlavor> <versions> <version imagePasswd="" imageUserName="" imageName="vsrx-12.1X47-D20.7-npaas-v0.3" number="1.0"/> <version imagePasswd="" imageUserName="" imageName="vsrx-12.1X47-D20.7-rgw-v0.3" number="2.0"/> </versions> </vnfd>
PNF descriptor files describe the deployment requirements, operational behavior, and policies required by PNFs that are based on them.
In the PNF descriptor file, you specify:
Vendor details
Connection points for the PNF
The software version of the PNF
The following text shows the pattern in which you describe a PNF in the PNF descriptor file:
<pnfd vendor="name_PNF_vendor" name="name_PNFD"> <connectionPoints> <connectionPoint name="name_ConnectionPoint"/> <connectionPoint name="name_ConnectionPoint"/> <connectionPoint name="name_ConnectionPoint"/> </connectionPoints> <versions> <version number="version"/> </versions> </pnfd>
where:
name_PNF_vendor is the name of the PNF vendor.
name_PNFD is the name of the PNF descriptor.
name_ConnectionPoint is the unique name for the connection point.
version is the unique version number of the PNF.
Network Service Orchestration includes the following sample PNF descriptor file:
Cisco_xRV_PNFD.xml. This descriptor file can be used for the Cisco xRV router PNF.
The following text shows the elements in the Cisco_xRV_PNFD.xml sample PNF descriptor file:
<pnfd vendor="CISCO" name="Cisco_xRV_PNFD"> <connectionPoints> <connectionPoint name="CP01"/> <connectionPoint name="CP02"/> <connectionPoint name="CP03"/> </connectionPoints> <versions> <version number="1.0"/> </versions> </pnfd>
In Design Studio, you create a descriptor file for each Network Service specification and VNF Service specification.
To create a descriptor file:
In Design Studio, import all the Network Service Orchestration cartridges. See "Setting Up Design Studio for Extending Network Service Orchestration" for more information about importing the cartridges into Design Studio.
Switch to the Navigator view.
In the root directory of the cartridge project, create the following folder structure:
model/content/product_home/config
Right-click on the config folder and create an XML file with the name ServiceSpecificationName.xml for a network service, LogicalDeviceSpecificationName.xml for a VNF, and LogicalDeviceSpecificationName.xml for a PNF.
where:
ServiceSpecificationName is the name of the service specification
LogicalDeviceSpecificationName is the name of the logical device specification, which represents a VNF or a PNF.
Copy the sample content from the sample cartridge project to the XML file and modify it according to your service requirements.
Technical actions files describe the actions for the VNFs, PNFs, and network services in a VIM. There is one technical actions file for each network service, VNF, and PNF.
In the technical actions file, for each technical action, you define the following elements:
action: This element declares a technical action, its signature (which contains the name and type of each parameter), and the type of its subject and target.
match: This element declares configuration differences that match an XPath expression.
generator: This element defines all the bindings of the configuration to the parameters, subject, and target of the action to be generated.
The following example shows the elements in the technical actions file:
<technicalActionCalculator xmlns="http://xmlns.oracle.com/communications/inventory/actioncalculator" xmlns:invactcalc="http://xmlns.oracle.com/communications/inventory/actioncalculator" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/communications/inventory/actioncalculator schemas/TechnicalActionCalculator.xsd"> <invactcalc:action> <name>DEPLOY_VNF</name> <actionCode>DEPLOY_VNF</actionCode> <subject> <class>LogicalDevice</class> </subject> <target> <class>LogicalDevice</class> </target> <parameter> <name>serviceID</name> <type>string</type> </parameter> <parameter> <name>vnfID</name> <type>string</type> </parameter> <parameter> <name>vnfName</name> <type>string</type> </parameter> <parameter> <name>vnfdName</name> <type>string</type> </parameter> <parameter> <name>imageName</name> <type>string</type> </parameter> </invactcalc:action> <invactcalc:match> <invactcalc:diff> <invactcalc:path>/root/after/vnf/Assignment[@State='PENDING_ASSIGN' and /root/service[state!='PENDING_DISCONNECT']]/..</invactcalc:path> </invactcalc:diff> <invactcalc:action>DEPLOY_VNF</invactcalc:action> <invactcalc:anchor>.</invactcalc:anchor> </invactcalc:match> <invactcalc:generator> <invactcalc:action>DEPLOY_VNF</invactcalc:action> <invactcalc:condition>/root/after/vnf/Assignment[@State='PENDING_ASSIGN']</invactcalc:condition> <subject>.</subject> <target>.</target> <binding> <parameter>serviceID</parameter> <path>/root/service/id</path> </binding> <binding> <parameter>vnfID</parameter> <path>Assignment/id</path> </binding> <binding> <parameter>vnfName</parameter> <path>Assignment/name</path> </binding> <binding> <parameter>vnfdName</parameter> <path>Assignment/specification</path> </binding> <binding> <parameter>imageName</parameter> <path>Assignment/imageName</path> </binding> </invactcalc:generator> </technicalActionCalculator>
In Design Studio, you create a technical actions file for each Network Service specification, a VNF Service specification, and a PNF specification.
To create a technical actions file:
In Design Studio, switch to the Navigator view.
In the root directory of the cartridge project, create the following folder structure:
model/content/product_home/config
Right-click on the config folder and create an XML file with the name ServiceSpecificationName_TechnicalActions.xml, where ServiceSpecificationName is the name of the service specification.
Copy the sample content from the sample cartridge project to the XML file and modify it according to your service requirements.
Depending on the functionality that they deliver, some VNFs in a network service may require configuration after they are deployed. After a VNF is deployed, you can configure the VNF based on its configuration requirements.
Note:
Post-deployment configuration of VNFs is not always required.To configure a VNF, Network Service Orchestration requires the following configuration files to be created:
VNFD_NameTemplate.conf
This is a VNF-specific configuration template in which you specify the placeholder fields for instance-specific parameters.
VNFD_NameConfig.xml
This is a configuration file in which you specify the VNF instance-specific configuration parameter values as name-value pairs.
Network Service Orchestration generates the VNFD_Name.conf configuration file based on the VNFD_NameTemplate.conf file and the VNFD_NameConfig.xml file.
Network Service Orchestration reads all the name-value pairs in the VNFD_NameConfig.xml file and replaces the placeholder fields in the VNFD_NameTemplate.conf file and generates the VNFD_Name.conf file.
The following text shows a sample configuration template for the Juniper vSRX VNF in the Juniper_vSRX_VNFDTemplate.conf configuration file:
<rpc> <edit-config> <target> <candidate/> </target> <config> <configuration> <security> <utm> <custom-objects> <url-pattern> <name>bad-sites</name> <value>{{site-name}}</value> </url-pattern> </custom-objects> </utm> </security> </configuration> </config> </edit-config> </rpc>
The following example shows a sample configuration for the Juniper vSRX VNF in the Juniper_vSRX_VNFDConfig.xml configuration file:
<vnfConfiguration> <config> <param> <name>site-name</name> <value>www.example.com</value> </param> <sbiToPushConfiguration> <interface>netconf</interface> <interface-script></interface-script> </sbiToPushConfiguration> <action>null</action> </config> </vnfConfiguration>
You define and specify properties for your network service in the UIM_Home/config/network_service_descriptor.properties file, where network_service_descriptor is the name of your network service descriptor. You create one properties file for each network service that you want to create and implement.
Table 3-3 describes the parameters that you specify for a network service.
Table 3-3 Network Service Descriptor Parameters
Parameter | Description |
---|---|
network_service_descriptor.default.dataCenter |
Used to specify the default data center if you use multiple VIMs. Otherwise, leave blank. network_service_descriptor indicates the name of the network service descriptor. For example, NPaaS_NSD. |
VIM_Id.network_service_descriptor.VLD_Name |
Used to specify the name of the management network. In the properties files of the samples, by default, the VIM ID is OpenStack. The management network is the VLD Name that is specified in the NPaaS_NSD.xml file. If you use multiple VIMs, add another entry of the same parameter and specify the VIM ID and the management network. Add multiple instances of this parameter for specifying more VLDs. |
VIM_Id.network_service_descriptor.Data_IN |
Used to specify the VIM ID and the name of the data-in network. By default, the VIM ID is OpenStack. If you use multiple VIMs, add another entry of the same parameter and specify the VIM ID and the data-in network. |
VIM_Id.network_service_descriptor.Data_OUT |
Used to specify the VIM ID and the name of the data-out network. By default, the VIM ID is OpenStack. If you use multiple VIMs, add another entry of the same parameter and specify the VIM ID and the data-out network. |
(Optional) sdnController.network_service_descriptor |
Used to specify an implementation class for the SDN controller interface. The default implementation class is com.oracle.communications.inventory.nso.nfvi.sdn.ODLManager. |
(Optional) network_service.ovs.pktInToOVSPort |
Used to specify the Open vSwitch port number of the packet-in network. |
(Optional) network_service.ovs.pktOutToOVSPort |
Used to specify the Open vSwitch port number of the packet-out network. |
(Optional) network_service.ovs.custNetToOVSPort |
Used to specify the Open vSwitch port number of the customer-side network. |
(Optional) network_service.ovs.internetToOVSPort |
Used to specify the Open vSwitch port number of the internet-side network. |
(Optional) npaas.ovs.bridge_id |
Specify the bridge ID for the Open VSwitch and prefix it with openflow. For example, openflow:OpenFlow_ID, where OpenFlow_ID is the OpenFlow ID. To retrieve the OpenFlow ID, in OpenDaylight call the following OpenDaylight REST API: http://odlIPaddress:port/restconf/operational/opendaylight-inventory:nodes/ where odlIPaddress is the IP address and port is the port number of the OpenDaylight virtual machine. |
Network Service Orchestration provides properties files for the following sample network services:
UIM_Home/config/NPaaS_NSD.properties. This properties file defines the properties for the NPaaS sample network service.
UIM_Home/config/ResidentialGateway_NSD.properties. This properties file defines the properties for the Residential Gateway sample network service.
Topology and Orchestration Specification for Cloud Applications (TOSCA) is an OASIS standard language to describe the topology of cloud-based services. TOSCA provides specifications for defining NFV descriptors.
For more information about TOSCA, see the standards section on the OASIS web site: https://www.oasis-open.org/standards#toscav1.0
Network Service Orchestration supports onboarding of VNFs using TOSCA VNF descriptor templates that are in YAML format.
To onboard VNFs using TOSCA VNF descriptor templates, you import the TOSCA VNF descriptor templates that are in YAML format into Design Studio. When you import a TOSCA VNF descriptor template, Network Service Orchestration processes the YAML file that contains the VNF structural and topology details (connection points and connectivity requirements) and creates a VNF cartridge project with the required UIM entity specifications (such as Logical Device, Service, and Service Configuration specifications), assigned or referenced resource specifications, and characteristic specifications.
Before you import the TOSCA VNF descriptor templates into Design Studio, do the following:
Install Python 3.5.1. See "Installing Python" for instructions.
Set the TOSCA_TRANSLATOR_HOME environment variable to UIM_SDK/NSO tools/ToscaTranslator, where the OracleCommsToscaTranslator.pyz TOSCA translator file is available.
Note:
If your operating system does not consider an environment variable defined with a blank space in the directory names, you can move the OracleCommsToscaTranslator.pyz TOSCA translator file to any location and provide the path in the TOSCA_TRANSLATOR_HOME environment variable.If your Design Studio workspace is already open, close and reopen the workspace.
Import the required UIM base cartridges into Design Studio.
See "Setting Up Design Studio for Extending Network Service Orchestration" for information about the required UIM base cartridges.
The following text shows the TOSCA VNF descriptor template in YAML format for a sample firewall VNF. This sample shows the supported properties.
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 description: firewall metadata: template_name: Firewall_VNF topology_template: node_templates: Firewall_VNF: type: tosca.nodes.nfv.VNF properties: id: Firewall_Id vendor: Firewall_VNF_Vendor version: 1.0 requirements: Firewall_VDU: type: tosca.nodes.nfv.VDU artifacts: VM_image: Firewall-vnf-image-v1 capabilities: host: properties: num_cpus: 2 mem_size: 4 GB disk_size: 20 GB CP1: type: tosca.nodes.nfv.CP properties: type: vPort requirements: - virtualLink: mgmt-net - virtualBinding: Firewall_VDU CP2: type: tosca.nodes.nfv.CP properties: type: vPort requirements: - virtualLink: pkt-in - virtualBinding: Firewall_VDU CP3: type: tosca.nodes.nfv.CP properties: type: vPort requirements: - virtualLink: pkt-out - virtualBinding: Firewall_VDU mgmt-net: type: tosca.nodes.nfv.VL properties: vendor: <Vendor_mgmt-net> pkt-in: type: tosca.nodes.nfv.VL properties: vendor: <Vendor_pkt-in> pkt-out: type: tosca.nodes.nfv.VL properties: vendor: <Vendor_pkt-out>
Figure 3-1 depicts the TOSCA VNF Template to the VNF virtual machine mapping.
In the illustration, the Firewall_VNF VNF comprises one Virtual Deployment Unit (VDU) that is connected to three virtual links. The VDU has three connection points: CP1 (connection point 1) is connected to Mgmt-net (management network), CP2 (connection point 2) is connected to Pkt-in (packet-in network), and CP3 (connection point 3) is connected to Pkt-out (packet-out network). The networks are defined in the network service descriptor.
To install python:
Download and unzip UIM_SDK.zip.
Navigate to the UIM_SDK\NSO tools\ToscaTranslator directory and unzip the OracleCommsToscaTranslatorEnvSetup.zip file.
The unzipped OracleCommsToscaTranslatorEnvSetup directory contains different directories for Windows and Linux operating systems.
Run the following command:
Note:
Before you run the commands, ensure that you have a working internet connection.For Windows machine, launch command prompt and run the following command as administrator:
install.bat
If you use proxy and a target directory, run the following command:
install.bat -proxy="www-proxy.example.com:port" -targetdir="C:\python35"
where:
www-proxy.example.com:port is the proxy
C:\python35 is the target directory of Python
See Table 3-4 for details about the command line argument options.
For Linux machine, from terminal, run the following command as a pseudo user or with root permission:
install.sh
The installation script installs python and the required libraries on the machine.
Table 3-4 describes the command line arguments.
To import the TOSCA VNF template into Design Studio:
In Design Studio, from the Studio menu, select Show Design Perspective.
Click the Studio Projects tab.
The Studio Projects view appears.
Right-click in the Studio Projects view and select Import and then select Import VNFD TOSCA Template.
The Import VNFD TOSCA Template dialog box appears.
Click Browse and select the TOSCA VNF descriptor file in YAML format.
Design Studio creates the VNF cartridge project with the required specifications.
After the VNF cartridge project is generated, to use this VNF cartridge with a network service, make appropriate changes in your network service cartridge project. For more information about working with network service cartridges, see "Designing Custom Network Services".
UIM uses tags to differentiate between inventory entities and entities used by Network Service Orchestration. You apply these tags to Network Service Orchestration specifications in Design Studio.
When you tag specifications with Network Service Orchestration tags, UIM filters the entities based on the tags and lists and displays only the relevant entities in Network Service Orchestration pages.
The tags for Network Service Orchestration specifications are included in the OracleComms_NSO_BaseTags cartridge. See ” NSO Base Tags Cartridge” in UIM Cartridge Guide for more information.
For instructions about tagging specifications, see Design Studio Help.
Table 3-5 lists and describes the tags for the Network Service Orchestration specifications.
Table 3-5 Network Service Orchestration Specifications and Tags
Tag | Specification Type | Description |
---|---|---|
EMS |
Custom Object |
Tags a Custom Object specification as an EMS specification. |
Endpoint |
Custom Object |
Tags a Custom Object specification as an Endpoint specification. |
Network Service |
Service |
Tags a Service specification as a Network Service Orchestration Network Service specification. |
Orchestration Request |
Business Interaction |
Tags a Business Interaction specification as an Orchestration Request specification. |
PNF |
|
Tags a Service specification as a PNF Service specification. Tags a Logical Device specification as a PNF specification. |
VNF |
|
Tags a Service specification as a VNF Service specification. Tags a Logical Device specification as a VNF device specification. |
You can use Design Studio to design and implement custom network services based on your business requirements. Designing a network service requires designing the service itself as well as the VNFs and PNFs it uses.
In Design Studio, you create a cartridge project for each network service, VNF, and PNF that you design. These cartridge projects include specifications and other artifacts. You compile the cartridge projects into cartridges for deployment into UIM.
To work properly with Network Service Orchestration, the specifications must include certain characteristics, relationships, and rulesets. See the following sections for more information:
For each VNF that you want to use with a network service, create a cartridge project in Design Studio. In each VNF cartridge project, do the following:
Create the following UIM entity specifications:
A Logical Device specification that represents the VNF. See "Logical Device Specification" for more information about the logical device specification.
A Service specification that represents the VNF. See "Service Specification" for more information.
A Service Configuration specification for the VNF. See "Service Configuration Specification" for more information
A Capability service for the VNF service. See "Capability Service".
A Service Configuration specification for the Capability service. See "Capability Service Configuration Specification".
Create a technical actions file for the VNF Service specification. See "Creating a Technical Actions File" for more information.
Create a VNF descriptor file for the VNF Service specification. See "Creating a Descriptor File" for more information.
Create a configuration file for the VNF, if the VNF requires configuration. See "About VNF Configuration Files" for more information.
Create a post-configuration template configuration file for the VNF. See "About VNF Configuration Files" for more information.
Create a template file for the VNF. See "About VNF Configuration Files" for more information.
Create custom code for extension. See "Extending Network Service Orchestration" for more information.
Create a Logical Device specification to represent the VNF. This specification must include the characteristics listed in Table 3-6. These characteristics are provided in the OracleComms_NSO_BaseCartridge cartridge. You can optionally define and include additional characteristics.
See ” Working with Characteristics” in UIM Concepts and Design Studio Help for more information about characteristics.
Table 3-6 Logical Device Specification Characteristics
Characteristic | Type | Description |
---|---|---|
availabilityZoneName |
String |
The name of the availability zone where the VNF gets instantiated. |
dataCenterName |
String |
The name of the data center where the VNF gets instantiated. |
deploymentFlavor |
String |
The deployment flavor used to deploy the VNF. |
externalID |
String |
The VNF ID. |
host |
String |
The host ID where VNF is instantiated. |
imageName |
String |
The name of the VNF image for instantiate. |
version |
String |
The VNF version. |
securityGroups |
String |
The security groups for the VNF. |
There are no rulesets required for the VNF Logical Device specification. You can create custom rulesets to extend the default capabilities, however.
A VNF Logical Device specification must include the specification relationships listed in Table 3-7.
Table 3-7 Logical Device Specification Relationships
Specification | Name | Description |
---|---|---|
DeviceInterface |
CPD |
Multiplicity is from 0 to 100. This specification is available in the OracleComms_NSO_BaseCartridge cartridge. |
ServiceSpecification |
user created |
Set this to the name of the VNF Service specification that you design. |
Associate the VNF tag to the VNF Logical Device specification to ensure that UIM correctly handles entities based on this specification. The VNF tag is provided in the OracleComms_NSO_BaseTags cartridge. See "Tagging Network Service Orchestration Specifications" for more information.
Create a Service specification to represent the VNF service. No characteristics or rulesets are required, but you can optionally add them to extend the default capabilities.
Figure 3-2 illustrates the VNF service model.
A VNF Service specification must include the specification relationships listed in Table 3-8.
Table 3-8 VNF Service Specification Relationships
Specification | Name | Description |
---|---|---|
ServiceSpecification |
user created |
The associated capability service specification, used to configure capabilities. |
ServiceConfigurationSpecification |
user created |
The associated service configuration specification. |
Apply the VNF tag to the VNF Service specification to ensure that UIM correctly handles entities based on this specification. The VNF tag is provided in the OracleComms_NSO_BaseTags cartridge. See "Tagging Network Service Orchestration Specifications" for more information.
Create a Service Configuration specification to accompany the VNF Service specification. The Service Configuration specification must include the configuration items listed in Table 3-9.
Table 3-9 VNF Service Configuration Items
Name | Parent Item | Multiplicity | Characteristics |
---|---|---|---|
vnf |
null |
Required |
None |
ConnectionPoint |
vnf |
1 to 100 |
|
port |
ConnectionPoint |
Required |
None |
network |
ConnectionPoint |
Required |
isDhcpEnabled |
capabilities |
vnf |
Optional. 0 to 1. |
None |
Define the specification options for the configuration items as shown in Table 3-10.
Table 3-10 VNF Service Configuration Specification Options
Item | Item Option Type | Specification | Specification Type |
---|---|---|---|
vnf |
Assignment |
VNF |
Logical Device specification |
ConnectionPoint |
Reference |
CPD |
DeviceInterface specification |
port |
Reference |
IPv4Address |
IPv4Address specification |
network |
Reference |
IPv4Subnet |
IPv4Subnet specification |
capabilities |
Assignment |
VNF Capability Service |
Service specification |
Associate the following rulesets with the Service Configuration specification. These rulesets are included in the OracleComms_NSO_BaseCartridge cartridge:
IssueVNFServiceConfig_NSOBaseRulesetExtPt
AutomateVNFServiceConfig_NSOBaseRulesetExtPt
Cancel_VNFServiceConfigRulesetExtPt
CompleteVNFServiceConfig_NSOBaseRulesetExtPt
Create a capability service to configure the VNF Service capabilities. No characteristics or rulesets are required, but you can optionally add them to extend the default capabilities.
Figure 3-3 shows how a VNF capability service is modeled.
The Capability service must include the specification relationships listed in Table 3-11.
Create a Service Configuration specification to accompany the Capability Service specification.
Associate the following rulesets with the Capability Service configuration specification. These rulesets are included in the OracleComms_NSO_BaseCartridge cartridge.
AutomateVNFCapabilityServiceConfig_NSOBaseRulesetExtPt
IssueVNFCapabilityServiceConfig_NSOBaseRulesetExtPt
For each PNF that you want to use with a network service, create a cartridge project in Design Studio. In each PNF cartridge project, do the following:
Create the following UIM entity specifications:
A Logical Device specification that represents the PNF. See "Logical Device Specification".
A Service specification that represents the PNF service. See "Service Specification".
A Service Configuration specification for the PNF service. See "Service Configuration Specification".
Create a technical actions file for the PNF Service specification. See "Creating a Technical Actions File" for more information.
Create a network service descriptor file for the Network Service specification. See "Creating a Descriptor File" for more information.
Create custom code for extension. See "Extending Network Service Orchestration" for more information.
Create a Logical Device specification to represent the PNF. This specification must include the characteristics listed in Table 3-12. These characteristics are provided in the OracleComms_NSO_BaseCartridge cartridge. You can optionally define and include additional characteristics. See ” Working with Characteristics” in UIM Concepts and Design Studio Help for more information about characteristics.
Table 3-12 PNF Logical Device Specification Characteristics
Characteristic | Type | Description |
---|---|---|
ipAddress |
String |
The IP address of the PNF. |
password |
String |
The password of the PNF. |
username |
String |
The username of the PNF. |
sshkey |
String |
The ssh key for the PNF. This characteristic is available in the PNF sample cartridge. |
sslEnabled |
Boolean |
Indicates whether SSL is enabled for the PNF or not. |
Associate the following rulesets with the PNF Logical Device specification. These rulesets are included in the OracleComms_NSO_BaseCartridge cartridge.
CreatePNF_Ruleset . This ruleset validates the create PNF request.
UpdatePNF_Ruleset . This ruleset validates the update PNF request.
CreateEMS_Ruleset . This ruleset validates the create EMS request.
UpdateEMS_Ruleset . This ruleset validates the update EMS request.
A PNF Logical Device specification must include the specification relationships listed in Table 3-13.
Table 3-13 PNF Logical Device Specification Relationships
Specification | Name | Description |
---|---|---|
DeviceInterfaceSpecification |
CPD |
Multiplicity is from 0 to 100. This specification is available in the OracleComms_NSO_BaseCartridge cartridge. |
ServiceSpecification |
user created |
Set this to the name of the PNF Service specification that you design. |
Apply the following tags to the PNF Logical Device specification to ensure that UIM correctly handles entities based on this specification. These tags are provided in the OracleComms_NSO_BaseTags cartridge.
PNF
EMS
See "Tagging Network Service Orchestration Specifications" for more information.
Create a Service specification to represent the PNF service. No characteristics or rulesets are required, but you can optionally add them to extend the default capabilities.
Figure 3-4 shows how a PNF service is modeled.
A PNF Service specification must include the specification relationships listed in Table 3-14.
Table 3-14 PNF Service Specification Relationships
Specification | Name | Description |
---|---|---|
ServiceConfigurationSpecification |
Cisco_xRV_Service_Config |
The associated service configuration specification. |
Apply the PNF tag to the PNF Service specification to ensure that UIM correctly handles entities based on this specification. The PNF tag is provided in the OracleComms_NSO_BaseTags cartridge. See "Tagging Network Service Orchestration Specifications" for more information.
Create a Service Configuration specification to accompany the PNF Service specification. The Service Configuration specification must include the configuration items listed in Table 3-15.
Table 3-15 PNF Service Configuration Items
Item | Parent Item | Multiplicity | Characteristics |
---|---|---|---|
pnf |
null |
Required |
None |
ConnectionPoint |
pnf |
1 to 100 |
None |
port |
ConnectionPoint |
Required |
None |
Define the specification options for the configuration items as shown in Table 3-16.
Table 3-16 PNF Service Configuration Specification Options
Item | Item Option Type | Specification |
---|---|---|
pnf |
Assignment |
Logical Device |
ConnectionPoint |
Reference |
DeviceInterface |
port |
Reference |
IPv4Address |
Associate the following rulesets with the Service Configuration Version specification. These rulesets are included in the OracleComms_NSO_BaseCartridge cartridge.
IssuePNFServiceConfig_NSOBaseRulesetExtPt
AutomatePNFServiceConfig_NSOBaseRulesetExtPt
Cancel_PNFServiceConfigRulesetExtPt
CompletePNFServiceConfig_NSOBaseRulesetExtPt
For each network service, create a cartridge project in Design Studio. In the cartridge project for the network service, do the following:
Create the following UIM entity specifications:
A Service specification to represent the network service. See "Network Service Specification".
A Service Configuration specification to accompany the network service specification. See "Network Service Configuration Specification".
Create a technical actions file for the Network Service specification. See "Creating a Technical Actions File" for more information.
Create a network service descriptor file for the Network Service specification. See "Creating a Descriptor File" for more information.
Create a custom properties file for the Network Service specification. See "Setting Network Service Descriptor Properties" for more information.
Create custom code for extension. See "Extending Network Service Orchestration" for more information.
Create a Network Service specification to represent the network service.
Figure 3-5 illustrates the network service model.
The Network Service specification must include the characteristics listed in Table 3-17. These characteristics are provided in the OracleComms_NSO_BaseCartridge cartridge.
Table 3-17 Network Service Specification Characteristics
Characteristic | Type | Description |
---|---|---|
dataCenterName |
String |
The name of the data center. |
flavorName |
String |
The name of the service flavor. |
serverGroup |
String |
The name of the server group. |
vimId |
String |
The unique identifier of VIM. |
The Network Service specification does not require any rulesets, but you can create custom rulesets to extend the default capabilities.
The Network Service specification must include the specification relationships listed in Table 3-18.
Table 3-18 Network Service Specification Relationships
Specification | Name | Description |
---|---|---|
ServiceConfigurationSpecification |
user created |
This is the associated service configuration specification. |
Apply the NetworkService tag to the Network Service specification to ensure that UIM correctly handles entities based on this specification. This tag is provided in the OracleComms_NSO_BaseTags cartridge. See "Tagging Network Service Orchestration Specifications" for more information.
Create a Service Configuration specification to accompany the Network Service specification.
The Service Configuration specification must include the configuration items listed in Table 3-19.
Table 3-19 Network Service Configuration Items
Item | Parent Item | Multiplicity | Characteristics |
---|---|---|---|
virtualLinks |
null |
Required |
None |
virtualLink |
virtualLinks |
0-unbounded |
isReferencedByNSO |
vnfs |
null |
Required |
None |
vnf |
vnfs |
0 to unbounded |
None |
vnfService |
vnf |
Required |
None |
pnfs |
null |
Optional |
None |
pnf |
pnfs |
0 to unbounded |
None |
pnfService |
pnf |
Required |
None |
endPoints |
null |
Required |
None |
endPoint |
endPoints |
0 to unbounded |
flowPathName |
Define the specification options for the configuration items as shown in Table 3-20.
Table 3-20 Network Service Configuration Specification Options
Item | Item Option Type | Specification | Specification Type |
---|---|---|---|
virtualLinks |
None |
None |
None |
virtualLink |
Reference |
IPv4Subnet |
IPv4Subnet specification |
vnfs |
None |
None |
None |
vnf |
Reference |
VNF Logical Device |
Logical Device specification |
vnfService |
Assignment |
VNF Service |
Service specification |
pnfs |
None |
None |
None |
pnf |
Reference |
PNF Logical Device |
Logical Device specification |
pnfService |
Assignment |
PNF Service |
Service specification |
endPoints |
None |
None |
None |
endPoint |
Reference |
NSSubscriber |
CustomObject specification |
Associate the following rulesets with the Service Configuration Version specification. These rulesets are provided in the OracleComms_NSO_BaseCartridge cartridge.
AutomateNetworkServiceConfig_NSOBaseRulesetExtPt
IssueNetworkServiceConfig_NSOBaseRulesetExtPt
CompleteNetworkServiceConfig_NSOBaseRulesetExtPt
CancelNetworkServiceConfig_NSOBaseRulesetExtPt