2 Setting Up UIM NFV Orchestration

This chapter describes the instructions for setting up Oracle Communications Unified Inventory Management (UIM) NFV Orchestration.

Planning Your Implementation

Before you perform an NFV Orchestration implementation, you must identify the required software, ensure that the required network infrastructure is available and ready, and identify the third-party software that you want to use. Your choices are based on the network services you want to deliver on your network.

Use the following list of tasks as a checklist to ensure that you have all the required components for a successful implementation of NFV Orchestration:

Software Requirements

To implement UIM NFV Orchestration, you require the following software:

  • Oracle Communications Unified Inventory Management 7.4.

    See UIM Installation Guide for installation instructions.

  • Oracle Communications Design Studio 7.3.5.

    See Design Studio Installation Guide for installation instructions.

Migrating UIM NFV Orchestration 7.3.5 Cartridges

If you are using UIM NFV Orchestration 7.3.5 VNF and network service cartridges, you must migrate your 7.3.5 cartridges to 7.4 using Oracle Communications Design Studio before you use UIM NFV Orchestration 7.4.

This section provides the steps that you must perform to migrate your UIM NFV Orchestration 7.3.5 VNF and network service cartridges to make them compatible with UIM NFV Orchestration 7.4. You can refer to the UIM NFV Orchestration 7.4 sample cartridges when migrating your 7.3.5 cartridges.

Prerequisites

  • Upgrade UIM 7.3.5 to 7.4. See UIM Installation Guide for more information.

  • Back up the network_service_descriptor.properties and VNF_descriptor.properties files located in the UIM_Home/config/ directory, where network_service_descriptor is the name of your network service descriptor and VNF_descriptor is the name of your VNF descriptor.

  • Install Design Studio 7.3.5. See Design Studio Installation Guide for more information.

  • Import the UIM 7.4 required cartridges and base cartridges into your Design Studio workspace. See UIM Cartridge Guide for more information.

  • In Design Studio, unseal all the 7.3.5 cartridges that you want to migrate. See Design Studio Help for detailed instructions about unsealing cartridges.

  • In Design Studio, for all the 7.3.5 cartridges that you want to migrate, change the target version by selecting 7.4.0 from the Target Version list, and then also change your cartridge version to 7.4 by specifying the appropriate values in the Major Version Number, Minor Version Number, and Maintenance Pack fields on the Properties tab of the cartridge.

  • Navigate to your 7.3.5 cartridge folder and modify the .classpath file to refer the latest third-party JAR files based on your cartridge. The following example shows a few sample .classfile entries:

    <classpath>
            <classpathentry kind="src" path="src"/>
            <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
            <classpathentry kind="var" path="UIM_LIB/consumable_caps.jar"/>
            <classpathentry kind="var" path="UIM_LIB/core_caps.jar"/>
            <classpathentry kind="var" path="UIM_LIB/nso-managers.jar"/>
            <classpathentry kind="var" path="UIM_LIB/platform-persistence.jar"/>
            <classpathentry kind="var" path="UIM_LIB/uim-api-framework.jar"/>
            <classpathentry kind="var" path="UIM_LIB/uim-entities.jar"/>
            <classpathentry kind="var" path="UIM_LIB/uim-entity-xmlbean.jar"/>
            <classpathentry kind="var" path="UIM_LIB/uim-managers.jar"/>
            <classpathentry kind="var" path="OTHER_LIB/com.sun.jersey.jersey-client.jar"/>
            <classpathentry kind="var" path="OTHER_LIB/javax.ws.rs.javax.ws.rs-api.jar"/>
            <classpathentry kind="var" path="UIM_LIB"/>
            <classpathentry kind="var" path="OTHER_LIB"/>
            <classpathentry kind="output" path="out"/>
    </classpath>
    

Migrating the UIM NFV Orchestration 7.3.5 VNF Cartridges

To migrate the UIM NFV Orchestration 7.3.5 VNF cartridges:

  1. Import the UIM NFV Orchestration 7.3.4 VNF cartridge into Design Studio.

  2. In the Service Configuration specification for the VNF, do the following:

    • Navigate to the port configuration item under vnf - connectionPoints - connectionPoint, click the Specification Options tab, and then add IPv6Address as Reference.

    • Navigate to the network configuration item under vnf - connectionPoints - connectionPoint, click the Specification Options tab, and then add IPv6Subnet as Reference.

    • Navigate to the port configuration item under vnf - vdus - vdu - vnfcs - vnfc - connectionPoints - connectionPoint, click the Specification Options tab, and then add IPv6Address as Reference.

    • Navigate to the network configuration item under vnf - vdus - vdu - vnfcs - vnfc - connectionPoints - connectionPoint, click the Specification Options tab, and then add IPv6Subnet as Reference.

  3. In the Package Explorer view, edit the VNF descriptor XML file under the \model\content\product_home\config\ directory, and add the integration element, as follows:

    <integration>
        <ems>IPSA</ems>
        <hasheattemplate>false</hasheattemplate>
    </integration>
    

Migrating the UIM NFV Orchestration 7.3.5 Network Service Cartridges

To migrate the UIM NFV Orchestration 7.3.5 network service cartridges:

  1. Import the UIM NFV Orchestration 7.3.5 network service cartridge into Design Studio.

  2. In the Service Configuration specification for the network service, navigate to the virtualLink configuration item under virtualLinks, and click the Specification Options tab, and then add IPv4Subnet as Reference.

  3. In the Package Explorer view, edit the network service descriptor XML file under the \model\content\product_home\config\ directory, and add the ipVersion="IPv4" parameter within the virtual-link element for each virtual link.

  4. In the Package Explorer view, edit the network_service_descriptor.TechnicalActions.xml file (where network_service_descriptor is the name of your network service descriptor) under the model\content\product_home\config directory and do the following:

    • Update the SDN controller class, as follows:

      sdnController.Sample_multiVDU_NSD=oracle.communications.inventory.nso.nfvi.sample.NPaaSOpenStackSDNControllerImpl
      
    • Add the following new line at the bottom of the file:

      NPaaS.EMS.notification.version=7.3.4.3
      
  5. In the Package Explorer view, edit the network_service_descriptor.properties file (where network_service_descriptor is the name of your network service descriptor) under the model\content\product_home\config directory and do the following:

    • Add the following parameter within the <invactcalc:action> element:

          <invactcalc:action>
              <parameter>
                  <name>sIPV6ADDRESSTYPE</name>
                  <type>string</type>
              </parameter>
          </invactcalc:action>
      
    • Add the following binding within the <invactcalc:generator> element:

          <invactcalc:generator>
              <binding>
                  <parameter>IPV6ADDRESSTYPE</parameter>
                  <path>IPV6ADDRESSTYPE</path>
              </binding>
          </invactcalc:generator>
      

Deploying the Migrated Cartridges into the UIM Run-time Environment

To deploy the migrated cartridges into the UIM run-time environment:

  1. Deploy the UIM 7.4 base cartridges into UIM 7.4.

  2. Deploy the migrated cartridges into UIM 7.4.

  3. Update the network_service_descriptor.properties and VNF_descriptor.properties files according to the referred networks in your VIM.

  4. Restart your domain.

Installing and Integrating the NFV Orchestration Components

To install and integrate the NFV Orchestration components:

  1. Install UIM on a WebLogic server. See UIM Installation Guide for installation instructions.

  2. Navigate to the UIM_Home/cartridges/base directory and deploy the following UIM cartridges into UIM in the order they are listed:

    • ora_uim_baseextpts

    • ora_uim_basemeasurements

    • ora_uim_basetechnologies

    • ora_uim_basespecifications

    • ora_uim_baserulesets

    • OracleComms_NSO_BaseCartridge

    See UIM Cartridge Guide for instructions about deploying cartridges into UIM.

  3. (Optional) If you want to use the sample cartridges that are provided with UIM NFV Orchestration, navigate to the UIM_Home/cartridges/sample directory and deploy the sample cartridges into UIM.

    Note:

    Before deploying the sample cartridges, deploy the ora_uim_common cartridge.

    See "About the Sample Network Services" for more information about the sample cartridges provided with UIM.

    See "Implementing the Sample Network Services" for information about implementing the sample network services.

  4. (Optional) Integrate UIM NFV Orchestration with northbound applications for asynchronous communication. See "Integrating UIM NFV Orchestration With Northbound Applications for Asynchronous Communication".

  5. Integrate the VIM with UIM NFV Orchestration. See "Integrating the VIM" for more information.

Integrating UIM NFV Orchestration With Northbound Applications for Asynchronous Communication

Some VNF and network service life cycle operations perform long-running processes. UIM's NFV Orchestration functionality supports integration with northbound applications in asynchronous communication for such life cycle operations.

With this integration, NFV Orchestration provides the final and actual status of the following life-cycle actions so that northbound systems can perform and complete service fulfillment:

  • Instantiate a network service

  • Terminate a network service

  • Add one or more VNFs to network service

  • Delete one or more VNFs from a network service

  • Scale a VNF

  • Reboot a VNF

  • Replace a VNF

  • Reboot a VDU

To integrate NFV Orchestration with northbound systems for asynchronous communication:

  1. Configure your client applications to subscribe to the NSOResponseTopic topic in the WebLogic server. During installation, UIM creates the JMS Module and NSOResponseTopic.

    You can implement a custom response topic and configure your applications to subscribe to it. See "Implementing a Custom Response Manager" for more information about implementing a custom response topic.

  2. On the WebLogic server, in the JMS Module, create a Durable Subscriber under NSOResponseTopic to capture the messages.

  3. Open the UIM_Home/config/nso.properties file and uncomment the following property:

    #nso.ResponseManager.list.1=oracle.communications.inventory.nso.client.vnfm.NSOResponseTopicImpl
    

Integrating the VIM

UIM NFV Orchestration supports OpenStack and provides integration points for integrating other third-party VIMs. See "Implementing a Custom VIM" for more information about implementing a custom VIM.

Before you integrate the VIM, ensure that you set up and configure the VIM. After your VIM infrastructure is set up, register the VIM and discover the VIM resources into NFV Orchestration.

Note:

If you use multiple VIMs, register all of them with UIM NFV Orchestration and perform resource discovery for each VIM.

Integrating the VIM involves the following tasks:

Registering the VIM

To register a VIM:

  1. Ensure that UIM is started and running.

  2. Ensure that the required NFV Orchestration base cartridges are deployed into UIM.

  3. Ensure that the VIM is running and that you have the IP address, username, password, and other details of the VIM instance.

  4. In a RESTful API client, call the following RESTful API using the POST method:

    POST http://uim_host:port/ocnso/1.1/vim

    where:

    • uim_host is the IP address of the machine on which UIM is installed

    • port is the port number of the machine on which UIM is installed

  5. Specify the VIM details in the request. For details about the request parameters, see "Register VIM".

    The RESTful API client returns a response.

  6. In UIM, verify that a custom object with the details of the VIM is created.

Discovering VIM Resources

You discover VIM resources into UIM so that NFV Orchestration contains information about the current status and availability of all the required virtual resources on the network. In UIM, VIMs are represented as custom objects.

When you discover VIM resources, the details of the following resources are populated into UIM:

  • Availability zone (OpenStack)

  • Flavor

  • Host

  • Networks and Subnets

To discover VIM resources into UIM:

  1. In a RESTful API client, call the following RESTful API using the POST method:

    POST http://uim_host:port/ocnso/1.1/vim/vimId/discovery?infoLevel=vim_information

    where:

    • uim_host is the IP address or the domain name of the machine on which UIM is installed

    • port is the port number of the machine on which UIM is installed

    • vimId is the Id of the VIM that you registered with NFV Orchestration and whose resources you want to discover

    • vim_information is the level of information about the VIM that you want to retrieve and view in the response. The available values are:

      • summary. Retrieves and displays a summary of the VIM resources.

      • details. Retrieves and displays complete details about all the VIM resources.

    For more details about the request parameters, see "Discover VIM Resources".

    The RESTful API client returns a response.

  2. In UIM, verify that the following entities are created:

    • Availability zone

    • Flavor

    • Host

    • VDC

    • Network address domains

    • IP subnets

Note:

Whenever you add, modify, or delete the compute, memory, and network resources in your NFV Infrastructure (NFVI), run the VIM discovery RESTful API to ensure that details about the currently available resources on your NFVI are reflected correctly in UIM.

Configuring NFV Orchestration for Using a Generic EMS Interface

NFV Orchestration provides a framework that supports integration to external EMS systems for VNF configuration management. This framework includes a generic EMS interface, which enables NFV Orchestration to determine which EMS is responsible for managing the configuration of a VNF so that NFV Orchestration can communicate with that EMS by sending notifications about the statuses of instantiation and termination lifecycle actions performed on the VNF.

Configuring NFV Orchestration for using a generic EMS interface involves the following tasks:

  1. In the VNF descriptor XML file, within the integration tag, specify the EMS that manages the configuration of a VNF. This enables NFV Orchestration to determine the EMS to which it needs to send notifications about the instantiation or termination status of the VNF. See "Describing the EMS and Heat Interface Details" for more information.

  2. If an EMS manages the VNF's configuration, register that EMS with NFV Orchestration for sending EMS notifications. See "Register EMS" for more information.

  3. By default, NFV Orchestration implements the notifyEMS method in the oracle.communications.inventory.nso.nfvi.SDNController interface. The notifyEMS method sends VNF-specific information (including instantiation/termination of the VNF) to the EMS that manages the configuration of the VNF.

    You can also implement and use a custom functionality to notify the EMS by using Java interface extensions. See "Implementing a Custom SDN Controller by Creating a Java Implementation Class" for more information.

    Example 2-1 shows the JSON request body in the notifyEMS method. The JSON request sends VNF-specific information to the EMS.

    Example 2-1 JSON Request in the notifyEMS Method

    {
        "devices":[
                     {
                              "deviceName":"VDU1",
                              "deviceType":"MRA",
                              "deviceId":"192768",
                              "vnfId":"VDU1",
                              "UserName":"myuser",              
                                     "LoginPassword":"mypass",         
                                     "IpAddress":"10.22.30.4",  
                                     "action":"instantiation",       
                                     "additionalParams":[             
                          {"param1":"value1"},
                          {"param2":"value2"},
                     }
        ]
    }
    

    If the VNF is instantiated using a Heat template, OpenStack populates the Heat template's Outputs section with additional parameters. Subsequently, NFV Orchestration captures and passes these additional parameters (specified within "additionalParams":[ in Example 2-1) as name-value pairs to the EMS that is responsible for managing the configuration of the VNF. See "Outputs" for more information.

Setting NFV Orchestration Properties

NFV Orchestration provides the UIM_Home/config/nso.properties file that you use to specify properties for your implementation of NFV Orchestration.

To set the properties, open the nso.properties file in a text editor and update the following parameters:

  • NSO_HOST: IPv4address

    where IPv4address is the host on which UIM is installed. By default, NFV Orchestration considers the host on which the UIM server is running. If the server is running on a private network that is unavailable to external network, specify a reachable IP address for the server.

  • NSO_USERNAME: username

    where username is the username of the UIM user.

  • NSO_PASSWORD: password

    where password is the encrypted password of the UIM user.

    To encrypt the password:

    1. Create a text file and type the password.

    2. Save and close the file.

    3. In UIM, in the Administration group of the navigation section, click Execute Rulesets.

    4. In the Ruleset list, select the EncryptText ruleset, and enter the path and file name of the text file that contains the password in plain text and click Process.

      UIM displays the encrypted password. Copy the encrypted password and specify it in the nso.properties file.

Enabling Logging for NFV Orchestration

You enable logging for NFV Orchestration to log debug messages.

For more information about logging, see the chapter about improving UIM performance in UIM System Administrator's Guide.

To enable logging for NFV Orchestration:

  1. Open the UIM_Home/config/loggingconfig.xml file in a text editor.

  2. Add the following text:

    <logger name="oracle.communications.inventory.nso" additivity="false">
            <level value="debug"/>
            <appender-ref ref="stdout"/>
            <appender-ref ref="rollingFile"/>
    </logger>
    
  3. Save and close the file.

Supported Southbound Integration

NFV Orchestration supports some integrations by default, while others require customization. NFV Orchestration supports the following southbound integrations:

  • For Virtual Infrastructure Management:

    • Integration to OpenStack Mitaka and Liberty releases

    • Integration to Oracle OpenStack for Oracle Linux Release 3 Beta

    • A framework for integration to other Virtual Infrastructure Managers

  • For Network and SDN controllers:

    • Integration to OpenStack Neutron (Mitaka and Liberty releases)

    • Integration to OpenStack Neutron Networking-SFC (Service Function Chaining)

  • For VNF management:

    • NFV Orchestration includes a built-in VNF Manager that supports the life-cycle management of VNFs. The VNF manager calls the VIM to perform life-cycle actions. The in-built VNF Manager supports direct integration to the VNF or integration to an Element Management System (EMS) that manages the VNF.

    • A framework that supports integration to external VNF Managers.