9 Deploying VNFs

Prerequisites: A virtual infrastructure satisfying the DSR VNFM OpenStack Prerequisites.

Table 9-1 Supported VNFM Network Interfaces

Node Type IPV4 Multiple XSI Fixed XMI Fixed XSI/SBR Fixed IMI IPv6 XSI IPV6 XMI IPV6 IMI Cloud-init
DSR
DSR NOAM Y NA Y NA Y NA Y Y Y
DR DSR NOAM Y NA Y NA Y NA Y Y Y
DSR SOAM Y NA Y NA Y NA Y Y Y
DAMP Y Y Y Y Y Y Y Y Y
vSTP MP Y Y Y Y Y Y Y Y Y
IPFE Y Y Y Y Y Y Y Y Y
IDIH Y NA Y NA Y NA N N Y
SBR Y NA Y Y (SBR Replication Ports) Y NA Y Y PARTIAL *
UDR NOAM Y Y Y Y Y Y Y Y Y
SDS
SDS NOAM Y NA Y NA Y NA Y Y Y
Query Server Y NA Y NA Y NA Y Y Y
DR SDS NOAM Y NA Y NA Y NA Y Y Y
SDS SOAM Y NA Y NA Y NA Y Y Y
DP Server Y NA Y NA Y NA Y Y Y
APIGW
DB Management Y NA Y Y Y Y Y Y N
DB Data Y NA Y Y Y Y Y Y N
DB Sql Y NA Y Y Y Y Y Y N
APIGWAdmin Y NA Y Y Y Y Y Y N
APIGWAPP Y NA Y Y Y Y Y Y N
ATS
ATS MASTER Y Y(2) Y Y NA Y Y NA NA
ATS CORE/TOOLS Y NA Y NA NA NA N NA NA
PROVGW
PROVGW Y NA N NA NA NA Y NA NA

Signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface)

Partial*: Cloud init for SBR servers are not supported completely.
  • The servers are added as plain SBRs ( Not as Session, Binding or Universal).
  • The server groups are created according to the flavor. (Check flavor table for more information)
  • Depending on the flavor, there will be a SBR left out from the server group.
  • The left out server group should be added to the mated site's server group manually.
  • VNFM does not perform the PDRA configuration. Users have to configure PDRA manually.

Note:

For APIGW, only VMs are installed with required interfaces. However, Cloud-init steps are performed manually to configure the VMs.

Create a VNF Instance

  1. Before a DSR VNF is instantiated, the user must first issue a request to create a VNF instance by using the command create VNF instance.
  2. Creating a VNF instance informs the VNFM that a user has requested to instantiate a VNF at some point in the future.
  3. The VNFM returns a VNF ID that must be saved for future use while performing operations on the same VNF.

    Note:

    • Each VNF has its own VNF ID, so if it is required to create a DSR with two signaling VNFs, then issue the request to create a VNF instance three times, once for the network OAM VNF, and once for each signaling VNFs.
    • The vnfInstanceName value is defined as per the following:
      • It is provided as the prefix of the VMName / Hostname for each VNFc in any VNF. It is an optional parameter, if not provided, then a default value is generated.
      • The vnfInstanceName includes only alphanumeric characters, and special character such as '-' (Hyphen). It must start with an alphabet. No other special character except '-' (Hyphen) is allowed.
      • Max allowed length is 22 characters.

For more information about the full list of all inputs and possible outputs of the create VNF instance command, see ETSI NFV-SOL 003, section 5.4.2.3.1, or the DSR VNFM Swagger specification.

Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

The following image illustrates the VNF instance creation:

Figure 9-1 VNF Create Instance Request


VNF Create Instance Request

Sample Request: Create VNF instance request generated.

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login

Example for VNFM Secondary:


 {

  "vnfdId": "vnfmSecondary",

  "vnfInstanceName": "DemoVnfmSecondary",

  "vnfInstanceDescription": "DemoVnfmSecondaryDescription"

 }

Example for NOAM:

{
  "vnfdId": "dsrNetworkOam",
  "vnfInstanceName": "DemoNoam",
  "vnfInstanceDescription": "DemoNoam "
}

Example for DR NOAM:

{
  "vnfdId": "dsrDrNetworkOam",
  "vnfInstanceName": "DemoDrNoam",
  "vnfInstanceDescription": "DemoDrNoam "
}
Example for Signaling:
{
  "vnfdId": "dsrSignaling",
  "vnfInstanceName": "DemoSoam",
  "vnfInstanceDescription": "Description"
}

Example for APIGW:

{
  "vnfdId": "dsrApiGw",
  "vnfInstanceName": "DemoApiGw",
  "vnfInstanceDescription": "Description for APIGW VNF"
}
Example for IDIH:
{
  "vnfdId": "dsrIdih",
  "vnfInstanceName": "DemoIdih",
  "vnfInstanceDescription": "Description for IDIH VNF"
}

Example for SDS NOAM

{ 
  "vnfdId": "sdsNetworkOam",
  "vnfInstanceName": "DemoSdsNoam",
  "vnfInstanceDescription": "DemoSdsNoam "
 }

Example for SDS DR NOAM:

{ 
  "vnfdId": "sdsDrNetworkOam",
  "vnfInstanceName": "DemoSdsDrNoam",
  "vnfInstanceDescription": "DemoSdsDrNoam "
 }

Example for SDS Signaling:

{
  "vnfdId": "sdsSignaling",
  "vnfInstanceName": "DemoSdsSoam",
  "vnfInstanceDescription": "DemoSdsSignaling"
 }

Example for ATS Master:

{
  "vnfdId": "atsMaster",
  "vnfInstanceName": "DemoAtsMaster",
  "vnfInstanceDescription": "DemoAtsMaster"
 }

Example for ProvGW:

{
  "vnfdId": "provGw",
  "vnfInstanceName": "DemoProvGw",
  "vnfInstanceDescription": "DemoProvGw"
 }

Sample Response

201 Created

Create VNF Instance Response

Content-Type: application/jsonFull Semantic Validation Configuration

X-Token: Token generated after login

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances

{
   "id":"dsrNetworkOam-b44e9a45-b575-4b30-b580-085d8ddd7015",
   "vnfdId":"dsrNetworkOam",
   "instantiationState":"NOT_INSTANTIATED",
   "vnfInstanceName":"DemoNoam",
   "vnfInstanceDescription":"string",
   "vnfProvider":"Oracle",
   "vnfProductName":"DSR",
   "vnfSoftwareVersion":"DSR-8.5.0.2.0",
   "vnfdVersion":"5.x",
   "onboardedVnfPkgInfoId":"N/A",
   "links":{
      "self":{
         "href":"https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767""
      },
      "instantiate":{
         "href":"https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767/instantiate"
      },
      "scaleToLevel":null,
      "terminate":null
   }
}

Note:

VNFM supports both the secured and the unsecured URL (HTTPS with port 8443 and HTTP with port 8080).

The following table describes the parameters used for sending request to VNFM:

Table 9-2 Parameters and Definitions for VNF Instance

Parameter Definition
vnfdId Identifier of the VNF instance deployment ID to be created
vnfInstanceName (optional) Name of the VNF instance to be created (must be unique)
vnfInstanceDescription Description of the VNF instance

Query VNF Instance

The diagram describes a sequence for querying/reading information about a VNF instance.

Figure 9-2 Query VNF Instance


Query VNF Instance

VNF instance query, as illustrated above, performs the following actions:

  • If the NFVO intends to read information about a particular VNF instance, it sends a GET request to the Individual VNF instance resource, addressed by the appropriate VNF instance identifier (Vnf Id) in its resource URI.
  • The VNFM returns a 200 OK response to the NFVO, and includes specific data structure of type VnfInstance related to the VNF instance identifier (Vnf Id) in the payload body.
  • If the NFVO intends to query all VNF instances, it sends a GET request to the VNF instances resource.
  • The VNFM returns a 200 OK response to the NFVO, and includes zero or more data structures of type VnfInstance in the payload body.

Query Individual VNF Instance

Sample Request for Single VNF Instance:

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<<VNF Instance ID>>

X-Token : <Token generated after login>

Sample Response for Single VNF Instances:

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<<VNF Instance ID>>

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
   "id": "dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767",
   "vnfdId": "dsrNetworkOam",
   "instantiationState": "NOT_INSTANTIATED",
   "vnfInstanceName": "string",
   "vnfInstanceDescription": "string",
   "vnfProvider": "Oracle",
   "vnfProductName": "DSR",
   "vnfSoftwareVersion": "DSR-8.5.0.2.0",
   "vnfdVersion": "5.x",
   "onboardedVnfPkgInfoId": "N/A",
   "links": {
             "self": {
                      "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767"
                     },
             "instantiate": {
                             "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767/instantiate"
                            }
            }
 }
Response Body for VNF Instances that are Instantiated
	{
 		"id": "dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f",
 		"vnfdId": "dsrNetworkOam",
 		"instantiationState": "INSTANTIATED",
 		"vnfInstanceName": "dsrvnfm",
 		"vnfInstanceDescription": "dsrvnfm",
 		"vnfProvider": "Oracle",
 		"vnfProductName": "DSR",
 		"vnfSoftwareVersion": "DSR-8.5.0.2.0",
 		"vnfdVersion": "5.x",
 		"onboardedVnfPkgInfoId": "N/A",
 		"links": {
 					"self": {
 					"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f"
 				},
 				"instantiate": {
					 "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/instantiate"
 				},
 				"scaleToLevel": {
					 "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/scale_to_level"
				},
 				"terminate": {
 					"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/terminate"
 				}
 		},
			 "instantiatedVnfInfo": {
			 "flavourId": "DSR NOAM",
 			 "vnfState": "STARTED",
 			 "extCpInfo": {
 							"id": null,
 							"cpdId": null
 						},
 		 	"scaleStatus": [{
			  "aspectId": "NOAM",
 			 "scaleLevel": "2"
      		}]
 		},
 			"vimConnectionInfo": {
 			"id": "vimid",
 			"vimType": "OpenStack",
 			"interfaceInfo": {
 			"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
 		},
 			"accessInfo": {
 							"username": "dsrat.user",
 							"password": "xxxxxxx",
 							"userDomain": "Default",
						 	"projectDomain": "default",
 							"tenant": "DSRAT_Feature_Test1"
 						},
 			"extra": {}
 	}
 }

Query All VNF Instances

Sample Request

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances

Sample Response

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Response Body for No VNF Instances

[]

Response Body for all VNF Instances

[
  {
    "id": "dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163",
    "vnfdId": "dsrNetworkOam",
    "instantiationState": "INSTANTIATED",
    "vnfInstanceName": "string",
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",
    "vnfProductName": "DSR",
    "vnfSoftwareVersion": "DSR-8.5.0.2.0",
    "vnfdVersion": "5.x",
    "onboardedVnfPkgInfoId": "N/A",
    "links": {
      "self": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163"
      },
      "instantiate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/instantiate"
      },
      "scaleToLevel": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/scale_to_level"
      },
      "terminate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/terminate"
      }
    },
    "instantiatedVnfInfo": {
      "flavourId": "DSR NOAM",
      "vnfState": "STARTED",
      "extCpInfo": {
        "id": null,
        "cpdId": null
      },
      "scaleStatus": [
        {
          "aspectId": "NOAM",
          "scaleLevel": "2"
        }
      ]
    },
    "vimConnectionInfo": {
      "id": "vimid",
      "vimType": "OpenStack",
      "interfaceInfo": {
        "controllerUri": "https://dpc1.us.oracle.com:5000/v3"
      },
      "accessInfo": {
        "username": "dsrvnfm",
        "password": "xxxxxxx",
        "userDomain": "Default",
	       "projectDomain": "default",
        "tenant": "dsrvnfm"
      },
      "extra": {}
    }
  },
  {
    "id": "dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5",
    "vnfdId": "dsrNetworkOam",
    "instantiationState": "NOT_INSTANTIATED",
    "vnfInstanceName": "demo",
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",
    "vnfProductName": "DSR",
    "vnfSoftwareVersion": "DSR-8.5.0.2.0",
    "vnfdVersion": "5.0",
    "onboardedVnfPkgInfoId": "N/A",
    "links": {
      "self": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5"
      },
      "instantiate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5/instantiate"
      },
      "scaleToLevel": null,
      "terminate": null
    }
  } 
 }

Modify VNF Information Operation

VNFM supports the API for Modify VNF operation to modify created VNF Identifier resources. This API can modify either one or both vnfInstanceDescription and vimConnectionInfo fields present in the instance file.

The following image explains how the Modify VNF instance request is processed.

Figure 9-3 Modify VNF Instance Request

Modify VNF Instance Request

Precondition: The resource representing the VNF instance has been created that indicates the state must be in the INSTANTIATED state.

Postcondition: VNF LCM operation displays the status of this operation and updates the VNF instance file at the end.

Sample Request for Modify VNF

Modify VNF
Request URL : PATCH:URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from instantiate request>/modifyvnfAccept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
Request Body:
{  "vnfInstanceDescription": "Modify VNF Information",
  "vimConnectionInfo": [
    {
      "id": "vimid",
      "vimType": "OpenStack",
      "interfaceInfo": {
        "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
      },
      "accessInfo": {
        "username": "dsrat.user",
        "password": "xxxx",
        "userDomain": "Default",
        "projectDomain": "default",
        "tenant": "DSR AT Dev 1"
      }
    }
  ]
}

Note:

The 202 response indicates that the request is accepted for processing. Use Query LCM operation for status.

Response of Modify VNF

202 Accepted


Headers:
{

     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  

     date: Tue, 29 Jan 2019 10:39:24 GMT  

     content-length: 0  content-type:

     application/xml 

}

Table 9-3 Parameters and Definitions for Modify VNF

Parameter Definition
vnfInstanceDescription (Optional) Updates vnfInstanceDescription details.
vimConnectionInfo (Optional) Updates vimConnectionInfo details.

Deleting a VNF Instance

VNFM supports the LCM function of "Delete VNF identifier". So that the VNF Identifier resources created are deleted.

Precondition: The resource representing the VNF instance to be deleted needs to be in NOT_INSTANTIATED state.

Deletion of a VNF Instance happens in the following sequence:
  • NFVO sends a DELETE request to the "Individual VNF Instance" resource.
  • The VNFM deletes the VNF instance resource and the associated VNF instance identifier.
  • The VNFM returns a "204 No Content" response with an empty payload body.

Result: The resource representing the VNF instance has been removed from the list of VNF instance resources.

The following diagram describes the flow of deletion of a VNF Instance Resource.

Figure 9-4 Deleting a VNF Instance Resource

Flow of Deleting a VNF Instance Resource
DELETE Operation
URL: DELETE: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/<<{vnfInstanceId}>>
DELETE Operation
Deletion of a VNF Instance Resource
Response Code : 204

{
     cache-control: private
     expires: Thu, 01 Jan 1970 00:00:00 GMT
     date: Mon, 27 Apr 2020 08:24:09 GMT
     content-type: application/xml  
}

Instantiating VNFM Secondary

VNFM Secondary is a Geo Redundant VNFM. Instantiating a Secondary VNFM is supported if there is no secondary VNFM configured in the Primary VNFM. Primary VNFM must be a standalone VNFM.

Both dynamic and fixed IP deployments are supported. Before deploying the VNFM, the following information must be available:

  • The VNF ID for a previously created VNFM Secondary VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain ID
    • User name
    • Password
    • Tenant name
  • The name of a public network in the selected OpenStack instance that carries the VNFM traffic.
  • The name of a network in the selected OpenStack instance that carries the VIM traffic.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server.

For more information about the list of inputs and possible outputs of the command instantiate VNF, refer to ETSI NFV-SOL 003 or the DSR VNFM Swagger.

Sample Request for DYNAMIC IP Model

Dynamic deployment model for VNFM Secondary

{

    "flavourId": "VNFM SECONDARY",

    "instantiationLevelId": "HA",

    "extVirtualLinks": "extVirtualLinks",

                "extManagedVirtualLinks": [],   

    "vimConnectionInfo":[ {

        "id": "vimid",

        "vimType": "OpenStack",

        "interfaceInfo": {

          "controllerUri": "http://oortcloud.us.oracle.com:5000/v3" 

        },

        "accessInfo": {

            "username": "dsrvnfm",

            "password": "xxxx",

            "userDomain": "LDAP",

            "projectDomain": "LDAP",

            "tenant": "DSRVNFM_1"

        }

    }],

    "localizationLanguage": "localizationLanguage",

    "additionalParams": {

        "vnfmNetwork": {

           "name": "ext-net-ipv6",

           "ipVersion": "IPv6",

           "subnet":  "ext-net-ipv6-subnet"

        },

        "vimNetwork": {

            "name": "ext-net",

            "ipVersion": "IPv4",

            "subnet": "ext-net-subnet"

        },

        "ntpServerIp": "10.250.32.10",

        "secondaryVnfmVolumeId":"174c7cae-d9f0-4459-9463-a0c20443ef0c",

        "vimRouteAddress":"10.75.167.0/24,10.75.185.0/24,10.75.171.192/26",

        "image": "VNFM_5.0.0.0.0_50.4.0.qcow2", 

        "flavor": "vnfm",

        "availabilityZone": "nova"


    }

}

Sample Request for FIXED IP Model

Fixed deployment model for VNFM Secondary

{

    "flavourId": "VNFM SECONDARY",

    "instantiationLevelId": "HA",

    "extVirtualLinks": "extVirtualLinks",

                "extManagedVirtualLinks": [],   

    "vimConnectionInfo":[ {

        "id": "vimid",

        "vimType": "OpenStack",

        "interfaceInfo": {

          "controllerUri": "https://mvl-dev1.us.oracle.com:5000/v3" 

        },

        "accessInfo": {

            "username": "dsrvnfm",

            "password": "automation",

            "userDomain": "Default",

            "projectDomain": "Default",

            "tenant": "VNFM_FT1"

        }

    }],

    "localizationLanguage": "localizationLanguage",

    "additionalParams": {

        "vnfmNetwork": {

           "name": "ext6-net-4",

           "ipVersion": "IPv6",

           "subnet":  "ext6-subnet-4",
           
           "fixedIps": {
            
                "vnfmIp": "2606:b400:605:b813::17"
            
            }

        },

        "vimNetwork": {

            "name": "ext-net",

            "ipVersion": "IPv4",

            "subnet": "ext-net-subnet",
            
            "fixedIps": {
            
                "vimIp": "10.75.189.199"
            
            }

        },

        "ntpServerIp": "10.250.32.10",

        "secondaryVnfmVolumeId":"eb66dc4d-ddf1-4880-875c-417d245f44d1",

        "vimRouteAddress":"10.75.167.0/24,10.75.185.0/24,10.75.171.192/26",

        "image": "VNFM_5.1.0.0.0_51.4.0.qcow2", 

        "flavor": "vnfm",

        "availabilityZone": "nova"

    }

}

Note:

  • The 202 response indicates that the request is accepted for processing. The VNF might take up to 15 minutes to become operational. Use the LCM operation ID to determine when the VNF is operational.
  • The supported VNFM flavor is VNFM Secondary.
  • The supported VNFM instantiation level ID is HA.
  • Supported for IPv6 networks - ipVersion should be IPv6 in the request. The GUI can be accessed by the following URL: https://[<VNFM SECONDARY IP>]:8443/docs/vnfm.

    Example: https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]:8443/docs/vnfm.

  • Primary and secondary VNFM creation can be done using the old VNFM volume.
Dynamic and Fixed IP Deployment Parameter Description

The following tables describes the parameters used for sending request to VNFM:

Table 9-4 Dynamic IP Deployment Parameters

Parameter Description
flavourId Identifies the VNFM Secondary deployment flavor to be instantiated.
vnfmNetwork Provides network details to be used to access the VNFM (Swagger, ssh).
vimNetwork Provides network details to be used to access VIM.
name Provides the name of the respective network.
ipVersion Identifies the IP version of the network, such as IPv4 or IPv6.
subnet Identifies subnet of the respective network.
ntpServerIp Identifies the IP of the NTP server.
secondaryVnfmVolumeId Enters the volume name that can be used as a persistence storage for the VNFM.
vimRouteAddress Enters the openstack network address or subnet mask. This is used for communication between VNFM and Openstack (Vim) network. Users can provide the list of route address separated by comma.
flavor (optional) Provides the flavor used for openstack deployment.
image (optional) Provides the image used for openstack deployment.
availabilityZone (optional) Provides the name of logical partitioning in case of host aggregate.

Table 9-5 Fixed IP Deployment Parameters

Parameter Description
flavourId Identifies the VNFM Secondary deployment flavor to be instantiated.
vnfmNetwork Provides network details to be used to access the VNFM (Swagger, ssh).
vimNetwork Provides network details to be used to access VIM.
name Provides the name of the respective network.
ipVersion Identifies the IP version of the network, such as IPv4 or IPv6.
subnet Identifies subnet of the respective network.
vnfmIp Identifies the IP of the VNFM network interface.
vimIp Identifies the IP of the VIM network interface.
ntpServerIp Identifies the IP of the NTP server.
secondaryVnfmVolumeId Enters the volume name that can be used as a persistence storage for the VNFM.
vimRouteAddress Enters the openstack network address or subnet mask. This is used for communication between VNFM and Openstack (Vim) network. Users can provide the list of route address separated by comma.
flavor (optional) Provides the flavor used for openstack deployment.
image (optional) Provides the image used for openstack deployment.
availabilityZone (optional) Provides the name of logical partitioning in case of host aggregate.

Instantiating the Network OAM VNF

Network OAM VNF supports both dynamic and fixed IP deployment.

To start a DSR deployment, it is required to instantiate a DSR network OAM VNF. Before deploying the VNF, make sure the following information is available:

The VNF ID for a previously created DSR Network OAM VNF instance.

Information about the OpenStack instance on which the VNF must be deployed:

  • OpenStack Controller URI
  • User Domain Name
  • Project Domain Id
  • Username
  • Password
  • Tenant name

The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.

The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.

DSR NOAM supports Dual Subnet for XMI and IMI interfaces.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.

Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Sample Request

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Instantiating NOAM Request for dynamic IP deployment (Dual Subnet).

{
        "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
		          "projectDomain": "default",
            "tenant": "DSR CI"
        }
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "vipSubnetName": "ext-net-ipv6-subnet",
 							"subnet": [{
 							"ipVersion": "IPv6",
 							"name": "ext-net-ipv6-subnet"
 				},
 			{
 							"ipVersion": "IPv4",
 							"name": "ext-net-subnet"
 			}]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet": [{
 							"ipVersion": "IPv6",
 							"name": "test6"
 			},
		 {
 							"ipVersion": "IPv4",
 							"name": "test11"
 		}]
        },
        "ntpServerIp": "10.250.32.10",
        "flavor": "dsr.noam",
        "image": "8.5.0.2.0.vmdk",
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.

Instantiating NOAM Request for dynamic IP deployment (Single Subnet).

{
    "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
 			"projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
           "name": "ext-net3",
 "subnet": [
 {
 "ipVersion": "IPv4",
 "name": "ext-net-subnet"
 }
 ]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet": [
 {
 "ipVersion": "IPv4",
 "name": "test11"
 }
 ]	
        },
        "ntpServerIp": "10.250.32.10",
        "flavor": "dsr.noam",
        "image": "8.5.0.2.0.vmdk",
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

Instantiating NOAM Request for fixed IP deployment.

{
    "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",     
            "tenant": "DSR CI"
        }
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
												"subnet": [{
                         "ipVersion": "IPv4",
                         "name": "ext-net-subnet",
                         "fixedIps": { 
                                       "primaryNoamIp": "10.75.189.224", 
                                       "secondaryNoamIp": "10.75.189.236", 
                                       "noamVip": "10.75.189.238" 
                                     }
                       },
                       {
                          "ipVersion": "IPv6",
                          "name": "ext-net-ipv6-subnet",
                       "fixedIps":{ 
                                    "primaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0", 
                                    "secondaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9" 
                                  }
                       }]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet": [{                         
                         "ipVersion": "IPv4",
                         "name": "ext-net-subnet",
                         "fixedIps": { 
                                      "primaryNoamImiIp": "10.75.189.224", 
                                      "secondaryNoamImiIp": "10.75.189.236" 
                                     }                       
                       },
                       {
                          "ipVersion": "IPv6",
                          "name": "ext-net-ipv6-subnet",
                          "fixedIps": { 
                                       "primaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0", 
                                       "secondaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9" 
                                      }                       
                     }]
        },
        "ntpServerIp": "10.250.32.10",
        "flavor": "dsr.noam",
        "image": "8.5.0.2.0.vmdk",
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

Note:

User must identify available IP addresses to be used in the network. If the user provides an IP address which does not exists in the subnet, the stack creation fails.

Sample Response: Instantiating NOAM Request.

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
  • If the VNFM creates a VNF that is operational, but has no Signaling VNFs, then it is required to deploy one or more Signaling VNF, and create the DIAMETER configuration data (peers, connections, etc.) for those VNFs, to perform DIAMETER routing.
  • After NOAM VNF deployment, the standby NOAM is automatically changed to Force StandBy, purposely to avoid any switchover, while DSR Signaling VNF is deployed. Once DSR Signaling Site is deployed and no more Life Cycle Management operations are planned, change Force Standby NOAM to Active by changing the Max Allowed HA Role to Active on the Status & Manage -> HA options in the Active NOAM GUI.
  • The supported NOAM Flavor is DSR NOAM.
  • The supported NOAM instantiation level id is HA, that creates two NOAMs.
  • Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body. The GUI can be accessed by the following URL: https://[<NOAM-vIP>] .

    For example: https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]

Expected Alarms:

10073 Server Group Max Allowed HA Role Warning

Resolution: This alarm can be resolved by, Status and Manage Server tab → HA → changing Max HA Role field of StandBy NOAM to active.

The following table describes the parameters used for sending request to VNFM.

Table 9-6 Parameters and Definitions for Network OAM VNF

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
ntpServerIp IP of the NTP server
fixedIps Json object in network to provide IP address
primaryNoamIp IP address for primary NOAM IP
secondaryNoamIp IP address for secondary NOAM IP
noamVip IP address for NOAM VIP
imiNetwork Network used for internal communication of DSR entities
ipVersion IP version of the network - "IPv4"/"IPv6"
primaryNoamImiIp IP address for primary NOAM IP of IMI
secondaryNoamImiIp IP address for secondary NOAM IP of IMI
flavor (optional) flavor used for openstack deploys
image (optional) image used for openstack deploys
availabilityZone (optional) name of logical partitioning in case of host aggregate
vipSubnetName (In case of Dual Subnet) Name of VIP subnet to be used only in case of Dual Subnet
noamAffinityPolicy (optional) openstack affinity policy for NOAM

Instantiating the DR Network OAM VNF

DRNOAM is the Disaster recovery NOAM site. The operator can make DRNOAM as the Primary Site, in case both the Active and StandBy NOAM of Primary site fails, and can continue the operations without any disturbance.

DRNOAM supports both dynamic and fixed deployment model.

When a setup is configured with a DR NOAM then first NOAM SG is treated as Primary NOAM Site and second NOAM SG is treated as Secondary NOAM site.

To instantiate a DSR DR Network OAM VNF, the following information must be available:

  • The VNF ID for a previously created DSR DR Network OAM VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.
  • OpenStack resource IDs for the XMI IPs from both DSR NOAM VMs.

    Note:

    The resource IDs can be obtained by examining the DSR Network OAM stack to which the identified DR NOAM VNF would be attached.
  • Name of Active Primary DSR NOAM VM.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.

Determining the DR NOAM XMI Resource IDs

The following facts must be considered before proceeding with DR NOAM site creation:

  • DRNOAM site must be created on separate tenant.
  • DRNOAM site is referred as Secondary NOAM. Therefore, we have two sites, Primary and Secondary.
  • Secondary Site configuration is done on Primary Active NOAM.
  • In the Primary Active NOAM, when second NOAM Server Group gets created, it automatically becomes Secondary.
  • Primary Active NOAM communicates to Secondary Active NOAM through the existing comcol replication and merging mechanism.
  • Secondary NOAM Site is optional and it does not need to be deployed at the same time as of Primary NOAM.

From the OpenStack GUI, to change your view to the tenant on which the DSR Network OAM VNF is deployed, perform the following steps.

  1. Go to Project->Network->Network Topology. A diagram of all VMs in the tenant is displayed.

    Note:

    The diagram may take few minutes to display.
  2. Click one of the NOAM VMs. A pop-up appears having information about the specific NOAM VM.
  3. Save the resource ID for the XMI port provided in the IP Addresses section of the pop-up.

    Note:

    The IP Addresses section of the popup contains information about the network ports and resource IDs, assigned to the VM.
  4. Repeat the previous step for the other NOAM VM.

You can also use the following alternative:
  • Instead of passing resource IDs, user can use DSR-NOAM XMI IPs.
  • User can pass Active DSR-NOAM's XMI IP to resource id 1 and StandBy DSR-NOAM's XMI IP to resource id 2.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, seeETSI NFV-SOL 003, section 5.4.4.3.1, or theDSR VNFM Swagger specification.

Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Sample Request

Resource URL: https://<<myhost-IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Instantiating DR NOAM Request for Dynamic IP deployment.
{
        "flavourId": "DSR DR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
         "extManagedVirtualLinks": [{
               "id": "id1",
              "virtualLinkDescId": " Active NOAM",
              "resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
            },
            {
              "id": "id2",
              "virtualLinkDescId": " StandBy NOAM",
              "resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
           }
        ],
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
		"projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "vipSubnetName": "ext-net-ipv6-subnet",
            "subnet": [{
                         "ipVersion": "IPv6",
                         "name": "ext-net-ipv6-subnet"
                        },
                        {
                          "ipVersion": "IPv4",
                          "name": "ext-net-subnet"
                      }]
                  },
        "imiNetwork": {
                       "name": "imi-net",
                       "subnet": [{
 																						"ipVersion": "IPv6",
 																						"name": "test6"
 																	},
 																{
 																						"ipVersion": "IPv4",
																						 "name": "test11"
 																}]
        },
        "ntpServerIp": "10.250.32.10",
        "primaryNoamVmName": "NOAM00-ea47f4b1",
        "flavor": "dr.noam",
        "image": "DSR-8.4.0.3.0_85.17.0.vmdk",
        "availabilityZone": "nova",
        "drNoamAffinityPolicy":"anti-affinity"
    }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.

Instantiating DR NOAM Request for Fixed IP deployment.

{   
   "flavourId":"DSR DR NOAM",
   "instantiationLevelId":"HA",
   "extVirtualLinks":"extVirtualLinks",
   "extManagedVirtualLinks":[   
      {   
         "id":"id1",
         "virtualLinkDescId":"Active NOAM IP's",
         "resourceId":"38121fc6-310c-4012-9787-b5289dd620b9"
      },
      {   
         "id":"id2",
         "virtualLinkDescId":"Secondary NOAM IP's",
         "resourceId":"baa54c8d-1a7a-4b15-8d64-8fe9af50b000"
      }
   ],
   "vimConnectionInfo":[   
      {   
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{   
            "controllerUri":"https://dpc1.us.oracle.com:5000/v3"
         },
         "accessInfo":{   
            "username":"dsrvnfm",
            "password":"xxxx",
            "userDomain":"Default",
            "projectDomain": "default",
            "tenant":"dsrvnfm"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{   
      "ntpServerIp":"10.250.32.10",
      "xmiNetwork":{   
         "name":"ext-net4",
          "subnet": [{

              "ipVersion": "IPv4",
               "name": "ext-net-subnet",
               "fixedIps": {
                             "drPrimaryNoamIp": "10.75.189.224",
                              "drSecondaryNoamIp": "10.75.189.236",
                               "drNoamVip": "10.75.189.238"
                          }
            },
           {
             "ipVersion": "IPv6",
             "name": "ext-net-ipv6-subnet",
             "fixedIps": {
                           "drPrimaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0",
                           "drSecondaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9"
                         }
            }]
         },

			"imiNetwork": {

                "name": "imi-net",

        "subnet": [{
                     "ipVersion": "IPv4",
                     "name": "ext-net-subnet",
                     "fixedIps": {
                                   "drPrimaryNoamImiIp": "10.75.189.224",
                                   "drSecondaryNoamImiIp": "10.75.189.236"
                                 }
                   },
                   {
                     "ipVersion": "IPv6",
                     "name": "ext-net-ipv6-subnet",
                     "fixedIps": {
                                   "drPrimaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0",
                                   "drSecondaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9"
                                  }
                   }]     
      },
      "primaryNoamVmName":"NOAM00-9ca5c163",

   "flavor": "dr.noam",
   "image": "DSR-8.4.0.3.0_85.17.0.vmdk",
   "availabilityZone": "nova",
   "drNoamAffinityPolicy":"anti-affinity"
    }
 }

Sample Response: Instantiating DR NOAM Response.

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 21 Feb 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
  • The supported NOAM Flavor is DSR NOAM.
  • The supported NOAM instantiation level id is HA.
  • Support for IPv6 networks - ipVersion should be "IPv6" in the request Body.
Table below describes the parameters used for sending request to VNFM.

Table 9-7 Parameters and Definitions for DR Network OAM VNF

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level is HA.
resourceId The identifier of the resource in the scope of the VIM or the resource provider
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used for internal communication of DSR entities
name Network name, for example; ext-net
ipVersion IP version IPv4 or IPv6
ntpServerIp IP of the NTP server
primaryNoamVmName Primary Active DSR NOAM VM name
drPrimaryNoamIp IP address of primary DR Noam
drSecondaryNoamIp IP address of secondary DR Noam
drPrimaryNoamIp IP address of primary DR Noam
dsPrimaryNoamImiIp IP address for primary DR NOAM IP of IMI
drSecondaryNoamImiIp IP address for secondary DR NOAM IP of IMI
flavor (optional) flavor used for openstack deploys
image (optional) image used for openstack deploys
availabilityZone (optional) name of logical partitioning in case of host aggregate
vipSubnetName (In case of Dual Subnet) Name of VIP subnet to be used only in case of Dual Subnet
drNoamAffinityPolicy (optional) Openstack affinity policy for DR NOAM

Instantiating the Signaling VNF with Multiple XSI (1, 2 & 4 XSI Interface)

Signaling VNF supports both dynamic and fixed IP deployment

To deploy the first signaling VNF, the following must be available:

A previously instantiated DSR Network OAM VNF.

The VNF ID for a previously created DSR Signaling VNF instance.

Information about the OpenStack instance on which you want to deploy the VNF:
  • OpenStack Controller URI
  • User Domain Name
  • Project Domain Id
  • Username
  • Password
  • Tenant name

The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.

The name of a Public Network in your chosen OpenStack instance that will carry Signaling traffic.

Note:

This should be a different network than the one that carries OAM traffic.

The IP address of the NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls your chosen OpenStack instance normally hosts an NTP server, and is often a good choice.

OpenStack resource IDs for the XMI IPs from both NOAM VMs.

Note:

The resource IDs can be obtained by examining the network OAM stack to which the identified signaling VNF would be attached .

Name of the active NOAM VM.

Note:

To avoid switchover of Active NOAM, make the StandBy NOAM as Forced Standby by changing the Max Allowed HA Role to Standby on Status & Manage -> HA from Active NOAM GUI.

Name of the NOAM SG.

Expected Alarms:

IPFE Alarm: 5002 An address pertaining to inter-IPFE state synchronization is configured incorrectly.

DAMP Alarm: 19800 Communication Agent Connection Down (occurs only in the presence of SBR servers).

The following image illustrates the VNF instantiation:

Figure 9-5 VNF Instantiate Request


VNF Instantiate Request

The following table contains the supported Instantiation levels to instantiate a VNF resource for the DSR Signaling VNF.

Table 9-8 Supported Instantiation Levels for DSR Signaling VNF

VNFM Signaling Flavors Small Medium Large
DAMP IPFE STP SBR UDR DAMP IPFE STP SBR UDR DAMP IPFE STP SBR UDR
DIAMETER 2 2 0 0 0 4 2 0 0 0 32 4 0 0 0
STP 0 0 2 0 0 0 2 8 0 0 0 4 32 0 0
DIAMETER+STP 2 2 2 0 0 4 2 8 0 0 24 4 8 0 0
DIAMETER+SBR 2 2 0 3 0 4 2 0 6 0 32 4 0 9 0
DIAMETER+STP+SBR 2 2 2 3 0 4 2 4 6 0 24 4 8 9 0
DIAMETER+UDR 2 2 0 0 2 4 2 0 0 2 32 4 0 0 4
STP+UDR 0 0 2 0 2 0 0 8 0 2 0 4 32 0 4
DIAMETER+STP+SBR+UDR 2 2 2 3 2 4 2 4 6 2 16 4 16 9 4

Note:

  • DSR Signaling supports "custom" instantiation level ID based on flavor.
  • In case of UDR flavors, VNFM supports one and two xsi interfaces for UDR.
  • Total number of servers allowed per signaling VNF is 48.
  • Total number of IPFE servers allowed per signaling VNF is 4.
  • Total number of SOAMs for any of the above servers is 2.

For Example: Total number of servers per signaling VNF = No. of SOAM's + No. of DAMP's + No. of IPFE's + No. of STP's + No. of SBR's+ No. of UDR's.

For SBR flavors:
  • In case of SBR flavors, it is mandatory to pass the sbrNetwork parameter for instantiation of signaling stack. VNFM always creates Replication port for SBRs.
  • Breakdown on the number of SBRs :
    1. SMALL - 3 SBRs, 2 SBRs will be added to one server group and one is not added.

      Server group will have 2 SBRs.

      One SBR will be left out to be added manually in the mated site's server group.

    2. MEDIUM - 6 SBRS, 2 Server Groups.

      Each server group will have 2 SBRs.

      One SBR from each server group will be left out to be added manually in the mated site's server groups.

    3. LARGE - 9 SBRs, 3 Server Groups.

      Each server group will have 2 SBRs.

      One SBR from each server group will be left out to be added manually in the mated site's server groups.

  • The SBRs created are plain, they have to be manually configured as Session, Binding or Universal.

Determine the NOAM XMI Resource IDs

From the OpenStack GUI:

  1. Change your view to the tenant on which the DSR Network OAM VNF was deployed.
  2. Navigate to Orchestration->Network->Network Topology. A diagram of all VMs in the tenant is displayed.

    Note:

    The diagram may take a few minutes to appear.
  3. Click on one of the NOAM VMs.

    A screen displays with information about the specific NOAM VM.

  4. Save the resource ID for the XMI port provided in the IP addresses section of the screen.

    Note:

    The IP Addresses section of the popup screen contains information about the network ports and resource IDs assigned to the VM.
  5. Repeat the previous step for the other NOAM VM.
You can also use the following alternative:
  • Instead of passing resource IDs, user can use DSR-NOAM XMI IPs.
  • User can pass Active DSR-NOAM's XMI IP to resource id 1 and StandBy DSR-NOAM's XMI IP to resource id 2.

Note:

If DSR-NOAM is created on Dual Subnet, then use IPv4 XMI IP's of NOAM while creating SOAM.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification. Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Signaling VNF with Multiple XSI Support (1, 2 and 4 XSI only)

  • Multiple XSI supports only DSR Signaling VNF.
  • DAMP vnf supports 1, 2 & 4 xsi interface.
  • STPMP vnf supports 1, 2, & 4 xsi interface.
  • IPFE vnf supports 1, 2, & 4 xsi interface.
  • UDR vnf supports only 1 & 2 xsi interface.

While passing xsiNetwork through the request body, add the list of network in xsiNetwork.

For Example

1 xsiNetwork 2 xsiNetwork 4 xsiNetwork
"xsiNetwork": [{

"name":"provider-vlan500",

"subnet":[{

"name": "<subnet-name>",
"ipVersion": "IPv4"
}]
]
"xsiNetwork": [{
"name": "provider-vlan500",
"subnet":[{

"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
},
{
"name": "provider-vlan610",

"subnet":[{

"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
}
]
"xsiNetwork": [{
"name": "provider-vlan500",
"subnet":[{
"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
},
{
"name": "provider-vlan610",
"subnet":[{
"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
}, {
"name": "provider-vlan500",
"subnet":[{
"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
},
{
"name": "provider-vlan610",
"subnet":[{
"name":"<subnet-name>",

"ipVersion": "IPv4"

}]
}
]

Note:

In case of the UDR flavor (Diameter+UDR, Diameter+ STP+SBR+UDR, STP+UDR), "udrType" is an optional parameter. So, if a user has not used it in the request message, by default, UDR of type "EIR" is created. The other UDR type is "vMNP".

The sample request and response provided below represents signaling flavors without SBR such as, DIAMETER, STP & DIAMETER+STP, DIAMETER+UDR, and STP+UDR, with multiple xsi (1, 2, 4 xsi interface) for Dynamic IP and Fixed IP deployment model.

Sample Request

Resource URL: https://<<myhost-IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Instantiating the first signaling VNF request for Dynamic IP (Dual Subnet) deployment model.
{
                "flavourId": "DIAMETER",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active NOAM",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby NOAM",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
 "vipSubnetName": "ext-net-ipv6-subnet",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "ext-net-ipv6-subnet"
 },

{
 "ipVersion": "IPv4",
 "name": "ext-net-ipv4-subnet"
 }
]
                                },
                                "imiNetwork": {
                                                "name": "imi-private",
                                                 "subnet": [{
 "ipVersion": "IPv6",
 "name": "test6"
 },

{
 "ipVersion": "IPv4",
 "name": "test4"
 }
]
                                },
                                "xsiNetwork": [{
                                                "name": "ext-net2",
                                                "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiIPv6"
 },

{
 "ipVersion": "IPv4",
 "name": "xsiIPv4"
 }
]
 },
 {
 "name": "xsiNetworkDual2",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiNetworkDual2-IPv6"
 },
{
 "ipVersion": "IPv4",
 "name": "xsiNetworkDual2-IPv4"
 }
]
 }],
                                "ntpServerIp": "10.250.32.10",
                                "primaryNoamVmName": "NOAM00-32cd6138",
                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
                                "soamFlavor": "dsr.soam",
                                "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "daAvailabilityZone": "nova",
                                "stpFlavor": "dsr.stp",
                                "stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "stpAvailabilityZone": "nova",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity"
                }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.
Instantiating the first signaling VNF request for Dynamic IP deployment model.
{
                "flavourId": "DIAMETER+STP",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active NOAM",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby NOAM",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "ext-net-ipv6-subnet"
 }]
                                },
                                "imiNetwork": {
                                                "name": "imi-private",
                                                 "subnet": [{
 "ipVersion": "IPv6",
 "name": "test6"
 }]
                                },
                                "xsiNetwork": [{
                                                "name": "ext-net2",
                                                "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiIPv6"
 }]
 },
 {
 "name": "xsiNetworkDual2",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiNetworkDual2-IPv6"
 }]
 }],
                                "ntpServerIp": "10.250.32.10",
                                "primaryNoamVmName": "NOAM00-32cd6138",
                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
                                "soamFlavor": "dsr.soam",
                                "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "daAvailabilityZone": "nova",
                                "stpFlavor": "dsr.stp",
                                "stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "stpAvailabilityZone": "nova",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity",
                                "stpAffinityPolicy":"soft-anti-affinity"
                }
}

Instantiating the first signaling VNF request for Fixed IP deployment.

{   
   "flavourId":"DIAMETER+STP",
   "instantiationLevelId":"small",
   "extVirtualLinks":"extVirtualLinks",
   "extManagedVirtualLinks":[   
      {   
         "id":"id1",
         "virtualLinkDescId":"",
         "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
      },
      {   
         "id":"id2",
         "virtualLinkDescId":"",
         "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
      }
   ],
   "vimConnectionInfo":[   
      {   
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{   
            "controllerUri":"https://dpc1.us.oracle.com:5000/v3"
         },
         "accessInfo":{   
            "username":"dsrvnfm",
            "password":"xxxx",
            "userDomain": "Default",

            "projectDomain": "default",
            "tenant":"dsrvnfm"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{   
      "xmiNetwork":{   
         "name":"ext-net4",
         "subnet":[{
                     "ipVersion": "IPv4",
                      "name": "ext-net-subnet",
                      "fixedIps":{   
             "primarySoamXmiIp":"10.75.218.141",
             "secondarySoamXmiIp":"10.75.218.163",
             "soamVip":"10.75.218.97",
             "dampXmiIps":[   
                "10.75.218.38",
                "10.75.218.137"
             ],
             "ipfeXmiIps":[   
                "10.75.218.153",
                "10.75.218.126"
             ],
             "stpXmiIps":[   
                "10.75.218.67",
                "10.75.218.84"
             ]
          }
      }]
 },

 								"imiNetwork":{   
         		"name":"imi-private",
         		"subnet":[{ 
                        "name": "imi-private-sub",
                        "ipVersion": "IPv4",
          "fixedIps":{   
             "primarySoamImiIp":"192.167.2.9",
             "secondarySoamImiIp":"192.167.2.10",
             "dampImiIps":[   
                "192.167.2.11",
                "192.167.2.12"
             ],
             "ipfeImiIps":[   
                "192.167.2.13",
                "192.167.2.14"
             ],
             "stpImiIps":[   
                "192.167.2.15",
                "192.167.2.16"
             ]
          }
       }]
 },
      			"xsiNetwork":[   
          {   
             "name":"ext-net4",
             "subnet":[{
 												"name": "ext-net4-subnet",
 												"ipVersion": "IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.140",
                   "10.75.218.155"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.101",
                   "10.75.218.22"
                ],
                "stpXsiIps":[   
                   "10.75.218.95",
                   "10.75.218.108"
                ]
             }
           }]
          },
          {   
													"name":"ext-net",
             "subnet":[{

             "name":"ext-net-subnet",
 												"ipVersion": "IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.140",
                   "10.75.218.155"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.101",
                   "10.75.218.22"
                ],
                "stpXsiIps":[   
                   "10.75.218.95",
                   "10.75.218.108"
                ]
             }
          }]
      }],
      "ntpServerIp":"10.250.32.10",
      "primaryNoamVmName":"NOAM00-",
      "noamSgName":"dsrNetworkOam_NOAM__SG",
      "soamFlavor": "dsr.soam",
      "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "soamAvailabilityZone": "nova",
      "ipfeFlavor": "dsr.ipfe",
      "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "ipfeAvailabilityZone": "nova",
      "daFlavor": "dsr.da",
      "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "daAvailabilityZone": "nova",
      "stpFlavor": "dsr.stp",
      "stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "stpAvailabilityZone": "nova",
      "soamAffinityPolicy":"anti-affinity",
      "ipfeAffinityPolicy":"anti-affinity",
      "daAffinityPolicy":"soft-anti-affinity",
      "stpAffinityPolicy":"soft-anti-affinity"
   }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Sample Request

Instantiating the signaling VNF request with SBR (DIAMETER+SBR flavor) with multiple xsi (1,2,4 xsi interface) for Dual Subnet Dynamic IP deployment model.

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
 X-Token : <Token generated after login>
{
                "flavourId": "DIAMETER+SBR",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active NOAM",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby NOAM",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
 "vipSubnetName": "ext-net3-ipv6-subnet",
											"subnet":[{
                                                           "name": "ext-net3-subnet",
                                                           "ipVersion": "IPv4"
                                                         },
                                                          {
                                                           "name": "ext-net3-ipv6-subnet",
                                                            "ipVersion": "IPv6"
                                                          }]
                                },
                                "imiNetwork": {
                                               "name": "imi-private",
                                               "subnet":[{
                                                           "name": "imi-private-sub",
                                                           "ipVersion": "IPv4"
                                                         },
                                                          {
                                                           "name": "imi-private-ipv6-sub",
                                                           "ipVersion": "IPv6"
                                                         }]
                                },
                                "xsiNetwork": [{
                                                "name": "ext-net2",
											"subnet":[{
                                                          "name": "ext-net2-subnet",
                                                          "ipVersion": "IPv4"
                                                         },
                                                          {
                                                          "name": "ext-net2-ipv6-subnet",
                                                          "ipVersion": "IPv6"
                                                         }]
                                               },

								               {
                                                 "name": "ext-net5",
											"subnet":[{
                                                           "name": "ext-net5-subnet",
                                                           "ipVersion": "IPv4"
                                                         },
                                                          {
                                                           "name": "ext-net5-ipv6-subnet",
                                                           "ipVersion": "IPv6"
                                                         }]
                                                 }],
                                "sbrNetwork": {
                                               "name": "ext-net3",
                               				"subnet":[{
                                                           "name": "ext-net3-subnet",
                                                           "ipVersion": "IPv4"
                                                         },
                                                          {
                                                           "name": "ext-net3-ipv6-subnet",
                                                           "ipVersion": "IPv6"
                                                         }]
							 },
                                "ntpServerIp": "10.250.32.10",
                                "primaryNoamVmName": "NOAM00-32cd6138",
                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
                                "soamFlavor": "dsr.soam",
                                "soamImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSRIPFE-8.4.0.3.0_85.17.0.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
                                "daAvailabilityZone": "nova",
                                "sbrFlavor": "dsr.sbr",
                                "sbrImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
                                "sbrAvailabilityZone": "nova",
                                "sbrAffinityPolicy":"anti-affinity",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity"
                }

}

Sample Request

Instantiating the signaling VNF request with SBR (DIAMETER+SBR, DIAMETER+STP+SBR, DIAMETER+STP+SBR+UDR) with multiple xsi (1, 2, or 4 xsi interface) generated for Single Subnet Dynamic IP deployment model.

Resource URL: https://<<myhost-IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
                "flavourId": "DIAMETER+SBR",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active NOAM",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby NOAM",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
												                                    "subnet":[{
                                                           "name": "ext-net3-subnet",
                                                            "ipVersion": "IPv4"
                                                          }]
                                },
                                "imiNetwork": {
                                                "name": "imi-private",
                                                "subnet":[{
                                                            "name": "imi-private-sub",
                                                            "ipVersion": "IPv4"
                                                          }]  
                                },
                                "xsiNetwork": [{
                                                "name": "ext-net2",
												                                    "subnet":[{
                                                           "name": "ext-net2-subnet",
                                                           "ipVersion": "IPv4"
                                                          }]
                                               },
 
								               {
                                                 "name": "ext-net5",
												                                     "subnet":[{
                                                            "name": "ext-net5-subnet",
                                                            "ipVersion": "IPv4"
                                                          }]
                                                 }
								],
                                "sbrNetwork": {
                                                "name": "ext-net3",
                                				            "subnet":[{
                                                          "name": "ext-net3-subnet",
                                                          "ipVersion": "IPv4"
                                                          }]
								 },
                                "ntpServerIp": "10.250.32.10",
                                "primaryNoamVmName": "NOAM00-32cd6138",
                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
                                "soamFlavor": "dsr.soam",
                                "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "daAvailabilityZone": "nova",
                                "sbrFlavor": "dsr.sbr",
                                "sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
                                "sbrAvailabilityZone": "nova",
                                "sbrAffinityPolicy":"affinity",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity"
                }
}

Instantiating the signaling VNF request with SBR (DIAMETER+SBR, DIAMETER+STP+SBR) with multiple xsi (1,2,4 xsi interface) generated for Fixed IP deployment model.

{ 
 "flavourId":"DIAMETER+SBR",
 "instantiationLevelId":"small",
 "extVirtualLinks":"extVirtualLinks",
 "extManagedVirtualLinks":[ 
 { 
 "id":"id1",
 "virtualLinkDescId":"active NOAM",
 "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
 },
 { 
 "id":"id2",
 "virtualLinkDescId":"standby NOAM",
 "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
 }
 ],
 "vimConnectionInfo":[ 
 { 
 "id":"vimid",
 "vimType":"OpenStack",
 "interfaceInfo":{ 
 "controllerUri":"https://dpc1.us.oracle.com:5000/v3"
 },
 "accessInfo":{ 
 "username":"dsrvnfm",
 "password":"xxxx",
 "userDomain": "Default",
 "projectDomain": "default",
 "tenant":"dsrvnfm"
 }
 }
 ],
 "localizationLanguage":"localizationLanguage",
 "additionalParams":{ 
 "xmiNetwork":{ 
 									"name":"ext-net4",
 									"subnet":[{
              "name": "ext-net4-subnet",
              "ipVersion":"IPv4",
              "fixedIps":{ 
                       "primarySoamXmiIp":"10.75.218.141",
                       "secondarySoamXmiIp":"10.75.218.163",
                       "soamVip":"10.75.218.97",
                       "dampXmiIps":[ 
                                      "10.75.218.38",
                                      "10.75.218.137"
                                     ],
                       "ipfeXmiIps":[ 
                                      "10.75.218.153",
                                      "10.75.218.126"
                                    ],
                       "sbrXmiIps":[ 
                                      "10.75.218.67",
                                      "10.75.218.84",
                                      "10.75.218.184"
                                    ]
                    }
         }]
      },
"imiNetwork":{ 
               "name":"imi-private",
               "subnet":[{
                           "name": "imi-private-sub",
                           "ipVersion":"IPv4",
                           "fixedIps":{ 
                                       "primarySoamImiIp":"192.167.2.1",
                                       "secondarySoamImiIp":"192.167.2.2",
                                       "dampImiIps":[ 
                                                     "192.167.2.3",
                                                     "192.167.2.4"
                                                     ],
                                       "ipfeImiIps":[ 
                                                     "192.167.2.5",
                                                     "192.167.2.6"
                                                     ],
                                        "sbrImiIps":[ 
                                                     "192.167.2.7",
                                                     "192.167.2.8",
                                                     "192.167.2.9"
                                                     ]
                                     }
                         }]
         },
 "sbrNetwork":{ 
                "name":"ext-net7",
                "subnet":[{
                           "name": "ext-net7-subnet",
                           "ipVersion":"IPv4",
                           "fixedIps":{ 
                                        "sbrNetworkIps":[ 
                                                         "10.196.218.95",
                                                         "10.196.218.108",
                                                         "10.196.218.18"
                                                         ]
                                      }
                      }]
            },

 "xsiNetwork":[{ 
                 "name":"ext-net4",
                 "subnet":[{
                          "name": "ext-net4-subnet",
                          "ipVersion":"IPv4",
                          "fixedIps":{ 
                                       "dampXsiIps":[ 
                                                     "10.75.218.140",
                                                     "10.75.218.155"
                                                     ],
                                       "ipfeXsiIps":[ 
                                                     "10.75.218.101",
                                                     "10.75.218.22"
                                                     ]
                                     }
                        },
                        { 
                          "name":"ext-net4",
                          "subnet": [{
                          												"name": "ext-net-sub",
                          												"ipVersion":"IPv4",
                          												"fixedIps":{ 
                                      									"dampXsiIps":[ 
                                                    "10.75.218.42",
                                                    "10.75.218.122"
                                                   ],
                                      									"ipfeXsiIps":[ 
                                                     "10.75.218.91",
                                                     "10.75.218.131"
                                                   ]
                                       }
                        }
 ],
 "ntpServerIp":"10.250.32.10",
 "primaryNoamVmName":"NOAM00-f1888e6d",
 "noamSgName":"dsrNetworkOam_NOAM_f1888e6d_SG"
 "soamFlavor": "dsr.soam",
 "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
 "soamAvailabilityZone": "nova",
 "ipfeFlavor": "dsr.ipfe",
 "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
 "ipfeAvailabilityZone": "nova",
 "daFlavor": "dsr.da",
 "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
 "daAvailabilityZone": "nova",
 "sbrFlavor": "dsr.sbr",
 "sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
 "sbrAvailabilityZone": "nova",
 "sbrAffinityPolicy":"affinity",
 "soamAffinityPolicy":"anti-affinity",
 "ipfeAffinityPolicy":"anti-affinity",
 "daAffinityPolicy":"soft-anti-affinity"
 }
}

For signaling flavors with UDR with multiple xsi (1 and 2 XSI interface) for Fixed IP deployment model

{   
   "flavourId":"DIAMETER+UDR",
   "instantiationLevelId":"small",
   "extVirtualLinks":"extVirtualLinks",
   "extManagedVirtualLinks":[   
      {   
         "id":"id1",
         "virtualLinkDescId":"active NOAM",
         "resourceId":"6ba09324-0568-4489-bdb6-bcc9bb6218a3"
      },
      {   
         "id":"id2",
         "virtualLinkDescId":"standby NOAM",
         "resourceId":"379e4fce-61a7-4323-8ee3-d548e819042f"
      }
   ],
   "vimConnectionInfo":[   
      {   
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{   
            "controllerUri":"https://dpc1.us.oracle.com:5000/v3"
         },
         "accessInfo":{   
            "username":"dsrvnfm",
            "password":"xxxx",
            "userDomain": "Default",

            "projectDomain": "default",
            "tenant":"dsrvnfm"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{   
      "xmiNetwork":{   
         "name":"ext-net4",
         "subnet":[{
 								"name": "ext-net4-subnet",
 								"ipVersion":"IPv4",
 								"fixedIps":{   
             "primarySoamXmiIp":"10.75.218.207",
             "secondarySoamXmiIp":"10.75.218.218",
             "soamVip":"10.75.218.204",
             "primaryUdrXmiIp":"10.75.218.243",
             "secondaryUdrXmiIp":"10.75.218.223",
             "udrVip":"10.75.218.191",
             "dampXmiIps":[   
                "10.75.218.196",
                "10.75.218.213"
             ],
             "ipfeXmiIps":[   
                "10.75.218.226",
                "10.75.218.216"
             ]
          }
       }]
 },

 "imiNetwork":{   
         "name":"imi-private",
 "subnet":[{ 
 "name": "imi-private-sub",
 "ipVersion":"IPv4",
 "fixedIps":{   
             "primarySoamImiIp":"192.167.2.1",
             "secondarySoamImiIp":"192.167.2.2",
             "primaryUdrImiIp":"192.167.2.3",
             "secondaryUdrImiIp":"192.167.2.4",
             "dampImiIps":[   
                "192.167.2.5",
                "192.167.2.6"
             ],
             "ipfeImiIps":[   
                "192.167.2.7",
                "192.167.2.8"
             ]
          }
      }]
},
"xsiNetwork":[{   
             "name":"ext-net4",
 "subnet":[{
 "name": "ext-net4-subnet",
 "ipVersion":"IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.214",
                   "10.75.218.217"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.149",
                   "10.75.218.238"
                ],
                "primaryUdrXsiIps":[   
                   "10.75.218.201"
                ],
                "secondaryUdrXsiIps":[   
                   "10.75.218.215"
                ]
               }
             }]
          },
         {   
             "name":"ext-net4",
 "subnet":[{
 "name": "ext-net4-subnet",
  "ipVersion":"IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.235",
                   "10.75.218.178"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.225",
                   "10.75.218.219"
                ],
                "primaryUdrXsiIps":[   
                   "10.75.218.175"
                ],
                "secondaryUdrXsiIps":[   
                   "10.75.218.230"
                ]
              }
          }]
      }],
      "ntpServerIp":"10.250.32.10",
      "primaryNoamVmName":"NOAM00-a2eaba59",
      "noamSgName":"dsrNetworkOam_NOAM_a2eaba59_SG"
      "soamFlavor": "dsr.soam",
      "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "soamAvailabilityZone": "nova",
      "ipfeFlavor": "dsr.ipfe",
      "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "ipfeAvailabilityZone": "nova",
      "daFlavor": "dsr.da",
      "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "daAvailabilityZone": "nova",
      "udrFlavor": "udr.noam",
      "udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
      "udrType": "vMNP",
      "udrAvailabilityZone": "nova",
     "soamAffinityPolicy":"anti-affinity",
     "ipfeAffinityPolicy":"anti-affinity",
     "daAffinityPolicy":"soft-anti-affinity",
     "udrAffinityPolicy":"anti-affinity"
   }
}

Sample Response

Instantiating the signaling VNF with SBR response

202 Accepted
Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml

Sample Request

For signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface) for Fixed IP deployment model.

{"flavourId": "DIAMETER+STP+SBR+UDR",
   "instantiationLevelId": "small",
   "extVirtualLinks": "extVirtualLinks",
   "extManagedVirtualLinks": [
     {
       "id": "id1",
       "virtualLinkDescId": "active NOAM",
       "resourceId": "790bf9f7-8834-4c3a-bd17-5544ef5e6848"
     },
     {
       "id": "id2",
       "virtualLinkDescId": "standby NOAM",
       "resourceId": "1776d877-f643-45d6-b6da-bf1a540a01d1"
     }
   ],
   "vimConnectionInfo": [
     {
       "id": "vimid",
       "vimType": "OpenStack",
       "interfaceInfo": {
         "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
       },
       "accessInfo": {
         "username": "dsrvnfm",
         "password": "xxxxxx",
         "userDomain": "Default",
         "projectDomain": "default",
         "tenant": "dsrvnfm"
       }
     }
   ],
   "localizationLanguage": "localizationLanguage",
  "additionalParams": {
     "xmiNetwork": {
                    "name": "ext-net4",
                    "subnet":[{
                                "name": "ext-net4-subnet",
                                "ipVersion": "IPv4",
                                "fixedIps": {
                                             "primarySoamXmiIp": "10.75.218.91",
                                             "secondarySoamXmiIp":"10.75.218.223",
                                             "soamVip":"10.75.218.36",
                                             "primaryUdrXmiIp":"10.75.218.180",
                                             "secondaryUdrXmiIp":"10.75.218.205",
                                             "udrVip":"10.75.218.121",
                                             "dampXmiIps": ["10.75.218.242","10.75.218.194"],
                                             "ipfeXmiIps": ["10.75.218.159","10.75.218.198"],
                                             "stpXmiIps": ["10.75.218.241","10.75.218.128"],
                                             "sbrXmiIps": ["10.75.218.147","10.75.218.209","10.75.218.105"]
                                            }
                            }]
               },
 
    "imiNetwork": {
                    "name": "imi-int",
                    "subnet":[{
                                "name": "imi-int-sub",
                                "ipVersion": "IPv4",
                                "fixedIps": {
                                             "primarySoamImiIp": "192.167.2.0",
                                             "secondarySoamImiIp":"192.167.2.1",
                                             "primaryUdrImiIp":"192.167.2.2",
                                             "secondaryUdrImiIp":"192.167.2.3",
                                             "dampImiIps": ["192.167.2.4","192.167.2.5"],
                                             "ipfeImiIps": ["192.167.2.6","192.167.2.7"],
                                             "stpImiIps": ["192.167.2.8","192.167.2.9"],
                                             "sbrImiIps": ["192.167.2.10","192.167.2.11","192.167.2.12"]
                                            }
                           }]
                },
 
     "sbrNetwork": {
                     "name": "ext-net4",
                     "subnet":[{
                                 "name": "ext-net4-subnet",
                                 "ipVersion": "IPv4",
                                 "fixedIps": {
                                              "sbrNetworkIps": ["10.75.218.231","10.75.218.236","10.75.218.244"]
                                              }
                             }]
                 },
     "xsiNetwork": [{    
                     "name": "ext-net4",
                     "subnet":[{
                                "name": "ext-net4-subnet",
                                "ipVersion": "IPv4",
                                 "fixedIps": {
                                              "dampXsiIps": ["10.75.218.238","10.75.218.47"],
                                              "ipfeXsiIps": ["10.75.218.239","10.75.218.93"],
                                              "stpXsiIps": ["10.75.218.214","10.75.218.19"],
                                              "primaryUdrXsiIps": ["10.75.218.228"],
                                              "secondaryUdrXsiIps":["10.75.218.235"]
                                            }
 
                             }]
                            },
                             {
                               "name": "ext-net4",
                               "subnet":[{
                                          "name": "ext-net4-subnet",
                                          "ipVersion": "IPv4",
                                          "fixedIps": {
                                                        "dampXsiIps": ["10.75.218.230","10.75.218.225"],
                                                        "ipfeXsiIps": ["10.75.218.49","10.75.218.245"],
                                                        "stpXsiIps": ["10.75.218.170","10.75.218.224"],
                                                        "primaryUdrXsiIps": ["10.75.218.233"],
                                                        "secondaryUdrXsiIps":["10.75.218.227"]
                                                      }
                                      }]
                            }
     ],
     "ntpServerIp": "10.250.32.10",
     "primaryNoamVmName": "NOAM00-d8fc80a2",
     "noamSgName": "dsrNetworkOam_NOAM_d8fc80a2_SG"
     "soamFlavor": "dsr.soam",
     "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "soamAvailabilityZone": "nova",
     "ipfeFlavor": "dsr.ipfe",
     "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "ipfeAvailabilityZone": "nova",
     "daFlavor": "dsr.da",
     "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "daAvailabilityZone": "nova",
     "udrFlavor": "udr.noam",
     "udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "udrAvailabilityZone": "nova",
     "sbrFlavor": "dsr.sbr",
     "sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "sbrAvailabilityZone": "nova",
     "udrType": "vMNP",
     "sbrAffinityPolicy":"affinity",
     "soamAffinityPolicy":"anti-affinity",
     "ipfeAffinityPolicy":"anti-affinity",
     "daAffinityPolicy":"soft-anti-affinity",
     "stpAffinityPolicy":"soft-anti-affinity",
     "udrAffinityPolicy":"anti-affinity"
   }}

Sample Response

Instantiating the signaling VNF with DIAMETER+STP+SBR+UDR response

202 Accepted

Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml

Sample Request

For signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface) with Custom Size for Dynamic IP deployment model.

URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
 X-Token : <Token generated after login>
{"flavourId": "DIAMETER+STP+SBR+UDR",
   "instantiationLevelId": "custom",
   "extVirtualLinks": "extVirtualLinks",
   "extManagedVirtualLinks": [
     {
       "id": "id1",
       "virtualLinkDescId": "active NOAM",
       "resourceId": "790bf9f7-8834-4c3a-bd17-5544ef5e6848"
     },
     {
       "id": "id2",
       "virtualLinkDescId": "standby NOAM",
       "resourceId": "1776d877-f643-45d6-b6da-bf1a540a01d1"
     }
   ],
   "vimConnectionInfo": [
     {
       "id": "vimid",
       "vimType": "OpenStack",
       "interfaceInfo": {
         "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
       },
       "accessInfo": {
         "username": "dsrvnfm",
         "password": "xxxxxx",
         "userDomain": "Default",
         "projectDomain": "default",
         "tenant": "dsrvnfm"
       }
     }
   ],
   "localizationLanguage": "localizationLanguage",
  "additionalParams": {
     "xmiNetwork": {
       "name": "ext-net4",
      "subnet":[{
                 "name": "ext-net4-subnet",
                 "ipVersion": "IPv4"
                }]
     },
     "imiNetwork": {
       "name": "imi-int",
      "subnet":[{
                  "name": "imi-net-sub",
                  "ipVersion": "IPv4"
                }]
     },
     "xsiNetwork": [
       {     
         "name": "ext-net4",
       "subnet":[{
                  "name": "ext-net4-subnet",
                  "ipVersion": "IPv4"
                 }]
       },
       {
         "name": "ext-net4",
        "subnet":[{
                   "name": "ext-net4-subnet",
                   "ipVersion": "IPv4"
                  }]
       }
     ],
      "sbrNetwork": {
                     "name": "ext-net4",
                    "subnet":[{
                              "name": "ext-net4-subnet",
                              "ipVersion": "IPv4"
                             }]
     },
     "ntpServerIp": "10.250.32.10",
     "primaryNoamVmName": "NOAM00-d8fc80a2",
     "noamSgName": "dsrNetworkOam_NOAM_d8fc80a2_SG",
     "soamFlavor": "dsr.soam",
     "soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "soamAvailabilityZone": "nova",
     "ipfeFlavor": "dsr.ipfe",
     "ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "ipfeAvailabilityZone": "nova",
     "daFlavor": "dsr.da",
     "daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "daAvailabilityZone": "nova",
     "udrFlavor": "udr.noam",
     "udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "udrAvailabilityZone": "nova",
     "udrType": "vMNP",
     "sbrFlavor": "dsr.sbr",
     "sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
     "sbrAvailabilityZone": "nova",
     "sbrAffinityPolicy":"affinity",
     "soamAffinityPolicy":"anti-affinity",
     "ipfeAffinityPolicy":"anti-affinity",
     "daAffinityPolicy":"soft-anti-affinity",
     "stpAffinityPolicy":"soft-anti-affinity",
     "udrAffinityPolicy":"anti-affinity",
     "numDa": "4",
     "numIpfe": "2",
     "numStp": "4",
     "numSbr": "3",
    "numUdr": "2"
   }}

Sample Response

Instantiating the signaling VNF with DIAMETER+STP+SBR+UDR for Custom Size response
202 Accepted

Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml

The following table describes the rules and required values of DSR Signaling flavor:

Table 9-9 DSR Signaling Flavor Values

DSR Signaling Flavor Rules Values
DIAMETER numDa and numIpfe are mandatory fields

Minimum value of numDa to be passed should be 1

Minimum value of numIpfe to be passed should be 2

STP numStp is a mandatory field Minimum value of numStp to be passed should be 1
DIAMETER+STP numDa and numStp are mandatory fields

Minimum value of numDa to be passed should be 1

Minimum value of numStp to be passed should be 1

DIAMETER+SBR numSbr is a mandatory field

Minimum value of numSbr to be passed should be 3

DIAMETER+STP+SBR numStp and numSbr are mandatory fields

Minimum value of numStp to be passed should be 1

Minimum value of numSbr to be passed should be 3

DIAMETER+UDR numUdr is a mandatory field Minimum value of numUdr to be passed should be 2
STP+UDR numUdr is a mandatory field Minimum value of numUdr to be passed should be 2
DIAMETER+STP+SBR+UDR All the fields are required The minimum values to be passed are as follows:
  • numDa: 1
  • numIpfe: 2
  • numStp: 1
  • numSbr: 3
  • numUdr: 2
  • Damp can be maximum 32 and minimum 1.
  • Stp can be maximum 32 and minimum 1.
  • Ipfe can be maximum 4. It exists in pair and minimum is 2.
  • Sbr can be maximum 9. It exists in multiple of 3 and minimum is 3.
  • Udr can be maximum 4. It exists in pair and minimum is 2.
  • Total C-level server count should not exceed 48.

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
  • If the VNFM creates a VNF that is operational, but has no DIAMETER configuration data, then create the necessary configuration data (peers, connections, etc.) to perform DIAMETER routing.
  • The flavor ID must be selected based on the VMs to be deployed and the instantiation level must be selected based on the number of VMs required.
  • Only the IPs of the required VM must be provided in the fixedIp parameter.

    For Example

    "flavorId": "DIAMETER+STP", "instantiationLevelId": "small" - This brings up 2 SOAM, 2 DAMP, 2 IPFE, 2 STP servers.
  • The user must provide primarySoamXmiIp(1), secondarySoamXmiIp(1), soamVip(1), dampXmiIps(2), ipfeXmiIps(2), stpXmiIps(2), dampXsiIps(2), ipfeXsiIps(2), stpXsiIps(2)
  • DA-MP proceeds for Cloud-init after SOAM installation is complete.

Detailed explanation of XMI, IMI and XSI Network

The detailed explanation of XMI and XSI Network for the additional parameters are provided below:

For XMI Network


"xmiNetwork":{   
         "name":"<NAME of the network of XMI IPS >",
"subnet": [{
"name": "<Name of the Subnet of XMI network>"
         "ipVersion":"IPv4",
         "fixedIps":{   
            "primarySoamXmiIp":"<ACTIVE SOAM XMI IP>",
            "secondarySoamXmiIp":"<STANDBY SOAM XMI IP>",
            "soamVip":"<SOAM VIP>",    
            "dampXmiIps":[   
               "<DAMP 00 XMI IP>",
               "<DAMP 01 XMI IP>"
            ],
            "ipfeXmiIps":[   
               "<IPFE 00 XMI IP>",
               "<IPFE 01 XMI IP>"
            ],
  "stpXmiIps":[   
               "<STP 00 XMI IP>",
               "<STP 01 XMI IP>"
            ]
         }
      }]
}

For IMI Network


"xmiNetwork":{   
         "name":"<NAME of the network of XMI IPS >",
"subnet":[{
"name": "<Name of the Subnet of XMI Network>",
         "ipVersion":"IPv4",
         "fixedIps":{   
            "primarySoamImiIp":"<ACTIVE SOAM IMI IP>",
            "secondarySoamImiIp":"<STANDBY SOAM IMI IP>",    
            "dampImiIps":[   
               "<DAMP 00 IMI IP>",
               "<DAMP 01 IMI IP>"
            ],
            "ipfeImiIps":[   
               "<IPFE 00 IMI IP>",
               "<IPFE 01 IMI IP>"
            ],
  "stpImiIps":[   
               "<STP 00 IMI IP>",
               "<STP 01 IMI IP>"
            ]
         }
      }]
}

For XSI Network

"xsiNetwork":[   
         {   
            "name":"<NAME of the network of XSI 1>",
            "subnet": [{
 "name": "<Name of the Subnet of XSI-1 network>",
  "ipVersion":"IPv4",
            "fixedIps":{   
               "dampXsiIps":[   
                  "<DAMP00 XSI 1 IP>",
                  "<DAMP 01 XSI 1 IP>"
               ],
               "ipfeXsiIps":[   
                  "<IPFE00 XSI 1 IP>",
                  "<IPFE01 XSI 1 IP>"
               ],
  "stpXsiIps":[   
                  "<STP00 XSI 1 IP>",
                  "<STP01 XSI 1 IP>"
               ]
             }
            }]
         },
         {   
            "name":"<NAME of the network of XSI 2>",
            "subnet": [{
 "name": "<Name of the Subnet of XSI-2 network>",
 "ipVersion":"IPv4",
            "fixedIps":{   
               "dampXsiIps":[   
                  "<DAMP00 XSI 2 IP>",
                  "<DAMP01 XSI 2 IP>"
               ],
               "ipfeXsiIps":[   
                  "<IPFE00 XSI 2 IP>",
                  "<IPFE01 XSI 2 IP>"
               ],
               "stpXsiIps":[   
                  "<STP00 XSI 2 IP>",
                  "<STP01 XSI 2 IP>"
               ] 
            }
         }]
      ]]

The following describes the parameters used for sending request to VNFM.

Table 9-10 Parameters and Definitions for Signaling VNF with Multiple XSI

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated.
resourceId The identifier of the resource (active NOAM and then standBy NOAM) in the scope of the VIM or the resource provider
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used to provide access to the DSR entities (GUI, ssh), and for internal communication
name Network name, for example; ext-net
ipVersion IP version IPv4 or IPv6
xsiNetwork Network that is used for DSR signaling traffic
ntpServerIP IP of the NTP server
primaryNoamVmName Name of primary NOAM VM on which the configured XML is loaded
noamSgName The server group of the NOAM VM
primarySoamXmiIp IP address of primary SOAM
secondarySoamXmiIp IP address of secondary SOAM
soamVip VIP of SOAM
dampXmiIps List of DAMP external management IPs (only if DAMPs are being instantiated)
ipfeXmiIps List of IPFE external management IPs (only if IPFEs are being instantiated)
stpXmiIps List of vSTP external management IPs (only if STPs are being instantiated)
dampXsiIps List of DAMP signaling IPs (only if DAMPs are being instantiated)
ipfeXsiIps List of IPFE signaling IPs (only if IPFEs are being instantiated)
stpXsiIps List of STP signaling IPs (only if STPs are being instantiated)
primaryUdrXmiIp IP address of primary UDR (only if UDRs are being instantiated)
secondaryUdrXmiIp IP address of secondary UDR (only if UDRs are being instantiated)
udrVip VIP address of UDR (only if UDRs are being instantiated)
primaryUdrXsiIps List of primary UDR signaling IPs (only if UDRs are being instantiated)
secondaryUdrXsiIps List of secondary UDR signaling IPs (only if UDRs are being instantiated)
sbrXmiIps List of SBR external management IPs (only if SBRs are being instantiated)
sbrNetworkIps List of SBR replication port IPs (only if SBRs are being instantiated)
primarySoamImiIp IP address of primary SOAM for IMI
secondarySoamImiIp IP address of secondary SOAM for IMI
dampImiIps List of DAMP internal management IPs (only if DAMPs are being instantiated)
ipfeImiIps List of IPFE internal management IPs (only if IPFEs are being instantiated)
stpImiIps List of vSTP internal management IPs (only if STPs are being instantiated)
primaryUdrImiIp IP address of primary UDR for IMI (only if UDRs are being instantiated)
secondaryUdrImiIp IP address of secondary UDR for IMI (only if UDRs are being instantiated)
sbrImiIps List of SBR internal management IPs (only if SBRs are being instantiated)
soamFlavor (optional) flavor used for OpenStack deploys
soamImage (optional) image used for OpenStack deploys
soamAvailabilityZone (optional) name of logical partitioning in case of host aggregate
ipfeFlavor (optional) flavor used for OpenStack deploys
ipfeImage (optional) image used for OpenStack deploys

If you are using the Multiqueue feature, you must follow the prerequisite for the IPFE image.

ipfeAvailabilityZone (optional) name of logical partitioning in case of host aggregate
daFlavor (optional) flavor used for OpenStack deploys
daImage (optional) image used for OpenStack deploys
daAvailabilityZone (optional) name of logical partitioning in case of host aggregate
stpFlavor (optional) flavor used for OpenStack deploys
stpImage (optional) image used for OpenStack deploys
stpAvailabilityZone (optional) name of logical partitioning in case of host aggregate
sbrFlavor (optional) flavor used for OpenStack deploys
sbrImage (optional) image used for OpenStack deploys
sbrAvailabilityZone (optional) name of logical partitioning in case of host aggregate
udrFlavor (optional) flavor used for OpenStack deploys
udrImage (optional) image used for OpenStack deploys
udrAvailabilityZone (optional) name of logical partitioning in case of host aggregate
vipSubnetName (In case of Dual Subnet) name of VIP subnet to be used only in case of Dual Subnet
soamAffinityPolicy (optional) openstack affinity policy for SOAM
daAffinityPolicy (optional) openstack affinity policy for DAMP
ipfeAffinityPolicy (optional) openstack affinity policy for IPFE
sbrAffinityPolicy (optional) openstack affinity policy for SBR
stpAffinityPolicy (optional) openstack affinity policy for STP
udrAffinityPolicy (optional) openstack affinity policy for UDR
udrType (optional) Type of UDR to be created
tsa (optional) for configuring tsa
optionSets (optional) for configuring optionSets of tsa
numDa (Optional - Used only during "custom" instantiation level id based on flavor) Number of Damp Server
numIpfe (Optional - Used only during "custom" instantiation level id based on flavor) Number of Ipfe Server
numStp (Optional - Used only during "custom" instantiation level id based on flavor) Number of Stp Server
numUdr (Optional - Used only during "custom" instantiation level id based on flavor) Number of Udr Server
numSbr (Optional - Used only during "custom" instantiation level id based on flavor) Number of Sbr Server

Instantiating the Signaling VNF with Service MP deployment

VNFM deploys the Service MP along with vSTP-MP only. Service MP deployment is optional. vSTP-MP can be independently deployed without service MP.

To enable Service MP Deployment, update "serviceMp": "true" in the Signaling request. Default value is "false".

If Service MP is not included ("serviceMp": "false") while vSTP-MP instantiation, the Service MP can be scaled up from 0 to any number (till the maximum supported size) by scale using "scaleInfo (Arbitary Size)" operation.

Note:

VNFM does not support service MP feature for DIAMETER+STP+SBR and DIAMETER+STP+SBR+UDR flavors with "instantiationLevelId": "large".

Sample Request for DIAMETER+STP for dynamic IP deployment model

This is a sample request for signaling flavors with Service MP - STP, DIAMETER+STP, DIAMETER+STP+SBR, DIAMETER+STP+SBR+UDR, STP+UDR with multiple xsi (1,2,4 xsi interface) for dynamic IP deployment model.

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json
X-Token : <Token generated after login>

{
                "flavourId": "DIAMETER+STP",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active NOAM",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby NOAM",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }

    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "ext-net-ipv6-subnet"
 }]
                                },
                                "imiNetwork": {
                                                "name": "imi-private",
                                                 "subnet": [{
 "ipVersion": "IPv6",
 "name": "test6"
 }]
                                },
                                "xsiNetwork": [{
                                                "name": "ext-net2",
                                                "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiIPv6"
 }]
 },
 {
 "name": "xsiNetworkDual2",
 "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiNetworkDual2-IPv6"
 }]
 }],
                                "ntpServerIp": "10.250.32.10",
                                "primaryNoamVmName": "NOAM00-32cd6138",
                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
                                "serviceMp": "true",
                                "soamFlavor": "dsr.soam",
                                "soamImage": "DSR-8.5.0.2.0.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSR-8.5.0.2.0.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-8.5.0.2.0.vmdk",
                                "daAvailabilityZone": "nova",
                                "stpFlavor": "dsr.stp",
                                "stpImage": "DSR-8.5.0.2.0.vmdk",
                                "stpAvailabilityZone": "nova",
                                "serviceMpFlavor": "dsr.ServiceMp",
                                "serviceMpImage": "DSR-8.5.0.2.0.vmdk",
                                "serviceMpAvailabilityZone": "nova",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity",
                                "stpAffinityPolicy":"soft-anti-affinity"
                }
}

Sample Request for DIAMETER+STP for FIxed IP deployment model.

Sample Request for signaling flavors without SBR. DIAMETER,STP and DIAMETER+STP, DIAMETER+UDR, STP+UDR) with multiple xsi (1,2,4 xsi interface) for FIxed IP deployment model.

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json
X-Token : <Token generated after login>
{   
   "flavourId":"DIAMETER+STP",
   "instantiationLevelId":"small",
   "extVirtualLinks":"extVirtualLinks",
   "extManagedVirtualLinks":[   
      {   
         "id":"id1",
         "virtualLinkDescId":"",
         "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
      },
      {   
         "id":"id2",
         "virtualLinkDescId":"",
         "resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
      }
   ],
   "vimConnectionInfo":[   
      {   
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{   
            "controllerUri":"https://dpc1.us.oracle.com:5000/v3"
         },
         "accessInfo":{   
            "username":"dsrvnfm",
            "password":"xxxx",
            "userDomain": "Default",

            "projectDomain": "default",
            "tenant":"dsrvnfm"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{   
      "xmiNetwork":{   
         "name":"ext-net4",
         "subnet":[{
                     "ipVersion": "IPv4",
                      "name": "ext-net-subnet",
                      "fixedIps":{   
             "primarySoamXmiIp":"10.75.218.141",
             "secondarySoamXmiIp":"10.75.218.163",
             "soamVip":"10.75.218.97",
             "dampXmiIps":[   
                "10.75.218.38",
                "10.75.218.137"
             ],
             "ipfeXmiIps":[   
                "10.75.218.153",
                "10.75.218.126"
             ],
             "stpXmiIps":[   
                "10.75.218.67",
                "10.75.218.84"
             ],
             "serviceMpXmiIps":[   
                "10.75.218.69",
                "10.75.218.85"
             ]
          }
      }]
 },

 "imiNetwork":{   
         "name":"imi-private",
         "subnet":[{ 
                        "name": "imi-private-sub",
                        "ipVersion": "IPv4",
          "fixedIps":{   
             "primarySoamImiIp":"192.167.2.9",
             "secondarySoamImiIp":"192.167.2.10",
             "dampImiIps":[   
                "192.167.2.11",
                "192.167.2.12"
             ],
             "ipfeImiIps":[   
                "192.167.2.13",
                "192.167.2.14"
             ],
             "stpImiIps":[   
                "192.167.2.15",
                "192.167.2.16"
             ],
             "serviceMpImiIps":[   
                "192.167.2.18",
                "192.167.2.19"
             ]
          }
       }]
 },
      "xsiNetwork":[   
          {   
             "name":"ext-net4",
             "subnet":[{
 "name": "ext-net4-subnet",
 "ipVersion": "IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.140",
                   "10.75.218.155"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.101",
                   "10.75.218.22"
                ],
                "stpXsiIps":[   
                   "10.75.218.95",
                   "10.75.218.108"
                ]
             }
          }]
 },
         
{   
             "name":"ext-net",
             "subnet":[{

 "name": "ext-net-subnet",

 "ipVersion": "IPv4",
             "fixedIps":{   
                "dampXsiIps":[   
                   "10.75.218.140",
                   "10.75.218.155"
                ],
                "ipfeXsiIps":[   
                   "10.75.218.101",
                   "10.75.218.22"
                ],
                "stpXsiIps":[   
                   "10.75.218.95",
                   "10.75.218.108"
                ]
             }
          }]

 }],
      "ntpServerIp":"10.250.32.10",
      "primaryNoamVmName":"NOAM00-",
      "noamSgName":"dsrNetworkOam_NOAM__SG",
      "serviceMp": "true",
      "soamFlavor": "dsr.soam",
      "soamImage": "DSR-8.5.0.2.0.vmdk",
      "soamAvailabilityZone": "nova",
      "ipfeFlavor": "dsr.ipfe",
      "ipfeImage": "DSR-8.5.0.2.0.vmdk",
      "ipfeAvailabilityZone": "nova",
      "daFlavor": "dsr.da",
      "daImage": "DSR-8.5.0.2.0.vmdk",
      "daAvailabilityZone": "nova",
      "stpFlavor": "dsr.stp",
      "stpImage": "DSR-8.5.0.2.0.vmdk",
      "stpAvailabilityZone": "nova",
      "soamAffinityPolicy":"anti-affinity",
      "ipfeAffinityPolicy":"anti-affinity",
      "daAffinityPolicy":"soft-anti-affinity",
      "stpAffinityPolicy":"soft-anti-affinity"
   }
}

Instantiating Multiple Signaling VNFs

To instantiate multiple Signaling VNFs, simply repeat the above procedures. You would need to create another DSR Signaling VNF instance, and you must deploy each Signaling VNF on a separate OpenStack instance.

Note:

For lab installations, a separate tenant on the same OpenStack instance is acceptable.

Instantiating the APIGW VNF

To start APIGW deployment, it is required to instantiate an APIGW VNF. Before deploying the VNF, make sure the following information is available:

The VNF ID for a previously created APIGW VNF instance.

Information about the OpenStack instance on which the VNF must be deployed:
  • OpenStack Controller URI
  • User Domain Name
  • Project Domain Id
  • Username
  • Password
  • Tenant name

The name of a public network in the selected OpenStack instance that will carry APIGW traffic.

The name of a public network in the selected OpenStack instance that will carry signaling traffic.

Note:

This should be a different network than the one that carries APIGW traffic

The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance, normally hosts an NTP server, and is often a good choice.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification. Swagger specifications can be found post VNFM installation at ( https://<VNFM IP>:8443/docs/vnfm/).

The following table contains the supported Instantiation levels to instantiate the VNF resource for DSR APIGW VNF.

Table 9-11 Supported Instantiation levels for DSR APIGW VNF

APIGW Flavors supported by VNFM Small Medium Large
ADMIN APP DB Management Node DB Data Node DB SQL NODE ADMIN APP DB Management Node DB Data Node DB SQL NODE ADMIN APP DB Management Node DB Data Node DB SQL NODE
APIGW 1 1 2 2 2 1 2 2 4 4 1 3 2 8 8

Sample Request for Dynamic IP Deployment

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Instantiating APIGW Request generated.

{
  "flavourId": "APIGW",
  "instantiationLevelId": "small",
  "extVirtualLinks": "extVirtualLinks",
  "extManagedVirtualLinks": [],
      "vimConnectionInfo": [
    {
      "id": "vimid",
      "vimType": "OpenStack",
      "interfaceInfo": {
        "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
      },
      "accessInfo": {
        "username": "dsrat.user",
        "password": "xxxx",
        "userDomain": "Default",
        "projectDomain": "default",
        "tenant": "DSR AT Dev 2"
      }
    }
  ],
  "localizationLanguage": "localizationLanguage",
  "additionalParams": {
    "ntpServerIp": "10.250.32.10",
    "keyName": "apiGwKey",
    "xmiNetwork": {
      "name": "ext-net3",
      "ipVersion": "IPv4",
						"xmiSubnetName" : "ext-net3-subnet"
    },
    "imiNetwork": {
      "name": "imi-net",
      "ipVersion": "IPv4",
						"imiSubnetName" : "imi-subnet"
    },
    "xsiNetwork": {
      "name": "ext-net3",
      "ipVersion": "IPv4",
						"xsiSubnetName" : "ext-net3-subnet"
    },
    "externalLoadBalancer": "10.10.10.10",
        "mtu":"9000",
    "dsrMPList": "10.10.10.4:49152",
    "appServersVolumeIds": ["320f3557-9a0a-4c13-9d19-d4f0f755b941"],
    "apiGwAppFlavor": "dsrapigw.app",
    "apiGwAdminFlavor": "dsrapigw.admin",
    "dbManagementServerFlavor": "vnfm_ft1.db.managementNode",
    "dbDataServerFlavor": "vnfm_ft1.db.dataNode",
    "dbSqlServerFlavor": "vnfm_ft1.db.SqlNode",
    "apiGwAppImage": "DSRAPIGW-8.5.0.2.0.vmdk",
    "apiGwAdminImage": "DSRAPIGW-8.5.0.2.0.vmdk",
    "dbManagementServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "dbDataServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "dbSqlServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "apigwAvailabilityZone": "nova"
  }
}

Sample Response

Instantiating APIGW Request

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Sample Request For Fixed IP Deployment

Instantiating APIGW Request generated for Fixed IP

URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from create request>/instantiate


Accept: application/json


Content-Type: application/json

X-Token : <Token generated after login>

{
  "flavourId": "APIGW",
  "instantiationLevelId": "small",
  "extVirtualLinks": "extVirtualLinks",
  "extManagedVirtualLinks": [],
    "vimConnectionInfo": [

    {
      "id": "vimid",
      "vimType": "OpenStack",
      "interfaceInfo": {
        "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
      },
      "accessInfo": {
        "username": "dsrat.user",
        "password": "xxxx",
        "userDomain": "Default",

        "projectDomain": "default",

        "tenant": "DSR AT Dev 2"
      }
    }
  ],
  "localizationLanguage": "localizationLanguage",
  "additionalParams": {
    "ntpServerIp": "10.250.32.10",
    "keyName": "apiGwKey",
    "xmiNetwork": {
      "name": "ext-net3",
      "ipVersion":"IPv4",
      "xmiSubnetName" : "ext-net3-subnet",
      "fixedIps":
               { 
                  "apiGwAdminXmiIp": "10.75.189.10",
                  "apiGwAppXmiIp": ["10.75.189.11"] 
               }
    },
    "imiNetwork": {
        "name": "imi-net",
        "ipVersion":"IPv4",
        "imiSubnetName" : "imi-subnet",        
        "fixedIps":
                  { 
                    "apiGwAdminImiIp": "192.167.2.1", 
                    "apiGwAppImiIp": ["192.167.2.2"] 
                  }
    },
    "xsiNetwork": {
      "name": "ext-net3",
      "ipVersion":"IPv4",
      "xsiSubnetName" : "ext-net3-subnet",
      "fixedIps":
              { 
                 "apiGwAppXsiIp": ["198.162.1.1"], 
                 "apiGwDbManagementXsiIp": ["198.162.1.2", "198.168.1.3"],
                 "apiGwDbDataXsiIp": ["198.162.1.5", "198.168.1.4"],              
                 "apiGwDbSqlXsiIp": ["198.168.1.6", "198.168.1.7"]
              }
    },
    "externalLoadBalancer": "10.10.10.10",
    "mtu":"9000",
    "dsrMPList": "10.10.10.4:49152",
   "appServersVolumeIds": ["320f3557-9a0a-4c13-9d19-d4f0f755b941"],
    "apiGwAppFlavor": "dsrapigw.app",
    "apiGwAdminFlavor": "dsrapigw.admin",
    "dbManagementServerFlavor": "vnfm_ft1.db.managementNode",
    "dbDataServerFlavor": "vnfm_ft1.db.dataNode",
    "dbSqlServerFlavor": "vnfm_ft1.db.SqlNode",
    "apiGwAppImage": "DSRAPIGW-8.5.0.2.0.vmdk",
    "apiGwAdminImage": "DSRAPIGW-8.5.0.2.0.vmdk",
    "dbManagementServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "dbDataServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "dbSqlServerImage": "mysql-ndbcluster-7_6_8.qcow2",
    "apigwAvailabilityZone": "nova"
  }

Sample Response

Instantiating APIGW Request

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 201

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
  • The supported flavor is APIGW.
  • The keyName is the name of the key that generates public & private key in openstack dynamically while creating stack and this key is used to communicate over admin to app server & DB server.
  • One push script executes and enables the OCSG. After successful execution of one push script, the Admin portal and the App portals GUI comes up.
  • APIGW is configured automatically and it does not require manual intervention.
  • APIGW is created only with VMs and Cloud-init configurations must be done manually.

The following table describes the parameters used for sending request to VNFM.

Table 9-12 Parameters and Definitions for APIGW VNF

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated.
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication.
imiNetwork Network used for internal communication of DSR entities.
xsiNetwork Network used for DSR signaling traffic
ntpServerIp IP of the NTP server
keyName Name of key-pair to be generated
externalLoadBalancer The external load balancer IP where the API is exposed on
mtu Maximum transfer Unit to do scp file. For different cloud values will be different. (Ex: For oort and mvl-dev1 mtu value will be 9000 and for dpc1 it will be 1500.)
dsrMPList List of DSR MPs
appServersVolumeIds A JSON Array containing the volume IDs of the volumes created by the user that is mounted to the individual App Servers. The size/length of this array should be equal to the number of App Servers, which in turn depends on the flavor chosen by the user.
apiGwAdminFlavor (optional) flavor used for openstack deploys
apiGwAppFlavor (optional) flavor used for openstack deploys
dbManagementServerFlavor (optional) flavor used for openstack deploys
dbDataServerFlavor (optional) flavor used for openstack deploys
dbSqlServerFlavor (optional) flavor used for openstack deploys
apiGwAdminImage (optional) image used for openstack deploys
apiGwAppImage (optional) image used for openstack deploys
dbManagementServerImage (optional) image used for openstack deploys
dbDataServerImage (optional) image used for openstack deploys
dbSqlServerImage (optional) image used for openstack deploys
apigwAvailabilityZone (optional) name of logical partitioning in case of host aggregate

Instantiating the IDIH VNF

To start IDIH deployment, it is required to instantiate a signaling VNF. Before deploying the VNF, make sure the following information is available:

The VNF ID for a previously created IDIH VNF instance.

Information about the OpenStack instance on which the VNF must be deployed:
  • OpenStack Controller URI
  • User Domain Name
  • Project Domain Id
  • Username
  • Password
  • Tenant name

The name of a public network in the selected OpenStack instance that will carry the IDIH traffic.

The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.

The network ID of the private network in the selected OpenStack instance that will carry OAM traffic. A signaling stack must be brought up first and then the ID of the internal network generated from this stack must be used for instantiating IDIH.

The name of the internal private network in the selected OpenStack instance that will allow communication between Application, Mediation, and Database servers.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.

Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Determining the Signaling IMI Resource ID:

  1. Navigate to Project -> Network -> Networks.
  2. Open the Network used for intra-site communication with Signaling VNF (imi).
  3. The IMI resource ID is the ID of this network.

The following table informs about the supported Instantiation levels to Instantiate VNF resource for IDIH VNF:

Table 9-13 Supported Instantiation levels for IDIH VNF

IDIH Flavors supported by VNFM APP (Small) MEDIATION (Small) DB (Small)
IDIH 1 1 1

Sample Request

Instantiating IDIH Request for dynamic IP deployment

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
   "flavourId":"IDIH",
   "instantiationLevelId":"small",
   "extVirtualLinks":"extVirtualLinks",
   "extManagedVirtualLinks":[
 {
         "id":"id1",
         "virtualLinkDescId":" Network ID of the network used for intra-site communication(imi) with Signalling VNF",
         "resourceId":"aae72b3d-d189-4464-a217-58bb0320065b"
 }
   ],
   "vimConnectionInfo":[
      {
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{
            "controllerUri":"https://oortcloud.us.oracle.com:5000/v3"
         },
         "accessInfo":{
            "username":"dsrat.user",
            "password":"xxxx",
            "userDomain":"Default",
            "projectDomain": "default",
            "tenant":"DSRAT_Feature_Test4"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{
      "ntpServerIp":"10.250.32.10",
      "xmiNetwork":{
         "name":"ext-net3",
         "ipVersion":"IPv4",
         "xmiSubnetName" : "ext-net3-subnet"
      },
      "idihIntNetwork":{
         "idihIntPrivateNetwork":"test",
         "idihIntPrivateSubnet":"test-sub",
   }
   "idihAppFlavor": "appl-idih",
 	   "idihMedFlavor": "med-idih",
 	   "idihDbFlavor": "db-idih",
 	  "idihAppImage": "apps-8.2.2.0.0_82.30.0.vmdk",
 	  "idihMedImage": "mediation-8.2.2.0.0_82.30.0.vmdk",
  "idihDbImage": "oracle-8.2.2.0.0_82.30.0.vmdk",
  "idihAvailabilityZone": "nova"
      }
}

Instantiating IDIH Request for fixed IP deployment

{
   "flavourId":"IDIH",
   "instantiationLevelId":"small",
   "extVirtualLinks":"extVirtualLinks",

   "extManagedVirtualLinks":[
 {
         "id":"id1",
         "virtualLinkDescId":" Network ID of the network used for intra-site communication(imi) with Signalling VNF",
         "resourceId":"aae72b3d-d189-4464-a217-58bb0320065b"
 }
   ],
   "vimConnectionInfo":[
      {
         "id":"vimid",
         "vimType":"OpenStack",
         "interfaceInfo":{
            "controllerUri":"https://oortcloud.us.oracle.com:5000/v3"
         },
         "accessInfo":{
            "username":"dsrat.user",
            "password":"xxxx",
            "userDomain":"Default", 
            "projectDomain": "default",
            "tenant":"DSRAT_Feature_Test4"
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{
      "ntpServerIp":"10.250.32.10",
      "xmiNetwork":{
         "name":"ext-net3",
         "ipVersion":"IPv4",
									"xmiSubnetName" : "ext-net3-subnet",
         "fixedIps":{
         "idihDbXmiIp":"10.75.218.30",
         "idihMedXmiIp":"10.75.218.19",
         "idihAppXmiIp":"10.75.218.49"
        }

      },
      "idihIntNetwork":{
         "idihIntPrivateNetwork":"test",
         "idihIntPrivateSubnet":"test-sub",
      }
         "idihAppFlavor": "appl-idih",
         "idihMedFlavor": "med-idih",
         "idihDbFlavor": "db-idih",
         "idihAppImage": "apps-8.2.2.0.0_82.30.0.vmdk",
         "idihMedImage": "mediation-8.2.2.0.0_82.30.0.vmdk",
         "idihDbImage": "oracle-8.2.2.0.0_82.30.0.vmdk",
         "idihAvailabilityZone": "nova"
      }
 }

Sample Response

Instantiating IDIH Request

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

The 202 response means the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.

The supported flavor is IDIH.

The following table describes the parameters used for sending request to VNFM.

Table 9-14 Parameters and Definitions for IDIH VNF

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated.
resourceId The Identifier of the Private network (imi) of the Signaling VNF
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
IdihIntNetwork Private network for communication between application, mediation and database servers
ntpServerIp IP of the NTP server
idihDbXmiIp Fixed IP address of IDIH database server
idihMedXmiIp Fixed IP address of IDIH mediation server
idihAppXmiIp Fixed IP address of IDIH application server
idihAppImage (optional) image used for openstack deploys
idihMedimage (optional) image used for openstack deploys
idihDbImage (optional) image used for openstack deploys
idihAppFlavor (optional) flavor used for openstack deploys
idihMedFlavor (optional) flavor used for openstack deploys
idihDbFlavor (optional) flavor used for openstack deploys
idihAvailabilityZone (optional) name of logical partitioning in case of host aggregate

Instantiating the SDS Network OAM VNF

SDS NOAM is a setup of following three servers:
  • Primary Noam
  • Secondary Noam
  • Query Server
In order to start a SDS deployment, it is required to instantiate a SDS Network OAM VNF. Before deploying the VNF, the following information must be available:
  • The VNF ID for a previously created SDS network OAM VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of a public network in the selected OpenStack instance that will carry the OAM traffic.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
    • Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body. The GUI can be accessed by the following URL: https://[<SDS-NOAM-vIP>]

      For example: https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003 , section 5.4.4.3.1, or the DSR VNFM Swagger specification . Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Expected Alarms:
  • 31226 - HA Availability Status Degraded (Major Alarm)
  • 10012 - Table change responder failed (Major Alarm)
  • 14101 - No Remote Connections (Major Alarm)
  • 10073 - Server Group Max Allowed HA Role Warning (Minor Alarm)

Sample Request: Sample Request for DYNAMIC IP deployment model

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
    "flavourId": "SDS NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "vipSubnetName": "ext6-net3-subnet",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet"
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet"
            }]
        },
        "imiNetwork": {
            "name": "imi-net3",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"imi6-net3-subnet"
            },
            {
                "ipVersion":"IPv4",
                "name" : "imi-net3-subnet"
            }]
        },
        "ntpServerIp": "10.250.32.10",
        "sdsNoamFlavor": "sds.noam",
        "sdsQsFlavor": "sds.noam",
        "sdsNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsNoamAvailabilityZone": "nova",
        "sdsQsAvailabilityZone": "nova",
        "sdsNoamAffinityPolicy":"anti-affinity"
    }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.

Sample Request for Fixed IP deployment model

{
    "flavourId": "SDS NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net8",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet",
                "fixedIps":{
                    "primarySdsNoamIp": "2606:b400:605:b813::14",
                    "secondarySdsNoamIp": "2606:b400:605:b813::13",
                    "sdsQsIp": "2606:b400:605:b813::12",
                    "sdsNoamVip": "2606:b400:605:b813::11"
                 }
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet",
                "fixedIps":  {
                     "primarySdsNoamIp": "10.75.218.50",
                     "secondarySdsNoamIp": "10.75.218.49",
                     "sdsQsIp": "10.75.218.134"
                 }
            }]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"imi6-net-subnet",
                "fixedIps": {
                    "primarySdsNoamImiIp": "2606:b400:605:b813:12",
                    "secondarySdsNoamImiIp": "2606:b400:605:b813::1",
                    "sdsQsImiIp": "2606:b400:605:b813::14"
                 }
             },
             {
                "ipVersion": "IPv4",
                "name":"imi-net-subnet",
                "fixedIps": {
                    "primarySdsNoamImiIp": "192.167.2.5",
                    "secondarySdsNoamImiIp": "192.167.2.4",
                    "sdsQsImiIp": "192.167.2.3"
                 }
             }]
      
        },
        "ntpServerIp": "10.250.32.10",
        "sdsNoamFlavor": "sds.noam",
        "sdsQsFlavor": "sds.noam",
        "sdsNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsNoamAvailabilityZone": "nova",
        "sdsQsAvailabilityZone": "nova",
        "sdsNoamAffinityPolicy":"anti-affinity"
    }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the SDS GUI to determine when the VNF is operational.
  • After SDS NOAM VNF deployment, standby SDS NOAM is automatically changed to "Force StandBy", purposely to avoid any switchover while SDS Signaling VNF is deployed. Once SDS Signaling site is deployed and no more Life Cycle Management operations are planned, make "Force Standby" NOAM as "Active" by changing the "Max Allowed HA Role" to "Active" on "Status & Manage -> HA from Active SDS NOAM GUI.
  • The supported SDS NOAM Flavor is SDS NOAM.
  • The supported SDS NOAM Flavor instantiation level id is HA that creates 2 SDS NOAMs and 1 Query Server.

The following table describes the parameters used for sending request to VNFM:

Table 9-15 Parameters and Definitions for SDS Network OAM VNF

Parameter Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used for internal communication of DSR entities
ntpServerIp IP of the NTP server
fixedIps Json object in network to provide IP address
primarySdsNoamIp IP address for primary SDS NOAM IP
secondarySdsNoamIp IP address for secondary SDS NOAM IP
sdsQsIp IP address for SDS Query Server VIP
sdsNoamVip IP address for SDS NOAM VIP
primarySdsNoamImiIp IP address for primary SDS NOAM IP of IMI
secondarySdsNoamImiIp IP address for secondary SDS NOAM IP of IMI
sdsQsImiIp IP address for SDS Query Server IP of IMI
sdsNoamFlavor (optional) flavor used for OpenStack deploys
sdsQsFlavor (optional) flavor used for OpenStack deploys
sdsNoamImage (optional) image used for OpenStack deploys
sdsQsImage (optional) image used for OpenStack deploys
sdsNoamAvailabilityZone (optional) name of logical partitioning in case of host aggregate
sdsQsAvailabilityZone (optional) name of logical partitioning in case of host aggregate
sdsNoamAffinityPolicy (optional) openstack affinity policy for SDS NOAM

Target set Address Configuration

Target set Address (TSA) is used for load balancing the traffic, so that IPFE routes all the incoming traffic and in return traffic is directly routed through gateway instead of IPFE.

For configuring TSA, configure the following on active Soam(Soam Vip):

  • IPFE optionSets
  • IPFE target Sets

Note:

Use DSR-8.4.0.6.0-89.1.1 or later version to enable this feature.

IPFE Option Sets Configuration

These are the parameters for configuring OptionSets: IpfeA1IpAddress, IpfeA2IpAddress, IpfeB1IpAddress, and IpfeB2IpAddress. These options accept the IMI IP address of IPFE servers. These are logical names that facilitates binding with IPFE servers.

The OptionSets parameter in the request body is not mandatory. So, by default, VNFM configures OptionSets in the following ways:

  • For Single subnet IMI network and single pair of IPFE Servers (2 IPFE servers):
    • IpfeA1IpAddress will bind to ipfe00
    • IpfeA2IpAddress will bind to ipfe01
    • IpfeB1IpAddress and IpfeB2IpAddress will not be configured
  • For Single subnet IMI network and two pairs of IPFE Servers (4 IPFE servers):
    • IpfeA1IpAddress will bind to ipfe00
    • IpfeA2IpAddress will bind to ipfe01
    • IpfeB1IpAddress will bind to ipfe02
    • IpfeB2IpAddress will bind to ipfe03
  • For Dual subnet IMI network and single pair of IPFE Servers(2 IPFE servers):
    • IpfeA1IpAddress will bind to ipfe00 (IPv4 address)
    • IpfeA2IpAddress will bind to ipfe01 (IPv4 address)
    • IpfeB1IpAddress will bind to ipfe00 (IPv6 address)
    • IpfeB2IpAddress will bind to ipfe01 (IPv6 address)
  • For Dual subnet IMI network and two pairs of IPFE Servers(4 IPFE servers):
    • IpfeA1IpAddress will bind to ipfe00 (IPv4 address)
    • IpfeA2IpAddress will bind to ipfe01 (IPv4 address)
    • IpfeB1IpAddress will bind to ipfe00 (IPv4 address)
    • IpfeB2IpAddress will bind to ipfe01 (IPv4 address)

To change the default configurations, send OptionSets in request body and configurations are done accordingly.

IPFE Target Sets Configuration

Target sets can be configured for a particular XSI network. So, send the TSA parameter in xsi network. Multiple TSAs can be configured for single xsi network. TSA configuration has following parameters:

  • dampName (optional in tsa): By default, VNFM adds all DAMPs to all TSAs. However, if only specific DAMPs need to be configured, then it can be passed in this parameter.
  • fixedIp (optional in tsa): By default, VNFM creates port with dynamic IP based on xsi Network. If fixed IP needs to be configured, then it can be passed in this parameter.
  • preferedActiveIPFE (mandatory in tsa): It is based on OptionSets configurations. If IpfeA1IpAddress is configured, then use ipfeA1. Use the following:
    • For IpfeA2IpAddress use ipfeA2
    • For IpfeB1IpAddress use ipfeB1
    • For IpfeB2IpAddress use ipfeB2
  • preferedStandByIPFE (mandatory in tsa): Similar to preferedActiveIPFE.

If xsi network is on single subnet, then port for TSA is created only for single IP address. TSA configuration is done only for single IP.

If xsi network is on dual subnet, then port for TSA is created with two IP addresses. Both the IP addresses are configured in TSA.

Note:

  • TSA configuration is supported for different combination of DIAMETER flavor.
  • If instantiation of stack has TSA configuration and if scaling operation is done on the same stack, then scaled DAMPs will be added to all the available TSAs.
  • If scaling is performed after discovery operations, then scaled DAMP will not be added to the TSA. This is because discovery operation will not have information about TSA.

Sample Request for Signaling Flavor DIAMETER

Sample request for signaling flavor DIAMETER with TSA configurations with multiple xsi (1, 2, or 4 xsi interface) for dynamic IP (Dual Subnet) deployment model.

Instantiating the first signaling VNF request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate


Accept: application/json


Content-Type: application/json

X-Token : <Token generated after login>

{

                "flavourId": "DIAMETER",

                "instantiationLevelId": "small",

                "extVirtualLinks": "extVirtualLinks",

                "extManagedVirtualLinks": [{

                                                "id": "",

                                                "virtualLinkDescId": "active NOAM",

                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"

                                },

                                {

                                                "id": "",

                                                "virtualLinkDescId": "standby NOAM",

                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"

                                }

                ],

                "vimConnectionInfo":[ {

        "id": "vimid",

        "vimType": "OpenStack",

        "interfaceInfo": {

          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 

        },

        "accessInfo": {

            "username": "dsrci.user",

            "password": "xxxx",

            "userDomain": "Default",

            "projectDomain": "default",

            "tenant": "DSR CI"

        }

 

    }],

                "localizationLanguage": "localizationLanguage",

                "additionalParams": {

                                "xmiNetwork": {

                                                "name": "ext-net3",

 "vipSubnetName": "ext-net-ipv6-subnet",

 "subnet": [{
 "ipVersion": "IPv6",
 "name": "ext-net-ipv6-subnet"
 },


{
 "ipVersion": "IPv4",
 "name": "ext-net-ipv4-subnet"
 }

]

                                },

                                "imiNetwork": {

                                                "name": "imi-private",

                                                 "subnet": [{
 "ipVersion": "IPv6",
 "name": "test6"
 },


{
 "ipVersion": "IPv4",
 "name": "test4"
 }

]

                                },

                                "xsiNetwork": [{

                                                "name": "ext-net2",

"tsa": [
 {
 "dampName": ["damp00","damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA2",
 "fixedIp": ["", ""]
 
 
 },
 {
 "dampName": ["damp00","damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA2",
 "fixedIp": ["", ""]
 
 
 }],

                                                "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiIPv6"
 },


{
 "ipVersion": "IPv4",
 "name": "xsiIPv4"
 }

]
 },
 {
 "name": "xsiNetworkDual2",


"tsa": [
 {
 "dampName": ["damp00","damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA2",
 "fixedIp": ["", ""]
 
 
 },
 {
 "dampName": ["damp00","damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA2",
 "fixedIp": ["", ""]
 
 
 }],


 "subnet": [{
 "ipVersion": "IPv6",
 "name": "xsiNetworkDual2-IPv6"
 },

{
 "ipVersion": "IPv4",
 "name": "xsiNetworkDual2-IPv4"
 }

]

 }],

"OptionSets":{
 "ipfeA1IpAddress": ["ipfe00","IPv6"],
 "ipfeA2IpAddress": ["ipfe01", "IPv6"],
 "ipfeB1IpAddress": ["ipfe02", "IPv6"],
 "ipfeB2IpAddress": ["ipfe03", "IPv6"]
 },

                                "ntpServerIp": "10.250.32.10",

                                "primaryNoamVmName": "NOAM00-32cd6138",

                                "noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",

                                "soamFlavor": "dsr.soam",

                                "soamImage": "DSR-8.5.0.1.0_91.5.0.vmdk",

                                "soamAvailabilityZone": "nova",

                                "ipfeFlavor": "dsr.ipfe",

                                "ipfeImage": "DSRIPFE-8.5.0.1.0_91.5.0.vmdk",

                                "ipfeAvailabilityZone": "nova",

                                "daFlavor": "dsr.da",

                                "daImage": "DSR-8.5.0.3.0_85.17.0.vmdk",

                                "daAvailabilityZone": "nova",

                                "stpFlavor": "dsr.stp",

                                "stpImage": "DSR-8.5.0.3.0_85.17.0.vmdk",

                                "stpAvailabilityZone": "nova",

                                "soamAffinityPolicy":"anti-affinity",

                                "ipfeAffinityPolicy":"anti-affinity",

                                "daAffinityPolicy":"soft-anti-affinity"

                }

} 

Instantiating the signaling VNF with TSA configuration with DIAMETER response

202 Accepted

Headers:

location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402

date: Wed, 13 Feb 2019 09:55:01 GMT

content-length: 0

content-type: application/xml

Instantiating the SDS DR Network OAM VNF

SDS DRNOAM is the Disaster Recovery SDS NOAM site. In case both the Active and Standby SDS NOAM of Primary site fails, then the operator can make SDS DRNOAM as the Primary Site and can continue the operations without any disturbance.

When a setup is configured with a SDS DR NOAM then the first SDS NOAM SG is treated as the Primary NOAM Site and the second SDS NOAM SG is treated as Secondary NOAM site.

SDS DR NOAM is a setup of three servers:
  • Primary Noam
  • Secondary Noam
  • Query Server
In order to instantiate a SDS DR Network OAM VNF, the following information must be available:
  • The VNF ID for a previously created SDS DR network OAM VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of a public network in the selected OpenStack instance that will carry the OAM traffic.
  • OpenStack resource IDs for the XMI IPs from both SDS NOAM VMs.

Note:

The resource IDs can be obtain by examining the SDS Network OAM stack to which the identified SDS DR NOAM VNF is attached.
  • Name of Active Primary SDS NOAM VM.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
  • DSR DR NOAM supports Dual Subnet for XMI and IMI interfaces.

Determining the SDS DR NOAM XMI Resource IDs

The following facts must be considered before proceeding with SDS DR NOAM site creation:
  • SDS DRNOAM site must be created on separate tenant.
  • SDS DRNOAM site is referred as Secondary NOAM. Therefore, we have two sites, Primary and Secondary. Secondary Site configuration is done on Primary Active SDS NOAM.
  • In the Primary Active SDS NOAM, when second SDS NOAM Server Group gets created, it automatically becomes Secondary.
  • The Primary Active SDS NOAM communicates to the Secondary Active SDS NOAM through existing Comcol replication and merging mechanism.
  • The Secondary SDS NOAM Site is optional and does not require to be deployed at the same time as of the Primary SDS NOAM.
From the OpenStack GUI:
  1. Change your view to the tenant on which the DSR Network OAM VNF was deployed.
  2. Go to Project->Network->Network Topology. A diagram of all VMs in the tenant is displayed.

    Note:

    The diagram may take a few minutes to display.
  3. Click on one of the NOAM VMs.
  4. A pop-up appears having information about the specific NOAM VM.
  5. Save the resource ID for the XMI port provided in the IP Addresses section of the pop-up.

    Note:

    The IP Addresses section of the popup contains information about the network ports and resource IDs, assigned to the VM.
  6. Repeat the previous step for the other NOAM VM.
You can also use the following alternative:
  • Instead of passing resource IDs, user can use SDS-NOAM XMI IPs.
  • User can pass Active SDS-NOAM's XMI IP to resource id 1 and StandBy SDS-NOAM's XMI IP to resource id 2.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003 , section 5.4.4.3.1, or the DSR VNFM Swagger specification . Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Sample Request: Instantiating SDS DR NOAM Request for DYNAMIC IP deployment model

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
    "flavourId": "SDS DR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
         "extManagedVirtualLinks": [{
               "id": "id1",
              "virtualLinkDescId": "active SDS NOAM XMI",
              "resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
            },
            {
              "id": "id2",
              "virtualLinkDescId": "standy SDS NOAM XMI",
              "resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
           }
        ],
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "vipSubnetName": "ext6-net3-subnet",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet"
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet"
            }]
        },
        "imiNetwork": {
            "name": "imi-net3",
            "subnet":[{
                "ipVersion": "IPv6",
                "name" : "imi6-net3-subnet"
            },
            {
                "ipVersion":"IPv4",
                "name" : "imi-net3-subnet"
            }]
        },
        "ntpServerIp": "10.250.32.10",
        "primarySdsNoamVmName": "SDS-NOAM00-ea47f4b1",
        "sdsDrNoamFlavor": "sds.noam",
        "sdsDrQsFlavor": "sds.noam",
        "sdsDrNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsDrQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsDrNoamAvailabilityZone": "nova",
        "sdsDrQsAvailabilityZone": "nova",
        "sdsDrNoamAffinityPolicy":"anti-affinity"
    }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.

Instantiating SDS DR NOAM Request for Fixed IP deployment model

{
    "flavourId": "SDS DR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
         "extManagedVirtualLinks": [{
               "id": "id1",
              "virtualLinkDescId": "active SDS NOAM XMI",
              "resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
            },
            {
              "id": "id2",
              "virtualLinkDescId": "standy SDS NOAM XMI",
              "resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
           }
        ],
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet",
                "fixedIps":{
                    "sdsDrPrimaryNoamIp": "2606:b400:605:b813::14",
                    "sdsDrSecondaryNoamIp": "2606:b400:605:b813::13",
                    "sdsDrQueryServerIp": "2606:b400:605:b813::12",
                    "sdsDrNoamVip": "2606:b400:605:b813::11"
                 }
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet",
                "fixedIps":  {
                     "sdsDrPrimaryNoamIp": "10.75.218.50",
                     "sdsDrSecondaryNoamIp": "10.75.218.49",
                     "sdsDrQueryServerIp": "10.75.218.134"
                 }
            }]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet",
                "fixedIps":{
                    "sdsDrPrimaryNoamImiIp": "2606:b400:605:b813::14",
                    "sdsDrSecondaryNoamImiIp": "2606:b400:605:b813::13",
                    "sdsDrQueryServerImiIp": "2606:b400:605:b813::12"                    
                 }
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet",
                "fixedIps":  {
                     "sdsDrPrimaryNoamImiIp": "10.75.218.50",
                     "sdsDrSecondaryNoamImiIp": "10.75.218.49",
                     "sdsDrQueryServerImiIp": "10.75.218.134"
                 }
            }]
        },
        "ntpServerIp": "10.250.32.10",
        "primarySdsNoamVmName": "SDS-NOAM00-ea47f4b1",
        "sdsDrNoamFlavor": "sds.noam",
        "sdsDrQsFlavor": "sds.noam",
        "sdsDrNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsDrQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
        "sdsDrNoamAvailabilityZone": "nova",
        "sdsDrQsAvailabilityZone": "nova",
        "sdsDrNoamAffinityPolicy":"anti-affinity"
    }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 21 Feb 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
  • The supported SDS DR NOAM Flavor is SDS DR NOAM.
  • The supported SDS DR NOAM Flavor instantiation level id is HA, which creates 2 SDS NOAMs and 1 Query Server.
  • Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body.
The following table describes the parameters used for sending request to VNFM:

Table 9-16 Parameters and Definitions SDS DR Network OAM VNF

Parameter Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level is HA.
resourceId The identifier of the resource (active and then standby SDS NOAM XMI) in the scope of the VIM or the resource provider.
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used for internal communication of DSR entities
name Network name, for example; ext-net
ipVersion IP version IPv4 or IPv6
ntpServerIp IP of the NTP server
primarySdsNoamVmName Primary Active SDS NOAM VM name
sdsDrPrimaryNoamIp XMI IP of the Primary SDS DR NOAM
sdsDrSecondaryNoamIp XMI IP of the Secondary SDS DR NOAM
sdsDrQueryServerIp XMI IP of the SDS DR QUERY NOAM
sdsDrNoamVip VIP of the SDS DR NOAM
sdsDrPrimaryNoamImiIp IMI IP of the Primary SDS DR NOAM
sdsDrSecondaryNoamImiIp IMI IP of the Secondary SDS DR NOAM
sdsDrQueryServerImiIp IMI IP of the Primary SDS DR NOAM
sdsDrNoamFlavor (optional) flavor used for OpenStack deploys
sdsDrNoamImage (optional) image used for OpenStack deploys
sdsDrQsFlavor (optional) flavor used for OpenStack deploys
sdsDrQsImage (optional) image used for OpenStack deploys
sdsDrNoamAvailabilityZone (optional) name of logical partitioning in case of host aggregate
sdsDrQsAvailabilityZone (optional) name of logical partitioning in case of host aggregate
sdsDrNoamAffinityPolicy (optional) openstack affinity policy for SDS DR NOAM

Instantiating the SDS Signaling VNF

In order to deploy the SDS signaling VNF, the following information must be available:
  • A previously instantiated SDS network OAM VNF.
  • The VNF ID for a previously created SDS signaling VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of the xmi public network in the selected OpenStack instance that will carry traffic.
  • The IP address of the NTP server accessible by VMs within the selected OpenStack instance.
  • The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
  • OpenStack resource IDs for the IMI IP from DSR Signaling and XMI IPs from both NOAM VMs.

    Note:

    The resource IDs can be obtain by examining the SDS Network OAM stack and DSR Signaling stack to which the identified SDS signaling VNF would be attached.
  • Name of the Active NOAM VM.

    Note:

    To avoid switchover of Active NOAM, make the StandBy NOAM as "Forced Standby" by changing the "Max Allowed HA Role" to "Standby" on "Status & Manage -> HA from Active NOAM GUI.
  • Name of the NOAM SG

    Note:

    After SDS deployment, the Max Allowed HA Role of Query Server is expected to be Observer but it is Standby. Manually change the Max Allowed HA Role of Query Server from Standby to Observer as follows:

    Login to Active SDS Noam GUI and navigate to Status & Manage -->HA -->Edit->Change the role of Query Server to Observer, and click OK.

  • Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body.
  • SDS Signaling supports Dual IP

The following image illustrates the VNF instantiation:

Figure 9-6 VNF Create Instance Request


VNF Create Instance Request

The following table informs about the supported Instantiation levels to Instantiate VNF resource for SDS Signaling VNF:

Table 9-17 SDS Signaling Flavors supported by VNFM

Signaling Flavors supported by VNFM Small Medium Large
DP Server DP Server DP Server
SDSSIGNALING 2 6 10

Note:

  • The number of DP-SOAM is 2 for any instantiation level.
  • SDS Signaling supports "custom" instantiation level id.

Determining the Signaling IMI Resource IDs

From the OpenStack GUI:
  1. Navigate to Project -> Network -> Networks
  2. Open the Network used for intra - site communication with Signaling VNF (imi).
  3. The IMI resource ID is the ID of this network.

Determining the SDS NOAM XMI Resource IDs

From the OpenStack GUI:
  • Change your view to the tenant on which the DSR Network OAM VNF is deployed.
  • Go to Project->Network->Network Topology. A diagram of all VMs in the tenant is displayed.

    Note:

    The diagram may take a few minutes to display.
  • Click on one of the NOAM VMs.
  • A pop-up appears having information about the specific NOAM VM.
  • Save the resource ID for the XMI port provided in the IP Addresses section of the pop-up.

    Note:

    The IP Addresses section of the popup contains information about the network ports and resource IDs, assigned to the VM.
  • Repeat the previous step for the other NOAM VM and DSR Signaling VM.

You can also use the following alternative:
  • Instead of passing resource IDs, user can use SDS-NOAM XMI IPs.
  • User can pass Active SDS-NOAM's XMI IP to resource id 1 and StandBy SDS-NOAM's XMI IP to resource id 2.

    Note:

    If SDS-NOAM is created on Dual Subnet then, then use IPv4 XMI IP's of SDS-NOAM while creating SDS-SOAM.

For more information about the full listing of all inputs and possible outputs of the command "instantiate VNF", see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.

Sample Request:

Instantiating the first signaling VNF request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Sample request for Dynamic IP deployment model

{
                "flavourId": "sdssignaling",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active SDS NOAM XMI",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby SDS NOAM XMI",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "vipSubnetName": "ext6-net3-subnet",
                                                "name": "ext-net3",
  			                                    "subnet":[{
                                                     "ipVersion": "IPv6",
                                                     "name":"ext6-net3-subnet"
                                                 },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "ext-net3-subnet"
                                                 }]
                                },
                                "imiNetwork": {
                                                "name": "imi-net",
                                                "subnet":[{
                                                     "ipVersion": "IPv6",
                                                     "name":"imi6-net-subnet"
                                                 },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "imi-net-subnet"
                                                 }]
                                               
                                },
                                "ntpServerIp": "10.250.32.10",
                                "primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
                                "sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
                                "dpSoamFlavor": "sds.noam",
                                "dpFlavor": "sds.dpsoam",
                                "dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpSoamAvailabilityZone": "nova",
                                "dpAvailabilityZone": "nova",
                                "dpSoamAffinityPolicy":"anti-affinity",
                                "dpAffinityPolicy":"anti-affinity"
                }
}

Note:

The "vipSubnetName" field is used only in case of Dual Subnet.

Sample request for Fixed IP deployment model

{
                "flavourId": "sdssignaling",
                "instantiationLevelId": "small",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active SDS NOAM XMI",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby SDS NOAM XMI",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "name": "ext-net3",
                                                 "subnet":[{
                                                     "ipVersion": "IPv6",
                                                     "name":"ext6-net3-subnet",
 "fixedIps":{ 
 "primaryDpSoamXmiIp": "2606:b400:605:b813::11",
 "dpSoamXmiIp": "2606:b400:605:b813::11",
 "dpSoamVip": "2606:b400:605:b813::11",
 "dpXmiIps": ["2606:b400:605:b813::11"]
 }
                                                 },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "ext-net3-subnet",
 "fixedIps":{ 
 "primaryDpSoamXmiIp": "10.75.192.5",
 "dpSoamXmiIp": "10.75.192.6",
 "dpXmiIps": ["10.75.192.8"]
 }
                                                 }]
                                       },
                                "imiNetwork": {
                                                "name": "imi-net3",
                                                 "subnet":[{
                                                     "ipVersion": "IPv6",
                                                     "name":"imi6-net3-subnet",
 "fixedIps":{
 "primaryDpSoamImiIp": "2606:b400:605:b813::11",
 "dpSoamImiIp": "2606:b400:605:b813::11",
 "dpImiIps": ["2606:b400:605:b813::11"]
 }

                                                          },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "imi-net3-subnet",
                                                       "fixedIps":{
 "primaryDpSoamImiIp": "192.167.2.1",
 "dpSoamImiIp": "192.167.2.3",
 "dpImiIps": ["192.167.2.5"]
 }
                                                 }]
                                                

                                },
                                "ntpServerIp": "10.250.32.10",
                                "primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
                                "sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
                                "dpSoamFlavor": "sds.noam",
                                "dpFlavor": "sds.dpsoam",
                                "dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpSoamAvailabilityZone": "nova",
                                "dpAvailabilityZone": "nova",
                                "dpSoamAffinityPolicy":"anti-affinity",
                                "dpAffinityPolicy":"anti-affinity"
                }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Sample Request for Dynamic IP deployment with Custom Size model

Instantiating the SDS signaling with Custom Size VNF request generated

URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
                "flavourId": "sdssignaling",
                "instantiationLevelId": "custom",
                "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [{
                                                "id": "",
                                                "virtualLinkDescId": "active SDS NOAM XMI",
                                                "resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
                                },
                                {
                                                "id": "",
                                                "virtualLinkDescId": "standby SDS NOAM XMI",
                                                "resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
                                }
                ],
                "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
                "localizationLanguage": "localizationLanguage",
                "additionalParams": {
                                "xmiNetwork": {
                                                "vipSubnetName": "ext6-net3-subnet",
                                                "name": "ext-net3",
  			                                    "subnet":[{
                                                     "ipVersion": "IPv6",
                                                    "name":"ext6-net3-subnet"
                                                 },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "ext-net3-subnet"
                                                 }]
                                },
                                "imiNetwork": {
                                                "name": "imi-net",
                                                "subnet":[{
                                                     "ipVersion": "IPv6",
                                                    "name":"imi6-net-subnet"
                                                 },
                                                 {
                                                     "ipVersion":"IPv4",
                                                      "name" : "imi-net-subnet"
                                                 }]
                                               
                                },
                                "ntpServerIp": "10.250.32.10",
                                "primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
                                "sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
                                "dpSoamFlavor": "sds.noam",
                                "dpFlavor": "sds.dpsoam",
                                "dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
                                "dpSoamAvailabilityZone": "nova",
                                "dpAvailabilityZone": "nova",
                                "dpSoamAffinityPolicy":"anti-affinity",
                                "dpAffinityPolicy":"anti-affinity",
                                "numDp": "2"
                }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

The following table describes the parameters used for sending request to VNFM:

Table 9-18 Parameters and Definitions for SDS Signaling VNF

Parameters Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated.
resourceId The identifier of the resource (imi Network ID of the signaling VNF, active, standby SDS NOAM XMI) in the scope of the VIM or the resource provider
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used to provide access to the DSR entities (GUI, ssh), and for internal communication
name Network name, for example; ext-net
ipVersion IP version IPv4 or IPv6
ntpServerIp IP of the NTP server
primarySdsNoamVmName Name of primary SDS NOAM VM
sdsNoamSgName The server group of the SDS NOAM VM
primaryDpSoamXmiIp IP address for primary SDS DP SOAM IP
dpSoamXmiIp IP address for secondary SDS DP SOAM IP
dpSoamVip IP address for SDS SOAM VIP
dpXmiIps IP address for SDS DP IP
primaryDpSoamImiIp IP address for primary SDS DP SOAM IP of IMI
dpSoamImiIp IP address for secondary SDS DP SOAM IP of IMI
dpImiIps IP address for primary SDS DP IP of IMI
dpSoamFlavor (optional) flavor used for openstack deploys
dpFlavor (optional) flavor used for openstack deploys
dpSoamImage (optional) image used for openstack deploys
dpImage (optional) image used for openstack deploys
dpSoamAvailabilityZone (optional) name of logical partitioning in case of host aggregate
dpAvailabilityZone (optional) name of logical partitioning in case of host aggregate
dpSoamAffinityPolicy (optional) openstack affinity policy for SDS
SOAMdpAffinityPolicy (optional) openstack affinity policy for SDS DP
numDp (Optional - Used only during "custom" instantiation level id) Number of Dp Server. Minimum value is 1 and maximum is 10

Instantiating the ATS Master VNF

The ATS Master VNF supports dynamic and fixed IP deployment models.

To deploy the ATS Master VNF, you must have the following pieces of information:
  • The VNF ID for a previously created ATS Master VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of a public network in the selected OpenStack instance that will carry the ATS master traffic.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance hosts an NTP server.

For more information about the list of all the inputs and possible outputs of the command instantiate VNF, refer to ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.

Note:

It is mandatory to add two XSI Networks in ATS Master to instantiate a stack.

Sample Request for instantiating ATS Master Dynamic IP deployment model

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create request>/instantiate

Accept: application/json
Content-Type: application/json
X-Token: Token generated after login

{
    "flavourId": "master",
    "instantiationLevelId": "small",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net8",
            "ipVersion": "IPv4",
												"xmiSubnetName":"ext-net8-subnet"
        },
         "xsiNetwork": [{
            "name": "ext-net7",
            "ipVersion": "IPv4",
												"xsiSubnetName":"ext-net7-subnet"
       },
       {
            "name": "ext-net6",
            "ipVersion": "IPv4",
												"xsiSubnetName":"ext-net6-subnet"
       }],
        "ntpServerIp": "10.250.32.10",
        "dnsServerIp": "10.250.32.10",
        "atsKeyName": "atsKeypair",
        "atsMasterFlavor": "ats.master",
        "atsMasterImage": "ATS_BOX.qcow2",
        "atsAvailabilityZone": "nova"
    }
}

Instantiating ATS Master Request for Fixed IP deployment model

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create request>/instantiate

Accept: application/json
Content-Type: application/json
X-Token: Token generated after login

{
    "flavourId": "master",
    "instantiationLevelId": "small",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net8",
            "ipVersion": "IPv4",
												"xmiSubnetName":"ext-net8-subnet",
            "fixedIps": {
                  "masterXmiIp":"10.75.123.16"
              }
        },
       "xsiNetwork": [{
             "name": "ext-net7",
             "ipVersion": "IPv4",
													"xsiSubnetName":"ext-net7-subnet",
             "fixedIps":                    
                    {                       
                      "xsiIp": "10.75.195.21"                     
                    }
          },
         {
             "name": "ext-net6",
             "ipVersion": "IPv4",
													"xsiSubnetName":"ext-net6-subnet",
             "fixedIps":                    
                    {                       
                      "xsiIp": "10.75.195.22"                    
                     }
       }],
        "ntpServerIp": "10.250.32.10",
        "dnsServerIp": "10.250.32.10",
        "atsKeyName": "atsKeypair",
        "atsMasterFlavor": "ats.master",
        "atsMasterImage": "ATS_BOX.qcow2",
        "atsAvailabilityZone": "nova"
    }
}

Sample Response

Instantiating the ATS Master VNF response
202 Accepted

Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

The following table describes the parameters for ATS Master:

Parameter Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated.
xmiNetwork Network used to provide access master VM communication.
ntpServerIp IP of the NTP server.
dnsServerIp (optional) IP of the DNS server. If not provided, NTP server IP will be considered as DNS server IP.
atsKeyName Key pair name for ATS. To log in to the ATS instance, use same key pair.
masterXmiIp In case of fixed IP scenario, the IP of master will be provided.
xsiNetwork Network used for DSR signaling traffic.
atsMasterFlavor (optional) Flavor used for OpenStack deploys.
atsMasterImage (optional) Image used for OpenStack deploys.
atsAvailabilityZone (optional) Name of logical partitioning in case of host aggregate.

Note:

The atsKeyName pair is created dynamically through VNFM. The same public key is put into all the ATS instances (master, core & tools), and the private key is in the ATS master stack output. Use the same private key to log in to the ATS instance (master, core & tools) by executing the following command:
ssh -i <ats private key> <username>@<ats master Ip>

Example: ssh -i atskey.pem cloud-user@10.75.189.120

Instantiating the ProvGW VNF

The ProvGW VNF supports dynamic IP deployment model.

In order to instantiate ProvGW, the following information must be available:
  • The VNF ID for a previously created ProvGW VNF instance.
  • Information about the OpenStack instance on which the VNF must be deployed:
    • OpenStack Controller URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Tenant name
  • The name of a ProvGW network in the selected OpenStack instance that carries the ProvGW traffic.
  • After instantiating VNF ProvGw, a single VM ProvGateway_A is brought up.
  • The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.

For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003 , section 5.4.4.3.1, or the DSR VNFM Swagger specification. Swagger specifications can be found post VNFM installation at (https://<VNFM IP>:8443/docs/vnfm/).

Sample Request: Sample Request for DYNAMIC IP deployment model

Resource URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

{
"flavourId": "PROVGW",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [

],

"vimConnectionInfo":[ {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://oortcloud.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            "tenant": "DSR CI"
        }
 
    }]
,
"localizationLanguage": "localizationLanguage",
"additionalParams": {

        "xmi_network" : "ext6-net",

        "ntp": "2606:b400:605:b912:200:5eff:fe00:1f7",

        "image": "UDR-PrvGwy-12.6.0.0.0_18.0.0-dev",

        "no_flavor":"provGw"

}
}

Sample Response

202 Accepted

Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

The following table describes the parameters used for sending request to VNFM:

Table 9-19 Parameters and Definitions for ProvGW VNF

Parameter Definitions
flavourId Identifier of the VNF deployment flavor to be instantiated
xmiNetwork Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
ntp IP of the NTP server
image (optional) Name of image to be used for instantiation of the stack
no_flavor (optional) The Name of the flavor to be used for stack instantiation
availability_zone (optional) The name of the availability zone
securityGroup (optional) The name of the security group

Non-ConfigDrive VNF Instantiation

By default config drive is enabled through VNFM.

While instantiating VNF through VNFM. It will use configuration drive feature of openstack to fetch the data from openstack.

ConfigDrive feature must be enabled from openstack and meta data must be disabled to use.

If any user does not want to use configDrive feature of openstack, then while instantiating VNF through VNFM, the user must pass "configDrive": "false" through request body.

For example: In additional parameter
"additionalParams": {
          "ntpServerIp": "10.250.32.10",
          "xmiNetwork": {
              "name": "ext-net3",
              "subnet": [{
                  "name": "ext-net3-subnet",
                  "ipVersion": "IPv4"
              }]
          },
          "imiNetwork": {
              "name": "imi-private",
              "subnet": [{
                  "name": "imi-private-sub",
                  "ipVersion": "IPv4"
              }]
          },

             "configDrive": "false"

}

Scale VNF to Level (Only Scale Out)

The N/B LCM scale_to_level Rest I/F helps in scaling existing VNF's.

Following are the available options while scaling using "scale to VNF level" N/B Interface:

  • Scale VNF to Level based on pre-defined sizes (using Instantiation level ID).

    This option supports scaling of VNF from a lower instantiation level to higher, for example, Small to Medium.

  • Scale VNF to Level with arbitrary sizes (using scaleInfo).

    This option supports scaling of VNF to arbitrary sizes based on ScaleInfo. Scale VNF To Level using arbitrary size means increasing the existing VNFC count within the maximum allowed VNFC count. Note that maximum allowed VNFC count is the count from the existing VNFs flavorId with 'large' InstantiationLevelId. This count can be referred from respective VNF instantiation section. If the number of VMs to be scaled are greater than the default 'large' instantiationLevelId configurations, then change the configuration as described in Configure Flavor and Instantiation Levels in VNFM. After that, trigger this REST request.

Note:

  • This feature is only supported for Scaling out C-level servers of Signaling Stack and DSR APIGW.
  • The stack must have been instantiated prior to performing scale to level operation.
  • Before Scaling the VNF to level, VnfInstance ID of the stack must be available.
  • Scale to Level Request accepts either instantiationLevelId or scaleInfo.
  • Cross deployment scaling is not supported by VNFM - if the user instantiated the VNF in fixed IP deployment model, then he must scale to level using FIXED IP deployment model only and vice versa.
The following image illustrates the VNF Scaling:

Figure 9-7 VNF Scaling


Scale out VNF to Level

Scale VNF to Level using InstantiationLevelId for DSR Signaling

Note:

SOAM Image version and scale Image (daScaleImage, ipfeScaleImage, stpScaleImage, sbrScaleImage, serviceMpScaleImage) must be the same on the same version.

Sample Request

Scaling VNF to Level Request for Dynamic IP model

Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create/instantiate request>/scale_to_level

Accept: application/json

Content-Type: application/json

{
   "instantiationLevelId":"medium", 
 "additionalParams": {
 "daScaleImage": "DSR-8.5.0.2.0..vdmk",
  "ipfeScaleImage": "DSR-8.5.0.2.0..vdmk",
  "stpScaleImage": "DSR-8.5.0.2.0..vdmk",
  "sbrScaleImage": "DSR-8.5.0.2.0..vdmk",
  "serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk"
}
}

Scaling VNF to Level Request for Fixed IP model

Resource URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from create/instantiate request>/scale_to_level

Accept: application/json

Content-Type: application/json

X-Token : <Token generated after login>


{
  "instantiationLevelId": "medium",
  "additionalParams": {
    "daScaleImage": "DSR-8.5.0.2.0..vdmk",
    "ipfeScaleImage": "DSR-8.5.0.2.0..vdmk",
    "stpScaleImage": "DSR-8.5.0.2.0..vdmk",
    "serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk"
    "sbrScaleImage": "DSR-8.5.0.2.0..vdmk",
    "xmiNetwork": {
                      "name": "ext-net",
                      "subnet": [{
                                    "name": "ext-net-subnet",
                                    "ipVersion": "IPv4",
                                    "fixedIps":{
                                                 "dampXmiIps": ["10.75.218.123","10.75.218.21"],
                                                 "ipfeXmiIps": ["10.75.218.3","10.75.218.2"],
                                                 "stpXmiIps": ["10.75.218.42","10.75.218.143"],
                                                 "sbrXmiIps": ["10.75.218.23","10.75.218.19"]
                                              }
                                 }] 
    },
    "imiNetwork": {
                      "name": "imi-net",
                      "subnet": [{
                                    "name": "imi-net-sub",
                                    "ipVersion": "IPv4",
                                    "fixedIps":{
                                                 "dampImiIps": ["192.167.2.1","192.167.2.2"],
                                                 "ipfeImiIps": ["192.167.2.4","192.167.2.3"],
                                                 "stpImiIps": ["192.167.2.5","192.167.2.6"],
                                                 "sbrImiIps": ["192.167.2.7","192.167.2.8"]
                                               }
                                }]
    },
    "sbrNetwork":{
                    "name": "ext-net2",
                    "subnet": [{
                                 "name": "ext-net2-sub",
                                 "ipVersion": "IPv4",
                                 "fixedIps":{
                                              "sbrNetworkIps": ["10.75.219.23","10.75.219.123"]
                                             }
                               }] 
    },
    "xsiNetwork": [{
                      "name": "ext4-net2",
                      "subnet":[{
                                  "name": "ext4-net2-sub",
                                  "ipVersion": "IPv4",
                                  "fixedIps":{
                                               "dampXsiIps": ["10.75.219.23","10.75.219.12"],
                                               "ipfeXsiIps": ["10.75.219.1","10.75.219.112"],
                                               "stpXsiIps": ["10.75.219.12","10.75.219.23"]
                                              }
                              }]
                }]
  }

}

Note:

The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}
Detailed explanation of XMI and XSI Network

Note:

  • The instantiation level must be decided based on the number of VMs required.
  • Only the IPs of the required VM are to be provided in the fixedIp parameter and they must be of the same network in that order as used during the instantiation process.

For Example:

"flavorId": "DIAMETER+STP", "instantiationLevelId": "medium" ( scaling from small to medium) - This brings up 2 new DAMPs(DAMP02, DAMP03) , 2 new STP(STP 02, STP 03) servers.

The user needs to provide dampXmiIps(2), stpXmiIps(2), dampXsiIps(2), stpXsiIps(2)

The detailed explanation of XMI and XSI Network for the additional parameters is provided below:

For XMI Network
"xmiNetwork":{
 "name": "<Name of XMI network>",  
 "subnet":[{    
          "name": "<Name of Subnet of XMI Network>",
 "ipVersion": "",
 "fixedIps":{         
             "dampXmiIps":[   
                "<DAMP 02 XMI IP>",
                "<DAMP 03 XMI IP>"
             ],

 "stpXmiIps":[   
                "<STP 02 XMI IP>",
                 "<STP 03 XMI IP>"
             ]

 }
 }]    
  }  

For IMI Network

"imiNetwork":{ 
 "name": "<Name of IMI Network>",
    "subnet":[{
 "name": "<Name of subnet of IMI Network>",
 "ipVersion": "",
          "fixedIps":{         
             "dampImiIps":[   
                 "<DAMP 02 IMI IP>",
                "<DAMP 03 IMI IP>"
             ],    
   "stpImiIps":[   
                "<STP 02 IMI IP>",
                "<STP 03 IMI IP>"
             ]
 }
          }]
      } 

For XSI Network

"xsiNetwork":[   
         {  
 "name": "<Name of XSI-1 Network>"
 "subnet"[{ 
 "name": "<Name of Subnet of XSI-1 network>",     
 "ipVersion": "",
             "fixedIps":{   
                "dampXsiIps":[   
                   "<DAMP02 XSI 1 IP>",
                    "<DAMP03 XSI 1 IP>"
                ],     
  "stpXsiIps":[   
                   "<STP02 XSI 1 IP>",
                   "<STP03 XSI 1 IP>"
                ]
              }
 }]
         },
         {   
 "name": "<Name of XSI-2 Network>", 
 "subnet": [{
 "name": "<Name of subnet of XSI-2 Network>",
 "ipVersion": "",     
             "fixedIps":{   
                "dampXsiIps":[   
                   "<DAMP02 XSI 2 IP>",
                   "<DAMP03 XSI 2 IP>"
                ],      
               "stpXsiIps":[   
                   "<STP02 XSI 2 IP>",
                   "<STP03 XSI 2 IP>"
                ] 
             }
 }] 
         } 
      ]

The following table describes the parameters used for sending request to VNFM:

Table 9-20 Scaling VNF to Level using InstantiationLevelId

Parameters Definitions
instantiationLevelId Identifier of the instantiation level of the deployment flavor to be scaled.
dampXmiIps List of DAMP external management IPs if new DAMP VMs are to be scaled.
ipfeXmiIps List of IPFE external management IPs if new IPFE VMs are to be scaled.
stpXmiIps List of vSTP external management IPs if new vSTP VMs are to be scaled.
sbrXmiIps List of SBR external management IPs if new SBR VMs are to be scaled.
sbrNetworkIps List of SBR replication port IPs if new SBR VMs are to be scaled.
dampXsiIps List of DAMP signaling IPs if new DAMP VMs are to be scaled.
ipfeXsiIps List of IPFE signaling IPs if new DAMP VMs are to be scaled.
stpXsiIps List of STP signaling IPs if new DAMP VMs are to be scaled.
dampImiIps List of DAMP internal management Ips if new DAMP VMs are to be scaled.
ipfeImiIps List of IPFE internal management IPs if new IPFE VMs are to be scaled.
stpImiIps List of vSTP internal management IPs if new vSTP VMs are to be scaled.
sbrImiIps List of SBR internal management Ips if new SBR VMs are to be scaled.
subnet List of subnet name and ipVersion used. It also contains fixed IPs if used.
daScaleImage (Optional) DAMP Image used during scaling.
ipfeScaleImage (Optional) IPFE Image used during scaling.

If you are using the Multiqueue feature, you must follow the Prerequisite for the IPFE image.

stpScaleImage (Optional) STP Image used during scaling.
serviceMpScaleImage (Optional) Service Mp Image used during Scaling.
sbrScaleImage (Optional) SBR Image used during scaling.

Note:

During Scaling of SBRs, the newly spawned SBRs are not added to any Server Group. It needs to be added manually to the new Server Groups created by the user. One server group can have maximum two SBRs.

Scale VNF to Level using InstantiationLevelId for DSR APIGW

This option supports scaling of VNF from a lower instantiation level to higher, for example, Small to Medium.

Sample Request for DYNAMIC IP model

Scale To Level Dynamic Deployment model

{
    "instantiationLevelId":"medium",
    "additionalParams":
    {
        "appServersVolumeIds": ["773c6f7a-0307-4c9e-8c78-ecbc8cb2b6c8"]
    }
}

Sample Request for FIXED IP model

Scale VNF To Level Fixed IP Deployment

{    
    "instantiationLevelId":"medium", 
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net5-dual",
            "ipVersion": "IPv4",
            "xmiSubnetName": "ext-net5-ipv4",
            "fixedIps": {
                "apiGwAppXmiIp": [
                    "10.75.234.5"
                ]
            }
        },
        "imiNetwork": {
            "name": "imi-private",
            "ipVersion": "IPv4",
            "imiSubnetName": "imi-private-sub",
            "fixedIps": {
                "apiGwAppImiIp": [
                    "192.167.2.30"
                ]
            }
        },
        "xsiNetwork": {
            "name": "ext-net2",
            "ipVersion": "IPv4",
            "xsiSubnetName": "ext-net2-subnet",
            "fixedIps": {
                "apiGwAppXsiIp": [
                    "10.196.28.10"
                ],
                "apiGwDbDataXsiIp": [
                    "10.196.28.13",
                    "10.196.28.21"
                ],
                "apiGwDbSqlXsiIp": [
                    "10.196.28.15",
                   "10.196.28.25",
                    "10.196.28.35",
                    "10.196.28.45",
                    "10.196.28.55",
                    "10.196.28.4"
                ]
            }

       },
        "appServersVolumeIds": [
            "ac09106f-60e4-4af7-9fe4-a4e569bb8042"
        ]
    }
}

Note:

The 202 response indicates that the request has been accepted for processing. The VNF might get operational within 6 minutes. Use the DSR GUI to determine when the VNF is operational.

Scale VNF To Level Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The instantiation level is chosen according to the number of VMs required.
  • Only the IPs of the required VM are passed in the fixedIp parameter. These IPs must be of the same network in that order as used during the instantiation process.
  • If new application servers are created as part of the scaling, the respective number of appServerVolumeIds must be passed.

For Example: "instantiationLevelId": "medium" ( scaling from small to medium) -> This installs one new APP(AGWAP01) , two new DB DATA(AGWDN02, AGWDN03), six new DB SQL (AGWSN02,AGWSN03,AGWSN04,AGWSN05,AGWSN06,AGWSN07,) servers. For more information, refer to Table 9-11.

The user must pass apiGwAppXmiIp(1), apiGwAppImiIp(1), apiGwAppXsiIp(1), apiGwDbDataXsiIp(2), apiGwDbSqlXsiIp(6), and appServersVolumeIds(1).

The following table describes the parameters used for sending request to VNFM:

Table 9-21 Scaling VNF to Level using InstantiationLevelId for DSR APIGW

Parameters Definitions
instantiationLevelId Identifies the instantiation level of the existing deployment flavor to be scaled.
apiGwAppXmiIp List of APIGW APP external management IPs if new API GW APP VMs are to be scaled.
apiGwAppImiIp List of APIGW APP internal management IPs if new API GW APP VMs are to be scaled.
apiGwAppXsiIp List of APIGW APP signaling IPs if new API GW APP VMs are to be scaled.
apiGwDbDataXsiIp List of API GW DB DATA signaling IPs if new APIGW DB DATA VMs are to be scaled.
apiGwDbSqlXsiIp List of API GW DB SQL signaling IPs if new APIGW DB SQL VMs are to be scaled.
appServersVolumeIds List of API GW APP Volume IDs if new API GW APP VMs are to be scaled.

Scale VNF to Level using ScaleInfo (Arbitrary Size)

This option supports Scaling of VNF to arbitrary sizes based on ScaleInfo.

Scale VNF to Level using arbitrary size means increasing existing VNFC count within the max allowed VNFC count.

Max allowed VNFC count is the count from existing VNF's flavourId with Large InstantiationLevelId.

Note:

Max allowed VNFC count can be referred from Instantiating the first signaling VNF section.

Sample Request:

Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create/instantiate request>/scale_to_level

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Scaling VNF to Level Request for Dynamic IP deployment
{
"scaleInfo": [{
"aspectId": "DAMP",
"scaleLevel": "3"
}],

 "additionalParams": {

"daScaleImage": "DSR-8.5.0.2.0.vmdk",
"ipfeScaleImage": "DSR-8.5.0.2.0.vmdk",
"stpScaleImage": "DSR-8.5.0.2.0.vmdk",
"serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk",
"sbrScaleImage": "DSR-8.5.0.2.0.vmdk",

}
}
Scaling VNF to Level Request for Fixed IP deployment
{
  "scaleInfo": [
  {
    "aspectId": "DAMP",
    "scaleLevel": "4"
  },
{
    "aspectId": "IPFE",
    "scaleLevel": "4"
  },
{
    "aspectId": "STPMP",
    "scaleLevel": "4"
  },
{
    "aspectId": "SBR",
    "scaleLevel": "4"
  }
],
"additionalParams": {
"daScaleImage": "DSR-8.5.0.2.0.vmdk",
"ipfeScaleImage": "DSR-8.5.0.2.0.vmdk",
"stpScaleImage": "DSR-8.5.0.0.0_90.0.1.vmdk",
"serviceMpScaleImag": "DSR-8.5.0.0.0_90.0.1.vmdk"
"sbrScaleImage": "DSR-8.5.0.0.0_90.0.1.vmdk",

"xmiNetwork": {
"name": "ext-net",
"subnet": [{
"name": "ext-net-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXmiIps": ["10.75.218.123","10.75.218.21"],
"ipfeXmiIps": ["10.75.218.3","10.75.218.2"],
"stpXmiIps": ["10.75.218.42","10.75.218.143"],
"sbrXmiIps": ["10.75.218.23","10.75.218.19"]
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"name": "imi-net-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampImiIps": ["192.167.2.1","192.167.2.2"],
"ipfeImiIps": ["192.167.2.4","192.167.2.3"],
"stpImiIps": ["192.167.2.5","192.167.2.6"],
"sbrImiIps": ["192.167.2.7","192.167.2.8"]
}
}]
},
"sbrNetwork":{
"name": "ext-net2",
"subnet": [{
"name": "ext-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"sbrNetworkIps": ["10.75.219.23","10.75.219.123"]
}
}]
},
"xsiNetwork": [{
"name": "ext4-net2",
"subnet":[{
"name": "ext4-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps": ["10.75.219.23","10.75.219.12"],
"ipfeXsiIps": ["10.75.219.1","10.75.219.112"],
"stpXsiIps": ["10.75.219.12","10.75.219.23"]
}
}]
}]
}
}

Note:

The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The aspect Id is decided based on the VM to be scaled, scale level is decided based on the number of VMs required.
  • Only the IPs of the required VM must be provided in the fixedIp parameter and they must be of the same network in that order as used during the instantiation process.

    For Example:

    "aspectId":"DAMP","scaleLevel":"4" (from scaleLevel 2 to scaleLevel 4) ( scaling from small to medium) - This brings up 2 new DAMPs (DAMP02, DAMP03) servers.

The user needs to provide dampXmiIps(2), dampXsiIps(2), dampImiIps(2)

Detailed explanation of XMI, IMI and XSI Network

The detailed explanation of XMI , IMI and XSI Network for the additional parameters is provided below:

For XMI Network

"xmiNetwork":{ 
 "name": "<Name of XMI network>",
 "subnet": [{   
 "name": "<Name of Subnet of XMI networ>",
 "ipVersion": "",
           "fixedIps":{         
             "dampXmiIps":[   
                "<DAMP 02 XMI IP>",
                "<DAMP 03 XMI IP>"
             ]
           }
 }]
      }     

For IMI Network

"imiNetwork":{ 
 "name": "<Name of IMI network>",
 "subnet": [{ 
                             "name": "<Name of subnet of IMI network>",
                             "ipVersion": "",
          "fixedIps":{         
              "dampImiIps":[   
                 "<DAMP 02 IMI IP>",
                 "<DAMP 03 IMI IP>"
             ]
           }
 }]
      }

For XSI Network

"xsiNetwork":[   
          {  
 "name": "<Name of XSI-1 Network>",      
             "subnet":[{
 "name": "<Name of subnet of XSI-1 Network>",
 "ipVersion": "",
 "fixedIps":{   
                "dampXsiIps":[   
                   "<DAMP02 XSI 1 IP>",
                   "<DAMP03 XSI 1 IP>"
                ]
    }
 }]
         },
         {  
 "name": "<Name of XSI-2 Network>",
 "subnet":[{ 
 "name": "<Name of Subnet of XSI-2 Network>",     
 "ipVersion": "",
             "fixedIps":{   
                 "dampXsiIps":[   
                   "<DAMP02 XSI 2 IP>",
                    "<DAMP03 XSI 2 IP>"
                ] 
             }
 }]
         }
      ]  

The following table describes the parameters used for sending request to VNFM:

Table 9-22 Parameters and Definitions for Scaling VNF to Level using ScaleInfo

Parameters Definitions
scaleInfo

aspectId : VnfType

scaleLevel : Target scale level to which the VNF is to be scaled

dampXmiIps List of DAMP external management ips (if new DAMP VMs are to be scaled)
ipfeXmiIps List of IPFE external management ips (if new IPFE VMs are to be scaled)
stpXmiIps List of vSTP external management ips (if new vSTP VMs are to be scaled)
sbrXmiIps List of SBR external management ips (if new SBR VMs are to be scaled)
sbrNetworkIps List of SBR replication port ips (if new SBR VMs are to be scaled)
dampXsiIps List of DAMP signaling ips (if new DAMP VMs are to be scaled)
ipfeXsiIps List of IPFE signaling ips (if new DAMP VMs are to be scaled)
stpXsiIps List of STP signaling ips (if new DAMP VMs are to be scaled)
dampImiIps List of DAMP internal management ips (if new DAMP VMs are to be scaled)
ipfeImiIps List of IPFE internal management ips (if new IPFE VMs are to be scaled)
stpImiIps List of vSTP internal management ips (if new vSTP VMs are to be scaled)
sbrImiIps List of SBR internal management ips (if new SBR VMs are to be scaled)
daScaleImage (Optional) DAMP Image used during scaling
ipfeScaleImage (Optional) IPFE Image used during scaling

If you are using the Multiqueue feature, you must follow the Prerequisite for the IPFE image.

stpScaleImage (Optional) STP Image used during scaling
serviceMpScaleImage (Optional) Service Mp Image used during Scaling
sbrScaleImage (Optional) SBR Image used during scaling

Note:

During Scaling of SBR's, the newly spawned SBR's are not added to any Server Group, it needs to be manually added to the new Server Groups created by the user. One server Group can have maximum two SBR's.

Scale VNF to Level using ScaleInfo (Arbitrary Size) for DSR APIGW

This option supports Scaling of VNF to arbitrary sizes based on ScaleInfo.

Sample Request for Dynamic IP model

Scale VNF to Level Dynamic IP Deployment

{
 "scaleInfo": [
    {
      "aspectId": "APIGW-APP",
      "scaleLevel": "2"
    },
    {
      "aspectId": "APIGW-DB-DATA",
     "scaleLevel": "4"
    },
    {
      "aspectId": "APIGW-DB-SQL",
      "scaleLevel": "3"
    }
  ],
 "additionalParams":{
     "appServersVolumeIds": ["773c6f7a-0307-4c9e-8c78-ecbc8cb2b6c8"]
 }
}

Sample Request for Fixed IP model

Scale VNF To Level Fixed IP deployment model

{    
    "scaleInfo": [
      {
          "aspectId": "APIGW-APP",
          "scaleLevel": "2"
      },
      {
          "aspectId": "APIGW-DB-DATA",
          "scaleLevel": "4"
      },
      {
          "aspectId": "APIGW-DB-SQL",
          "scaleLevel": "3"
      }
    ],
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net5-dual",
            "ipVersion": "IPv4",
            "xmiSubnetName": "ext-net5-ipv4",
            "fixedIps": {
                "apiGwAppXmiIp": [
                    "10.75.234.5"
                ]
            }
        },
        "imiNetwork": {
            "name": "imi-private",
            "ipVersion": "IPv4",
            "imiSubnetName": "imi-private-sub",
            "fixedIps": {
                "apiGwAppImiIp": [
                    "192.167.2.30"
                ]
            }
        },
        "xsiNetwork": {
            "name": "ext-net2",
            "ipVersion": "IPv4",
            "xsiSubnetName": "ext-net2-subnet",
            "fixedIps": {
                "apiGwAppXsiIp": [
                    "10.196.28.10"
                ],
                "apiGwDbDataXsiIp": [
                    "10.196.28.13",
                    "10.196.28.21"
                ],
                "apiGwDbSqlXsiIp": [
                    "10.196.28.4"
                ]
            }
        },
        "appServersVolumeIds": [
            "ac09106f-60e4-4af7-9fe4-a4e569bb8042"
        ]
    }
}

Note:

The 202 response indicates that the request is accepted for processing. The VNF is operational within 6 to 10 minutes. Use the DSR GUI to determine when the VNF is operational.
Sample Response
202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 
}

Note:

  • The aspect ID is chosen based on the VM to be scaled. Scale level is chosen according to the number of VMs required.
  • Only the IPs of the required VM are passed in the fixedIp parameter. These IPs must be of the same network in that order as used during the instantiation process.

For Example: "aspectId":"APIGW-APP","scaleLevel":"2" (from scaleLevel 1 to scaleLevel 2).

The user needs to pass apiGwAppXmiIp(1), apiGwAppImiIp(1), apiGwAppXsiIp(1), appServersVolumeIds(1).

The following table describes the parameters used for sending request to VNFM:

Table 9-23 Parameters and Definitions for Scaling VNF to Level using ScaleInfo

Parameters Definitions
scaleInfo aspectId : VnfType

scaleLevel : Target scale level to which the VNF is to be scaled.

apiGwAppXmiIp List of APIGW APP external management IPs if new API GW APP VMs are to be scaled.
apiGwAppImiIp List of APIGW APP internal management IPs if new API GW APP VMs are to be scaled.
apiGwAppXsiIp List of APIGW APP signaling IPs if new API GW APP VMs are to be scaled.
apiGwDbDataXsiIp List of API GW DB DATA signaling IPs if new APIGW DB DATA VMs are to be scaled.
apiGwDbSqlXsiIp List of API GW DB SQL signaling IPs if new APIGW DB SQL VMs are to be scaled.
appServersVolumeIds List of API GW APP Volume IDs if new API GW APP VMs are to be scaled.

IPFE and Service Mp Scale from Sizing 0

This feature supports scale from sizing 0 for IPFE and Service Mp VMs.
  • For IPFE, we can scale from size 0 by using "instantiationLevelId" and ScaleInfo (Arbitary Size).
  • For Service Mp, we can scale from size 0 by using only ScaleInfo (Arbitary Size).

Note:

Service Mp Instantiation and scale introduced from DSR version 8.5.0.1.0-91.14.0.

Operate VNF

Operate VNF enables requesting to change the operational state of a VNF instance, including starting and stopping the VNF instance. The VNF state must be in the INSTANTIATED state.

A VNF instance can be in the following states:

  • STARTED: Indicates that the VNF instance is up and running.
  • STOPPED: Indicates that the VNF instance has been stopped. A VNF instance is stopped if all its VNFC instances are also stopped.

In addition to the VNF level Operate, it supports Operate VNF Stop and Start at the VNFC (VM) level. The Operate API can take the VM Hostname in the request message when the call is for the operation of the specific VNFCs. A VNF instance is STARTED/STOPPED if all of its VNFC instances are also in the STARTED/STOPPED state. "vnfState" as STARTED/STOPPED/PARTIAL are implemented. "vnfState" remains in the "PARTIAL" state if VNFC states are combination of "STARTED" and "STOPPED" states. Instance file structure for "additionalInfo" is updated to specific format to support Operate API call after Instantiate, Scale To Level and Discover of VNF. There is a retry mechanism for all VNFCs to complete the operation. If VNFC fails to operate, LCM status returns as FAILED updating the instance file.

Note:

  • Operate VNF is a maintenance API, which is similar to shutdown VNF. The orchestrator decides when to call Operate after completing the impact assessment.
  • If the traffic impact is high, isolate the VM, and then execute the shutdown. For example, remove the DA_MP from the TSA group manually or remove the DP from the DP server group, and then execute shut off Instance by performing operate VNF API call to change the VFNC state to the STOPPED state.

The following image displays the VNF Operate:

Figure 9-8 Operate VNF

Operate VNF

Sample Request for Operate VNF

URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from create/instantiate request>/operate

Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>{  "changeStateTo":
        "STARTED","additionalParams":
        {  "vnfcNames":  
        ["Opt-DNO00","Opt-DNO01"]}}

Note:

The 202 response indicates that the request is accepted for processing. Use the Query LCM operation for status.

Operate VNF Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6  
     date: Tue, 29 Jan 2019 10:39:24 GMT  
     content-length: 0  content-type:
     application/xml 

}

Operate VNF Parameter Descriptions

The following table describes Operate VNF parameters:

Table 9-24 Operate VNF Parameter Descriptions

Parameter Descriptions
changeStateTo Changes the operational state to STARTED or STOPPED.
vnfcNames (Optional) Changes the operational state of a particular VNFCs to STARTED or STOPPED.