10 Deploying VNFs

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

Table 10-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
SERVICE MP Y NA Y NA Y NA 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
ATS
ATS MASTER Y Y(2) Y Y NA Y Y NA NA

Signaling flavors with DIAMETER+STP 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 Table 4-1 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.

10.1 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.

VNFM Multiple VNFD ID Support

Currently, VNFM supports only fixed VNFD ID for each VNF type. The customer needs to deploy multiple DSR projects/VNF's using a single NFVO.

VNFD ID is used as a key parameter to identify and deploy the VNF using NFVO. To deploy multiple DSR VNF using NFVO, the customer needs the flexibility to use multiple VNFD ID.

Table 10-2 VNFM Multiple VNFD ID support (VNFM-V1)

Req No Description
R-33473666-100 VNFM shall continue to support existing VNFD ID fields for backward compatibility.
R-33473666-200

VNFM shall allow suffix of underscore and max 3 characters to VNFD ID in the following format.

e.g. dsrNetworkOam_Xyz

R-33473666-300

Suffix shall support Alpha-numeric only. e.g

"vnfdId": "dsrNetworkOam_ABC"

"vnfdId": "dsrNetworkOam_abc"

"vnfdId": "dsrNetworkOam_Abc"

"vnfdId": "dsrNetworkOam_A1B"

"vnfdId": "dsrNetworkOam_a1y"

"vnfdId": "dsrNetworkOam_123"

R-33473666-400

VNFM shall allow suffix for following VNF deployments

  1. NOAM
  2. DR NOAM
  3. SOAM and Signalling
  4. SDS NOAM
  5. SDS DR NOAM
  6. SDS Signaling
R-33473666-500 Adding a suffix to VNFD ID shall not impact the existing support LCM operations. i.e. Create, Instantiate, scale, heal, Query, get operations status etc.
R-33473666-600 To support this feature customers will have to deploy the new build of VNFM. Upgrade of VNFM will not be supported.

Query Individual VNF Package (VNFM - V2)

Precondition: The VNF package is on-boarded to the NFVO.

  • This API will be triggered by VNFM internally when Orchestrator triggers Create VNF API operation.
  • The VNFM sends a GET request to the "VNFD in an individual VNF package" resource to NFVO.
  • The NFVO returns a "200 OK" response and includes a copy of the VNFD from the VNF package in the payload body to the VNFM.

The following image illustrates the VNF instance creation:

Figure 10-1 VNF Create Instance Request


VNF Create Instance Request

Sample Request: Create VNF instance request generated.

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

Create VNF instance request generated (VNFM - V1)


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 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 IDIH:
{
  "vnfdId": "dsrIdih",
  "vnfInstanceName": "DemoIdih",
  "vnfInstanceDescription": "Description for IDIH VNF"
}

Sample Response

201 Created

Create VNF Instance Response

Content-Type: application/jsonFull Semantic Validation Configuration

Authorization: Token generated after login

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


Create VNF Instance Response (VNFM - V1)
{
   "id":"dsrNetworkOam-b44e9a45-b575-4b30-b580-085d8ddd7015",
   "vnfdId":"dsrNetworkOam",
   "instantiationState":"NOT_INSTANTIATED",
   "vnfInstanceName":"DemoNoam",
   "vnfInstanceDescription":"string",
   "vnfProvider":"Oracle",
   "vnfProductName":"DSR",
   "vnfSoftwareVersion":"DSR-9.0.2.0.0",
   "vnfdVersion":"5.x",
   "onboardedVnfPkgInfoId":"N/A",
   "links":{
      "self":{
         "href":"https://<<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767""
      },
      "instantiate":{
         "href":"https://<<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/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 10-3 Parameters and Definitions for VNF Instance V1

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 (optional) Description of the VNF instance.

T

10.2 Query VNF Instance

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

< Below Diagram and Associated Note - TBD >

Figure 10-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.

10.2.1 Query Individual VNF Instance

Sample Request for Single VNF Instance:

Querying VNF Instances

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/<<VNF Instance Id>>

Authorization : <Token generated after login>

Sample Response for Query Individual VNF Instances:

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/<<VNF Instance Id>>

Accept: application/json

Content-Type: application/json

Query Individual Response:


Query Individual VNF Instance (VNFM - V1)
{
    "id": "dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f",
    "vnfdId": "dsrNetworkOam",
    "instantiationState": "INSTANTIATED",
    "vnfInstanceName": "dsrvnfm",
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",
    "vnfProductName": "DSR",
    "vnfSoftwareVersion": "DSR-9.0.2.0.0",
    "vnfdVersion": "5.x",
    "onboardedVnfPkgInfoId": "N/A",
    "links": {
        "self": {
            "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f"
        },
        "instantiate": {
            "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/instantiate"
        },
        "scaleToLevel": {
            "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/scale_to_level"
        },
        "terminate": {
            "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }
        }
    }
 }

10.2.2 Query All VNF Instances (VNFM-V1)

Sample Request for all VNF Instances:

Querying VNF Instances

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

Authorization: <Token generated after login>

Sample Response for Query All VNF Instances :

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

Accept: application/json

Content-Type: application/json

Response Body for No VNF Instances []

[]

Response Body for Query All VNF Instances:

Query All VNF Instances (VNFM - V1)
[
  {
    "id": "dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163",
    "vnfdId": "dsrNetworkOam",
    "instantiationState": "INSTANTIATED",
    "vnfInstanceName": "string",
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",
    "vnfProductName": "DSR",
    "vnfSoftwareVersion": "DSR-9.0.2.0.0",
    "vnfdVersion": "5.x",
    "onboardedVnfPkgInfoId": "N/A",
    "links": {
      "self": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163"
      },
      "instantiate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/instantiate"
      },
      "scaleToLevel": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/scale_to_level"
      },
      "terminate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/terminate"
      }
    },
    "instantiatedVnfInfo": {
      "flavourId": "DSR NOAM",
      "vnfState": "STARTED",
      "extCpInfo": {
        "id": null,
        "cpdId": null
      },
      "scaleStatus": [
        {
          "aspectId": "NOAM",
          "scaleLevel": "2"
        }
      ]
    },
    "vimConnectionInfo": {
     "MvlCloud": {
      "vimid": "vimid",
      "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
      "interfaceInfo": {
        "endpoint": "https://mv1-dev1.us.oracle.com:5000/v3"
      },
      "accessInfo": {
        "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
      }
      
    }
  },
  {
    "id": "dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5",
    "vnfdId": "dsrNetworkOam",
    "instantiationState": "NOT_INSTANTIATED",
    "vnfInstanceName": "demo",
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",
    "vnfProductName": "DSR",
    "vnfSoftwareVersion": "DSR-9.0.2.0.0",
    "vnfdVersion": "5.x",
    "onboardedVnfPkgInfoId": "N/A",
    "links": {
      "self": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5"
      },
      "instantiate": {
        "href": "https:// <<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5/instantiate"
      },
      "scaleToLevel": null,
      "terminate": null
    }
  } 
 }

10.2.3 Query all VNF Instances Using Filter

VNFM Supports query with filter option where user need to pass filter data in specific format. We support operations like eq, in, nin, cont and ncont.

Format: (operation, field, value)

Example: (eq, vnfProductName, DSR)

Sample Request for all VNF Instances with filter:

Querying VNF Instances
URL: GET: https://<>:8443/vnflcm/<>/vnf_instances 
Authorization : <Token generated after login>
Filter: (eq, vnfInstanceName, FT--da8d7130) 

Sample Response for Query All VNF Instances Using Filter :

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

Accept: application/json

Content-Type: application/json

Query All Using filter
[  {  
    "id": "dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796",
    "vnfdId": "dsrNetworkOam_DRA",  
    "instantiationState": "INSTANTIATED",
    "vnfInstanceName": "FT--da8d7130",  
    "vnfInstanceDescription": "dsrvnfm",
    "vnfProvider": "Oracle",  "vnfProductName": "DSR",  "vnfdVersion": "6.0.2",
    "links": {  
    "href":"https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
     /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  
          },  
    "instantiate": {
          "href": "https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
          /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  
         },  "scaleToLevel": {
          "href": "https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
          /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  
          },  
    "operate": {  "href":
          "https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
          /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  
          },  
    "terminate": {  "href":
          "https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
          /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  
          },  
          "heal": {  "href":
          "https://[2606:b400:605:b818:6e41:6aff:fec7:8380]:8443/vnflcm/v1/vnf_instances
          /dsrNetworkOam_DRA-1f57534f-18f7-487f-b934-f8298958b796"  }  
           },  
    "additionalInfo": {
          "dsrNoam": [  {  "FT--da8d7130-DNO00": {  "image": "DSR-9.0.2.0.0_98.4.0",
          "status": "STARTED",  "serverId": "4afcbda2-1563-4bcb-8f2f-a3ec208ca484"  }  
           },  
           {
          "FT--da8d7130-DNO01": {  "image": "DSR-9.0.2.0.0_98.4.0",  "status": "STARTED",
          "serverId": "f31d36ba-26a0-400e-af91-2179560e7594"  
           }  
          }  
        ]  
      },
    "instantiatedVnfInfo": {  "flavourId": "DSR NOAM",  "vnfState": "STARTED",
          "extCpInfo": null,  "scaleStatus": [  {  "aspectId": "NOAM",  "scaleLevel":
          "2"  }  ]  
      },  "vimConnectionInfo": {  
           "MvlCloud": {  "vimId": "vimid",
           "vimType": "OpenStack",  
           "interfaceInfo": {  
           "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"  
       },  "accessInfo": {  
           "username":"dsrvnfm",  
           "password": "YXV0b21hdGlvbg==",  
           "userDomain": "default",
           "projectDomain": "default",  
           "project": "VNFM_FT1",  "region": "VNFM_FT1"  },
          "extra": {}  
 }  
}  
} 
] 

10.3 Modify VNF Information Operation

VNFM supports the API for "Modify VNF operation". So the VNF Identifier resources created can be modified .

The modifiable fields are "vnfInstanceDescription" and "vimConnectionInfo".

Figure 10-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/<<vnfm_version>>/vnf_instances/< VNF ID received from instantiate request>
Accept: application/json
Content-Type: application/json
Authorization : <Token generated after login>
{
    "vnfInstanceDescription": "Modify VNF Information Data",
    "vimConnectionInfo": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "******",
                "password": "******",
                "userDomain": "Default",
                "projectDomain": "default"
            }
        }
    }
}

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:
{  

cache-control: private  
connection: keep-alive  
content-length: 0  
date: Mon, 06 Mar 2023 10:19:08 GMT  
keep-alive: timeout=60  
location: https://localhost:7777/vnflcm/<<vnfm_version>>/vnf_lcm_op_occs/lcmOp-2b7bb209-53ea-422c-b3f7-4d1dd4fcb155  
strict-transport-security: max-age=31536000;includeSubDomains;preload  
x-content-type-options: nosniff  
x-frame-options: DENY  
x-xss-protection: 1; mode=block 

}

Table 10-4 Parameters and Definitions for Modify VNF

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

Note:

You must provide one of the mentioned parameters in the request body to activate Modify VNF API.

10.4 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 10-4 Deleting a VNF Instance Resource

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

Response Code : 204

{
     cache-control: private  connection: keep-alive  
     date: Mon, 06 Mar 2023 10:14:37 GMT  
     keep-alive: timeout=60  
     strict-transport-security:max-age=31536000;includeSubDomains;preload  
     x-content-type-options: nosniff  
     x-frame-options:DENY  
     x-xss-protection: 1; mode=block 
}

10.5 Grant Lifecycle Operation (VNFM - V2)

  • This operation allows the VNFM to obtain from the NFVO permission and configuration parameters for a VNF lifecycle operation. The NFVO can approve or reject a request based on policies, for example, dependencies between VNFs and available capacity.
  • If Grant failed, respective operation returns LCM status as FAILED.
  • This API is invoked internally form Instantiate, Scale to level, Terminate, Heal and Operate VNF API.

10.6 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 endpoint
    • User Domain Name
    • Project Domain ID
    • User name
    • Password
    • Project
  • 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.

10.6.1 Sample Request for DYNAMIC IP Model

Dynamic deployment model for VNFM Secondary

Request DYNAMIC IP Model (VNFM - V1)

{

    "flavourId": "VNFM SECONDARY",

    "instantiationLevelId": "HA",

    "extVirtualLinks": "extVirtualLinks",

                "extManagedVirtualLinks": [],   

    "vimConnectionInfo": [
     "MvlCloud": {    
       "vimid": "vimid",
       "vimType": ""ETSINFV.OPENSTACK_KEYSTONE.V_3",
       "interfaceInfo": {
         "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
       },
        "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
       }
     }
   ],
    "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": "https://gbuconfluence.oraclecorp.com/pages/editpage.action?pageId=167347102", 

        "flavor": "vnfm",

        "availabilityZone": "nova"


    }

}

vnfConfigurableProperties Json:

DYNAMIC IP Model (VNFM - V2)

{  
    "ntpServerIp" : "2606:b400:605:b912:200:5eff:fe00:1f7",
    "vimNetwork" : {
      "name" : "ext-net-lab",
      "ipVersion" : "IPV6",
      "subnet" : "ext-net-lab-subnet"
    },
    "secondaryVnfmVolumeId" : "5490fb59-e1e4-4435-8510-4d22b7772d04",
    "vimRouteAddress" : "2606:b400:605:b83b::/64,2606:b400:605:b857::/64,2606:b400:605:b854::/64,2606:b400:605:b849::/64,fd0d:deba:d97c:3f::/64,2606:b400:605:b83d::/64" }

10.6.2 Sample Request for FIXED IP Model

Request FIXED IP Model (VNFM - V1)

{

    "flavourId": "VNFM SECONDARY",

    "instantiationLevelId": "HA",

    "extVirtualLinks": "extVirtualLinks",

                "extManagedVirtualLinks": [],   

    "vimConnectionInfo": {
      "MvlCloud": {
        "vimId": "vimid",
       
        "vimType": ""ETSINFV.OPENSTACK_KEYSTONE.V_3",",

        "interfaceInfo": {

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

        },

        "accessInfo": {

            "username": "dsrvnfm",

            "password": "xxxxx",

            "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_6.0.2.0.0_60.2.8", 

        "flavor": "vnfm",

        "availabilityZone": "nova"

    }

}

vnfConfigurableProperties Json:

FIXED IP Model (VNFM - V2)
{
    "ntpServerIp" : "10.250.32.10",
    "vimNetwork" : {
      "name" : "ext-net2",
      "ipVersion" : "IPV4",
      "subnet" : "ext-net2-subnet",
      "fixedIps":{
        "vimIp":"10.196.28.10"
      }
    },
    "secondaryVnfmVolumeId" : "7e8819f2-1f4f-4e6f-a02d-6e6763d8edc8",
    "vimRouteAddress" : "10.75.167.0/24,10.75.185.0/24,10.75.171.192/26,10.75.0.0/16,10.75.189.0/24,10.75.161.0/24"
  }

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.
10.6.2.1 Dynamic and Fixed IP Deployment Parameter Description

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

Table 10-5 Dynamic IP Deployment Parameters VNFM V1

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 10-6 Parameters and Definitions

Parameter Definitions

vnfConfigurableProperties

Data required for vnf configuration.

ntpServerIp

IP of the NTP server

imiNetwork

Network used for internal communication of DSR entities.

Table 10-7 Fixed IP Deployment Parameters VNFM V1

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.

10.7 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
  • Project name

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

The name of a network in the selected OpenStack instance that will carry 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, 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.

Sample Request for DYNAMIC IP model (Dual Subnet) )

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

Accept: application/json

Content-Type: application/json

Authorization: <Token generated after login>

Request JSON (VNFM - V1)

{
        "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    "vimConnectionInfo": {
	"MvlCloud": { 
        "vimid": "vimid",
        "vimType": ""ETSINFV.OPENSTACK_KEYSTONE.V_3", ",
        "interfaceInfo": {
          "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3
        },
        "accessInfo": {
	     "Project": "*****"
            "region": "regionone"
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
	     "projectDomain": "default",
        }
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "vipSubnetName": "ext-net-ipv6-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": "DSR-9.0.2.0.0.vmdk",
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

vnfConfigurableProperties Json:

Request JSON (VNFM - V2)
 {
   "ntpServerIp" : "10.250.32.10",
   "imiNetwork" : {
     "name" : "imiNetworkDual",
     "subnet" : [ {
       "name" : "test11",
       "ipVersion" : "IPv4"
     }, {
       "name" : "test6",
       "ipVersion" : "IPv6"
     } ]
   }
 }

Sample Request for DYNAMIC IP model (Single Subnet)

Note:

  • vnfm_version is either v1 or v2.

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

Accept: application/json

Content-Type: application/json

Authorization : <Token generated after login

Request JSON (VNFM - V1)

{
    "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo": {
     "MvlCloud": {    
       "vimid": "vimid",
       "vimType": ""ETSINFV.OPENSTACK_KEYSTONE.V_3",
       "interfaceInfo": {
         "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
       },
        "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
       }
     }
   ],
    "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": "DSR-9.0.2.0.0.vmdk",
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

vnfConfigurableProperties

Request JSON (VNFM - V2)

{  "ntpServerIp" : "10.250.32.10",  
	  "imiNetwork" : 
	  {  "name" : "imiNetworkDual",  
	  "subnet" : [ {  "name" : "test11",  
	  "ipVersion" : "IPv4"  
	  }]  
         }
         }

Sample Request for FIXED IP deployment model

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

Accept: application/json

Content-Type: application/json

Authorization : <Token generated login>

Request JSON (VNFM - V1) 
{
    "flavourId": "DSR NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo": {
     "MvlCloud": {    
       "vimid": "vimid",
       "vimType": ""ETSINFV.OPENSTACK_KEYSTONE.V_3",
       "interfaceInfo": {
         "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
       },
        "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
       }
     }
   ],
    "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": "DSR-9.0.2.0.0.vmdk",  
        "availabilityZone": "nova",
        "noamAffinityPolicy": "anti-affinity"
    }
}

vnfConfigurableProperties Json:

Request JSON (VNFM - V2)
{  "ntpServerIp" : "10.250.32.10",
	  "imiNetwork" : {  
	  "name" : "imiNetworkDual",  
	  "subnet" : [ {  
	  "name" : "test11",  
	  "ipVersion" : "IPv4",
         "fixedIps" : {  
	  "primaryNoamImiIp" : "192.168.0.66",  
	  "secondaryNoamImiIp" :"192.168.0.252"  
         },  { 
	  "name" : "test6",  
	  "ipVersion" : "IPv6",
	  "fixedIps" : {
         "primaryNoamImiIp" : "2001:db8:1231::fc",  
 	 "secondaryNoamImiIp" : "2001:db8:1231::234"
    }  
    } ]  
   } 
} 

Note:

: User's responsibility to identify available IP addresses in the network to be used. If the user provides a IP address which is not available the subnet, stack creation fails.

Sample Response: Instantiating NOAM Request.

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 10-8 Parameters and Definitions for Network OAM VNF VNFM V1

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
imiNetwork Network used for internal communication of DSR entities
ipVersion IP version of the network - "IPv4"/"IPv6"
ntpServerIp IP of the NTP server
flavor (optional) flavor used for openstack deploys
image (optional) image used for openstack deploys
vipSubnetName (In case of Dual Subnet) Name of VIP subnet to be used only in case of Dual Subnet
availabilityZone (optional) name of logical partitioning in case of host aggregate
noamAffinityPolicy (optional) openstack affinity policy for NOAM

Parameters and Defintions for Dynamic and Fixed IP deployment (VNFM-V2)

Table 10-9 Parameters and Definitions

Parameter Definitions
vnfConfigurableProperties Data required for vnf configuration.
ntpServerIp IP of the NTP server
imiNetwork Network used for internal communication of DSR entities.

Parameters and Definitions for FIXED IP deployment (VNFM - V1)

Table 10-10 Parameter and Defnitions

Parameter Definitions
flavourId Identifier of the VNF deployment flavour to be instantiated
xmiNetwork Network used to provide access to the DSR entities (GUI, ssh), and for inter-site communication
imiNetwork Network used for internal communication of DSR entities
ipVersion IP version of the network - "IPv4"/"IPv6"
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
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
noamAffinityPolicy (optional) openstack affinity policy for NOAM

10.8 Instantiating the DR Network OAM VNF (VNFM-V1)

DR NOAM 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 endpoint URI
    • User Domain Name
    • Project Domain Id
    • Username
    • Password
    • Project 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.

10.8.1 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/<<vnfm_version>>/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

Authorization: Token generated after login

Instantiating DR NOAM Request for Dynamic IP deployment.

Request JSON (VNFM - V1)

{
        "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":{
       "MvlCloud": {
        "vimid": "vimid",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
        "interfaceInfo": {
          "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
	     "project": "*****",
            "region": "RegionOne",
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
		"projectDomain": "default",
        }
 
    },
    "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-9.0.2.0.0.vmdk",
        "availabilityZone": "nova",
        "drNoamAffinityPolicy":"anti-affinity"
    }
}

Note:

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

vnfConfigurableProperties Json VNFM V2:

{
        "ntpServerIp": "10.250.32.10",
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                "name": "test11",
                "ipVersion": "IPv4"
            }, {
                "name": "test6",
                "ipVersion": "IPv6"
            }]
        },
        "primaryNoamVmName": "FT--453a634e-DNO00",
        "noamXmiIps": ["10.75.234.65", "10.75.234.99"]
}

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": {
   "MvlCloud":  
         "vimid":"vimid",
         "vimType":"ETSINFV.OPENSTACK_KEYSTONE.V_3",
         "interfaceInfo":{   
            "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
         },
         "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
         }
      }
   ],
   "localizationLanguage":"localizationLanguage",
   "additionalParams":{   
      "ntpServerIp":"10.250.32.10",
      "xmiNetwork":{   
         "name":"ext-net4",
	    "vipSubnetName": "ext-net-ipv6-subnet",
            "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-9.0.2.0.0.vmdk",
   "availabilityZone": "nova",
   "drNoamAffinityPolicy":"anti-affinity"
    }
 }

vnfConfigurableProperties Json:

Request JSON (VNFM - V2)

{
        "ntpServerIp": "10.250.32.10",
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                "name": "test11",
                "ipVersion": "IPv4",
                "fixedIps": {
                    "drPrimaryNoamImiIp": "10.75.189.224",
                    "drSecondaryNoamImiIp": "10.75.189.236"
                }
            }, {
                "name": "test6",
                "ipVersion": "IPv6",
                "fixedIps": {
                    "drPrimaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0",
                    "drSecondaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9"
                }
            }]
        },
        "primaryNoamVmName": "FT--453a634e-DNO00",
        "noamXmiIps": ["10.75.234.65", "10.75.234.99"]
    }

Sample Response: Instantiating DR NOAM Response.

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 Flavor.
  • The supported DSR DR 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 10-11 Parameters and Definitions for dynamic IP deployment (VNFM - V1)

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
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

Parameters and Definitions for dynamic and Fixed IP deployment (VNFM - V2)

Table 10-12 Parameters and Defnitions

Parameter Definitions

vnfConfigurableProperties

Data required for vnf configuration.

ntpServerIp

IP of the NTP server.

imiNetwork

Network used for internal communication of DSR entities.

primaryNoamVmname

Primary Active DSR NOAM VM name.

noamXmiIps

Primary and Secondary Noam XMI IP addresses.

10.9 Multiple XSI Support (1 - 16 XSI interfaces) - VNFM V1

VNFM V1 supports multiple xsi from 1 to 16 , there is no restriction from VNFM side to pass any specific number of xsi's while creating DSR Signaling setups.

This feature helps in getting rid of VNFM v1 limitation of using only 1, 2 and 4 XSI.

It supports both fixed and dynamic IP deployment model for all flavors of Signaling VNFs.

Sample Request for signaling flavor Diameter with multiple xsi (5 xsi interface) for DYNAMIC IP (Dual Subnet) 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

Request Json
Language: json
theme: confluence
firstline: 1
title: Signaling DIAMETER with multiple xsi ( 5 xsi interfaces ) dynamic
      IP(Dual Subnet) (VNFM - V1)
linenumbers true
collapse: true
{
	"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": {
		"MvlCloud": {
			"vimId": "vimId",
			"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
			"interfaceInfo": {
				"endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
			},
			"accessInfo": {
				"project": "*****",
				"region": "RegionOne",
				"username": "*****",
				"password": "*****",
				"userDomain": "Default",
				"projectDomain": "default"
			}   }
	},
	"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"
					}
				]
			},
			{
				"name": "xsiNetworkDual3",
				"subnet": [{
						"ipVersion": "IPv6",
						"name": "xsiNetworkDual3-IPv6"
					},
					{
						"ipVersion": "IPv4",
						"name": "xsiNetworkDual3-IPv4"
					}
				]
			},
			{
				"name": "ext-net5-dual",
				"subnet": [{
						"ipVersion": "IPv6",
						"name": "ext-net5-IPv6"
					},
					{
						"ipVersion": "IPv4",
						"name": "ext-net5-IPv4"
					}
				]
			},
			{
				"name": "ext-net7",
				"subnet": [{
						"ipVersion": "IPv6",
						"name": "ext-net7-IPv6"
					},
					{
						"ipVersion": "IPv4",
						"name": "ext-net7-IPv4"
					}
				]
			}
        ],
		"ntpServerIp": "10.250.32.10",
		"primaryNoamVmName": "NOAM00-32cd6138",
		"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
		"soamFlavor": "dsr.soam",
		"soamImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
		"soamAvailabilityZone": "nova",
		"ipfeFlavor": "dsr.ipfe",
		"ipfeImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
		"ipfeAvailabilityZone": "nova",
		"daFlavor": "dsr.da",
		"daImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
		"daAvailabilityZone": "nova",
		"stpFlavor": "dsr.stp",
		"stpImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
		"stpAvailabilityZone": "nova",
		"soamAffinityPolicy": "anti-affinity",
		"ipfeAffinityPolicy": "anti-affinity",
		"daAffinityPolicy": "soft-anti-affinity"
	}
}

Note:

vipSubnetName field to be used only in case of Dual Subnet.

10.10 Instantiating the Signaling VNF with Multiple XSI (1, 2, and 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 endpointURI
  • User Domain Name
  • Project Domain Id
  • Username
  • Password
  • Project 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 10-5 VNF installation


VNF installation

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

Table 10-13 Supported Instantiation Levels for DSR Signaling VNF

VNFM Signaling Flavors Small Medium Large
DAMP IPFE SERVICE MP STP SBR UDR DAMP IPFE SERVICE MP STP SBR UDR DAMP IPFE SERVICE MP STP SBR UDR
DIAMETER 2 2 0 0 0 0 4 2 0 0 0 0 32 4 0 0 0 0
STP 0 0 2 2 0 0 0 0 4 8 0 0 0 0 8 32 0 0
DIAMETER+STP 2 2 2 2 0 0 4 2 4 8 0 0 24 4 8 8 0 0
DIAMETER+SBR 2 2 0 0 3 0 4 2 0 0 6 0 32 4 0 0 9 0
DIAMETER+UDR 2 2 0 0 0 2 4 2 0 0 0 2 32 4 0 0 0 4
STP+UDR 0 0 2 2 0 2 0 0 4 8 0 2 0 0 8 32 0 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.

Note:

UDR Flavors
  • In case of UDR flavors, VNFM currently supports one and two xsi interfaces for UDR

Note:

STP Flavors (Service Mp)
  • Service Mp feature is only supported for STP flavors.

10.10.1 DSR Signaling VNF with Multiple XSI Support (1, 2 & 4 xsi interface 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, 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: URL: https://<<VNFM HOST IP>>:8443/vnflcm/<<vnfm_version>>/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json

Instantiating the first signaling VNF request for Dynamic IP (Dual Subnet) deployment model (VNFM-V1)
{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "stpFlavor": "dsr.stp",
        "stpImage": "DSR-9.0.2.0.0.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.

vnfConfigurableProperties (VNFM-v2):

Signaling DIAMETER with multiple xsi(4 xsi interface) for dynamic IP(Dual
    Subnet) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                    "name": "test11",
                    "ipVersion": "IPv4"
                },
                {
                    "name": "test6",
                    "ipVersion": "IPv6"
                }
            ]
        },
        "xsiNetworkCount": 4,
        "primaryNoamVmName": "csarNo-DNO00",
        "noamSgName": "csarNo_DNOSG",
        "noamXmiIps": [
            "10.75.189.150",
            "10.75.189.212"
        ]
    }


Sample Request for signaling flavor DIAMETER with multiple xsi(4 xsi interface) for FIXED IP(Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling flavor DIAMETER with multiple xsi(4 xsi interface) for FIXED IP(Dual Subnet) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 4,
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                    "name": "test11",
                    "ipVersion": "IPv4",
                    "fixedIps": {
                        "primarySoamImiIp": "10.75.189.170",
                        "secondarySoamImiIp": "10.75.189.171",
                        "dampImiIps": [
                            "10.75.189.172",
                            "10.75.189.173"
                        ],
                        "ipfeImiIps": [
                            "10.75.189.174",
                            "10.75.189.175"
                        ]
                    }
                },
                {
                    "name": "test6",
                    "ipVersion": "IPv6",
                    "fixedIps": {
                        "primarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:77d0",
                        "secondarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:76d0",
                        "dampImiIps": [
                            "2606:b400:605:b818:6e41:6aff:fec7:75d0",
                            "2606:b400:605:b818:6e41:6aff:fec7:74d0"
                        ],
                        "ipfeImiIps": [
                            "2606:b400:605:b818:6e41:6aff:fec7:73d0",
                            "2606:b400:605:b818:6e41:6aff:fec7:72d0"
                        ]
                    }
                }
            ]
        }
}

Sample Request for signaling flavor DIAMETER with multiple xsi(2 xsi interface) for DYNAMIC IP(Single Subnet - Ipv6) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling DIAMETER with multiple xsi(2 xsi interface) for DYNAMIC IP(Single
    Subnet - Ipv6) (VNFM - V2)
{
        "ntpServerIp": "2606:b400:605:b912:200:5eff:fe00:1f7",
        "xsiNetworkCount": 2,
        "imiNetwork": {
            "name": "imi6-private",
            "subnet": [{
                "ipVersion": "IPv6",
                "name": "imi6-sub"
            }]
        },
        "primaryNoamVmName": "csarNo-DNO00",
        "noamSgName": "csarNo_DNOSG",
        "noamXmiIps": ["10.75.189.150", "10.75.189.212"]
    }

Sample Request for signaling flavor DIAMETER with multiple xsi(2 xsi interface) for FIXED IP(Single Subnet - Ipv6) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling DIAMETER with multiple xsi(2 xsi interface) for FIXED IP(Single
    Subnet - Ipv6) (VNFM - V2) {
        "ntpServerIp": "2606:b400:605:b912:200:5eff:fe00:1f7",
        "imiNetwork": {
            "name": "imi6-private",
            "subnet": [{
                "ipVersion": "IPv6",
                "name": "imi6-sub",
                "fixedIps": {
                    "primarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:77d0",
                    "secondarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:76d0",
                    "dampImiIps": [
                        "2606:b400:605:b818:6e41:6aff:fec7:75d0",
                        "2606:b400:605:b818:6e41:6aff:fec7:74d0"
                    ],
                    "ipfeImiIps": [
                        "2606:b400:605:b818:6e41:6aff:fec7:73d0",
                        "2606:b400:605:b818:6e41:6aff:fec7:72d0"
                    ]
                }
            }]
        },
        "xsiNetworkCount": 2,
        "primaryNoamVmName": "csarNo-DNO00",
        "noamSgName": "csarNo_DNOSG",
        "noamXmiIps": ["10.75.189.150", "10.75.189.212"]
    }

Sample Request for signaling flavor DIAMETER with "custom" instantiationLevelId, 1 xsi DYNAMIC IP (Single ipv4 Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:
Signaling flavor DIAMETER with "custom" instantiationLevelId, 1 xsi
    DYNAMIC IP (Single ipv4 Subnet) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "primaryNoamVmName": "vimNO-DNO00",
        "noamSgName": "vimNO_DNOSG",
        "xsiNetworkCount": 1,
        "noamXmiIps": [
            "10.75.189.231",
            "10.75.189.211"
        ],
        "numDa": "1",
        "numIpfe": "1",
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                "ipVersion": "IPv4",
                "name": "test11"
            }]
   }
} 

Sample Request for signaling flavor DIAMETER with "custom" instantiationLevelId, 1 xsi FIXED IP (Single ipv4 Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling flavor DIAMETER with "custom" instantiationLevelId, 1 xsi FIXED
    IP (Single ipv4 Subnet) (VNFM - V2) 
{
        "ntpServerIp": "10.250.32.10",
        "primaryNoamVmName": "vimNO-DNO00",
        "noamSgName": "vimNO_DNOSG",
        "xsiNetworkCount": 1,
        "noamXmiIps": [
            "10.75.189.231",
            "10.75.189.211"
        ],
        "numDa": "1",
        "numIpfe": "1",
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                "ipVersion": "IPv4",
                "name": "test11",
                "fixedIps": {
                    "primarySoamImiIp": "10.75.189.181",
                    "secondarySoamImiIp": "10.75.189.182",
                    "dampImiIps": [
                        "10.75.189.185",
                        "10.75.189.186"
                    ],
                    "ipfeImiIps": [
                        "10.75.189.187",
                        "10.75.189.188"
                    ]
                }
            }]
        }
    }  

Sample Request for signaling flavor DIAMETER in Mixed Mode with multiple xsi(4 xsi interface) for DYNAMIC IP (Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling DIAMETER in Mixed Mode with multiple xsi(4 xsi interface) for
    dynamic IP(Dual Subnet) (VNFM - V2)

 {
       "ntpServerIp": "10.250.32.10",
       "xsiNetworkCount": 4,
       "imiNetwork": {
           "name": "imiNetworkDual",
           "subnet": [{
                   "name": "test11",
                   "ipVersion": "IPv4"
               }
           ]
       },
       "primaryNoamVmName": "csarNo-DNO00",
       "noamSgName": "csarNo_DNOSG",
       "noamXmiIps": [
           "10.75.189.150",
           "10.75.189.212"
       ]
}

Sample Request for signaling flavor DIAMETER in Mixed Mode with multiple xsi(4 xsi interface) for FIXED IP(Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling flavor DIAMETER in Mixed Mode with multiple xsi(4 xsi interface)
    for FIXED IP(Dual Subnet) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 4,
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                    "name": "test11",
                    "ipVersion": "IPv4",
                    "fixedIps": {
                        "primarySoamImiIp": "10.75.189.170",
                        "secondarySoamImiIp": "10.75.189.171",
                        "dampImiIps": [
                            "10.75.189.172",
                            "10.75.189.173"
                        ],
                        "ipfeImiIps": [
                            "10.75.189.174",
                            "10.75.189.175"
                        ]
                    }
                },
            ]
        },
        "primaryNoamVmName": "csarNo-DNO00",
        "noamSgName": "csarNo_DNOSG",
        "noamXmiIps": [
            "10.75.189.150",
            "10.75.189.212"
        ]
    }

vSTP 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.
  • In Signaling request body we need to pass "serviceMp": "true" . Default value is "false".
  • If Service Mp was not included ("serviceMp": "false") while vSTP-MP instantiation, we can scale later Service Mp from Sizing 0 to any number (till maximum supported size). This we can only do by scale using "scaleInfo (Arbitary Size)" operation.

Note:

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

Sample Request for signaling flavor DIAMETER + STP without serviceMp, multiple xsi(2 xsi interface) for DYNAMIC IP(Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling flavor DIAMETER + STP without serviceMp, multiple xsi(2 xsi
    interface) for DYNAMIC IP(Dual Subnet)(VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 2,
        "imiNetwork": {
            "name": "imiNetworkDual",
            "subnet": [{
                "name": "test11",
                "ipVersion": "IPv4"
            }, {
                "name": "test6",
                "ipVersion": "IPv6"
            }]
        },
        "primaryNoamVmName": "csarNoam-DNO00",
        "noamSgName": "csarNoam_DNOSG",
        "noamXmiIps": ["10.75.189.249", "10.75.189.218"]
     
}

Sample Request for signaling flavor DIAMETER + STP without serviceMp, multiple xsi(2 xsi interface) for FIXED IP (Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling flavor DIAMETER + STP without serviceMp, multiple xsi(2 xsi
    interface) for FIXED IP(Dual Subnet) (VNFM - V2) 
{
       "ntpServerIp": "10.250.32.10",
       "xsiNetworkCount": 2,
       "imiNetwork": {
           "name": "imiNetworkDual",
           "subnet": [{
               "name": "test11",
               "ipVersion": "IPv4",
               "fixedIps": {
                   "primarySoamImiIp": "10.75.189.161",
                   "secondarySoamImiIp": "10.75.189.162",
                   "dampImiIps": [
                       "10.75.189.163",
                       "10.75.189.164"
                   ],
                   "ipfeImiIps": [
                       "10.75.189.165",
                       "10.75.189.166"
                   ],
                   "stpImiIps": [
                       "10.75.189.167",
                       "10.75.189.168"
                   ]
               }
           }, {
               "name": "test6",
               "ipVersion": "IPv6",
               "fixedIps": {
                   "primarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80d0",
                   "secondarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:79d0",
                   "dampImiIps": [
                       "2606:b400:605:b818:6e41:6aff:fec7:78d0",
                       "2606:b400:605:b818:6e41:6aff:fec7:81d0"
                   ],
                   "ipfeImiIps": [
                       "2606:b400:605:b818:6e41:6aff:fec7:77d0",
                       "2606:b400:605:b818:6e41:6aff:fec7:81d0"
                   ],
                   "stpImiIps": [
                       "2606:b400:605:b818:6e41:6aff:fec7:76d0",
                       "2606:b400:605:b818:6e41:6aff:fec7:75d0"
                   ]
               }
           }]
       },
       "primaryNoamVmName": "csarNoam-DNO00",
       "noamSgName": "csarNoam_DNOSG",
       "noamXmiIps": ["10.75.189.249", "10.75.189.218"]
   }

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

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

Accept: application/json

Content-Type: application/json Authorization :

Authorization : <Token generated after login>

Request JSON (VNFM - V1)
{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "stpFlavor": "dsr.stp",
        "stpImage": "DSR-9.0.2.0.0.vmdk",
        "stpAvailabilityZone": "nova",
        "soamAffinityPolicy": "anti-affinity",
        "ipfeAffinityPolicy": "anti-affinity",
        "daAffinityPolicy": "soft-anti-affinity",
        "stpAffinityPolicy": "soft-anti-affinity"
    }
}

Sample Request for signaling flavor DIAMETER + STP with serviceMp, multiple xsi(4 xsi interface) for DYNAMIX IP(Single Subnet - ipv4) deployment model.

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

Accept: application or json

Content type: application or json

Instantiating the first signaling VNF request for Fixed IP deployment (VNFM-V1)

Request Json:

Signaling flavor DIAMETER + STP with serviceMp,multiple xsi(4 xsi interface) for DYNAMIX IP(Single Subnet - ipv4) (VNFM -
    V1)

{
                "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
                "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-9.0.2.0.0_99.8.0.vmdk",
                                "soamAvailabilityZone": "nova",
                                "ipfeFlavor": "dsr.ipfe",
                                "ipfeImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
                                "ipfeAvailabilityZone": "nova",
                                "daFlavor": "dsr.da",
                                "daImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
                                "daAvailabilityZone": "nova",
                                "stpFlavor": "dsr.stp",
                                "stpImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
                                "stpAvailabilityZone": "nova",
                                "serviceMpFlavor": "dsr.ServiceMp",
                                "serviceMpImage": "DSR-9.0.2.0.0_99.8.0.vmdk",
                                "serviceMpAvailabilityZone": "nova",
                                "soamAffinityPolicy":"anti-affinity",
                                "ipfeAffinityPolicy":"anti-affinity",
                                "daAffinityPolicy":"soft-anti-affinity",
                                "stpAffinityPolicy":"soft-anti-affinity"
                }
}

vnfConfigurableProperties json:

Signaling flavor DIAMETER + STP with serviceMp, multiple xsi(4 xsi interface) for DYNAMIX IP(Single Subnet - ipv4) (VNFM - V2)

{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 4,
        "imiNetwork": {
            "name": "imi-private",
            "subnet": [{
                "ipVersion": "IPv4",
                "name": "imi-private-sub"
            }]
        },
        "primaryNoamVmName": "Noam--2fa79d66-DNO00",
        "noamSgName": "Noam__2fa79d66_DNOSG",
        "noamXmiIps": ["10.75.189.178", "10.75.189.206"],
        "serviceMp": "true"
    }
}

{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "sbrFlavor": "dsr.sbr",
        "sbrImage": "DSR-9.0.2.0.0.vmdk",
        "sbrAvailabilityZone": "nova",
        "sbrAffinityPolicy": "affinity",
        "soamAffinityPolicy": "anti-affinity",
        "ipfeAffinityPolicy": "anti-affinity",
        "daAffinityPolicy": "soft-anti-affinity"
    }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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) with multiple xsi (1, 2, or 4 xsi interface) generated for Single Subnet Dynamic IP deployment model.

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

Accept: application/json

Content-Type: application/json

Authorization: Token generated after login

Request JSON (VNFM - V1)
{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "sbrFlavor": "dsr.sbr",
        "sbrImage": "DSR-9.0.2.0.0.vmdk",
        "sbrAvailabilityZone": "nova",
        "sbrAffinityPolicy": "anti-affinity",
        "soamAffinityPolicy": "anti-affinity",
        "ipfeAffinityPolicy": "anti-affinity",
        "daAffinityPolicy": "soft-anti-affinity"
    }
}

Instantiating the signaling VNF request with SBR (DIAMETER+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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
 "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "sbrFlavor": "dsr.sbr",
        "sbrImage": "DSR-9.0.2.0.0.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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
 
 
        "soamAvailabilityZone": "nova",
 
 
        "ipfeFlavor": "dsr.ipfe",
 
 
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
 
 
        "ipfeAvailabilityZone": "nova",
 
 
        "daFlavor": "dsr.da",
 
 
        "daImage": "DSR-9.0.2.0.0.vmdk",
 
 
        "daAvailabilityZone": "nova",
 
 
        "udrFlavor": "udr.noam",
 
 
        "udrImage": "UDR-12.6.1.0.0_18.7.0.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/<<vnfm_version>>/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 custom size values of DSR Signaling flavor:

Table 10-14 DSR Signaling Flavor Custom Size 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+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
  • 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.

TSA configurations (for Signaling flavors DIAMETER, DIAMETER+SBR, DIAMETER+STP with multiple XSI (1,2,3,4 xsi)

Target set Address (TSA) is actually used for load balancing of the traffic. So IPFE will route all the incoming traffic and in return traffic will not route through IPFE but directly through gateway.

For configuring TSA, two things needs to be configured on active Soam(Soam Vip):-

Detailed explanation of XMI, IMI and XSI Network

  • IPFE optionSets
  • IPFE target Sets

Note:

Please use DSR-8.4.0.6.0-89.1.1 or higher version to enable this feature.

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

IPFE Option Sets Configuration:-

There are four parameter for configuring OptionSets i.e IpfeA1IpAddress, IpfeA2IpAddress, IpfeB1IpAddress and IpfeB2IpAddress. These options accepts the IMI Ip address of Ipfe servers.

These are just logical names that facilitates binding with Ipfe server. "OptionSets" parameter in request body is not mandatory. So by default VNFM configures OptionSets in following way:-

  • 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 pair 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 pair 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)

So to change the default configurations, pass the "OptionSets" in request body and configurations will be done accordingly.

IPFE Target Sets Configuration:-

Target sets can be configured for a particular XSI network. So pass the tsa parameter in xsi network. Multiple tsa can be configured for single xsi network. "tsa" configuration has following parameters:-
  • dampName (optional in tsa) - By default VNFM will add all Damp's to all TSA's. But if only specific damp's need to be configured then it can be passed in this.
  • fixedIp (optional in tsa) - By default VNFM will create port with dynamic IP based on xsi Network. If fixed ip needs to configured then it can be passed in this.
  • preferedActiveIPFE (mandatory in tsa) - It is based on OptionSets configurations. If IpfeA1IpAddress is configured then use ipfeA1 here, for IpfeA2IpAddress use ipfeA2, for IpfeB1IpAddress use ipfeB1 and for IpfeB2IpAddress use ipfeB2
  • preferedStandByIPFE (mandatory in tsa) - Similar to preferedActiveIPFE.

. So if xsi network is on single subnet then port for tsa will be created only for single ip address so tsa configuration will be done for single IP only.

If xsi Network is on dual subnet then port for tsa will be created with two ip address. Both ip address will be configured in tsa.

Note:

TSA configuration is supported for different combination of DIAMETER flavor.

Note:

- If instantiation of stack has TSA configuration and if scaling operation is done on the same stack then scaled Damp's will be added to all the TSA present.

Note:

If scaling is performed after discovery operations, then scaled DAMP will not be added to the TSA. Because discovery operation will not be having information about TSA.

Sample Request for signaling flavour DIAMETER with TSA, 1 xsi for DYNAMIC IP(Single Subnet - Ipv4) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

For XMI Network

Signaling DIAMETER with TSA, 2 xsi for DYNAMIC IP(Single Subnet - Ipv4) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 2,
        "imiNetwork": {
            "name": "imi-private",
            "subnet": [{
                "ipVersion": "IPv4",
                "name": "imi-private-sub"
            }]
        },
        "primaryNoamVmName": "csarNoam--4f613a9f-DNO00",
        "noamSgName": "csarNoam__4f613a9f_DNOSG",
        "noamXmiIps": ["10.75.234.121", "10.75.234.61"],
        "tsa": {
          "ipfeXsiNetwork1": [{
            "dampName": ["damp01", "damp00"],
            "preferedActiveIPFE": "IpfeA1",
            "preferedStandByIPFE": "IpfeA1"
         }],
         "ipfeXsiNetwork2": [{
            "dampName": ["damp01", "damp00"],
            "preferedActiveIPFE": "IpfeA1",
            "preferedStandByIPFE": "IpfeA1"
         }, {
            "dampName": ["damp01", "damp00"],
            "preferedActiveIPFE": "IpfeA1",
            "preferedStandByIPFE": "IpfeA1"
        }]
      }   
}

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:
{
 "ntpServerIp": "10.250.32.10",
 "xsiNetworkCount": 1,
 "imiNetwork": {
 "name": "imi-private",
 "subnet": [{
 "ipVersion": "IPv4",
 "name": "imi-private-sub",
 "fixedIps": {
 "primarySoamImiIp": "10.75.189.181",
 "secondarySoamImiIp": "10.75.189.182",
 "dampImiIps": [
 "10.75.189.185",
 "10.75.189.186"
 ],
 "ipfeImiIps": [
 "10.75.189.187",
 "10.75.189.188"
 ]
 }
 }]
 },
 "primaryNoamVmName": "csarNoam--4f613a9f-DNO00",
 "noamSgName": "csarNoam__4f613a9f_DNOSG",
 "noamXmiIps": ["10.75.234.121", "10.75.234.61"],
 "tsa": {
 "ipfeXsiNetwork1": [{
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231"]
 }]
 }
 
}

Sample Request for signaling flavour DIAMETER with TSA, 4 xsi for DYNAMIC IP(Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

Request Json:

Signaling DIAMETER with TSA, 4 xsi for DYNAMIC IP(Dual Subnet) (VNFM - V1)
{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "soamAffinityPolicy": "anti-affinity",
        "ipfeAffinityPolicy": "anti-affinity",
        "daAffinityPolicy": "soft-anti-affinity"
    }
}

vnfConfigurableProperties Json:

Signaling DIAMETER with TSA, 1 xsi for FIXED IP(Single Subnet - Ipv4) (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "xsiNetworkCount": 1,
        "imiNetwork": {
            "name": "imi-private",
            "subnet": [{
                "ipVersion": "IPv4",
                "name": "imi-private-sub",
                "fixedIps": {
                    "primarySoamImiIp": "10.75.189.181",
                    "secondarySoamImiIp": "10.75.189.182",
                    "dampImiIps": [
                        "10.75.189.185",
                        "10.75.189.186"
                    ],
                    "ipfeImiIps": [
                        "10.75.189.187",
                        "10.75.189.188"
                    ]
                }
            }]
        },
        "primaryNoamVmName": "csarNoam--4f613a9f-DNO00",
        "noamSgName": "csarNoam__4f613a9f_DNOSG",
        "noamXmiIps": ["10.75.234.121", "10.75.234.61"],
        "tsa": {
            "ipfeXsiNetwork1": [{
                "dampName": ["damp00", "damp01"],
                "preferedActiveIPFE": "IpfeA1",
                "preferedStandByIPFE": "IpfeA1",
                "fixedIp": ["10.75.189.231"]
            }]
        }
     
}

Sample Request for signaling flavour DIAMETER with TSA, 4 xsi for FIXED IP(Dual Subnet) deployment model.

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

Accept: application/json

Content-Type: application/json

vnfConfigurableProperties Json:

Signaling DIAMETER with TSA, 4 xsi for FIXED IP(Dual Subnet) (VNFM - V2)
 {
 "ntpServerIp": "10.250.32.10", 
 "xsiNetworkCount": 4,
 "imiNetwork": {
 "name": "imiNetworkDual",
 "subnet": [{
 "name": "test11",
 "ipVersion": "IPv4",
 "fixedIps": {
 "primarySoamImiIp": "10.75.189.170",
 "secondarySoamImiIp": "10.75.189.171",
 "dampImiIps": [
 "10.75.189.172",
 "10.75.189.173"
 ],
 "ipfeImiIps": [
 "10.75.189.174",
 "10.75.189.175"
 ]
 }
 },
 {
 "name": "test6",
 "ipVersion": "IPv6",
 "fixedIps": {
 "primarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:77d0",
 "secondarySoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:76d0",
 "dampImiIps": [
 "2606:b400:605:b818:6e41:6aff:fec7:75d0",
 "2606:b400:605:b818:6e41:6aff:fec7:74d0"
 ],
 "ipfeImiIps": [
 "2606:b400:605:b818:6e41:6aff:fec7:73d0",
 "2606:b400:605:b818:6e41:6aff:fec7:72d0"
 ]
 }
 }
 ]
},
 "primaryNoamVmName": "FT--19b44716-DNO00",
 "noamSgName": "FT__19b44716_DNOSG",
 "noamXmiIps": ["10.75.234.51", "10.75.234.64"],
 "tsa": {
 "ipfeXsiNetwork1": [{
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231", "2606:b400:605:b818:6e41:6aff:fec7:836c"]
 }, {
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231", "2606:b400:605:b818:6e41:6aff:fec7:836c"]
 }, {
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231", "2606:b400:605:b818:6e41:6aff:fec7:836c"]
 }, {
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231", "2606:b400:605:b818:6e41:6aff:fec7:836c"]
 }, {
 "dampName": ["damp00", "damp01"],
 "preferedActiveIPFE": "IpfeA1",
 "preferedStandByIPFE": "IpfeA1",
 "fixedIp": ["10.75.189.231", "2606:b400:605:b818:6e41:6aff:fec7:836c"]
 }]
 }
 
}

Sample Response

Instantiating the signaling VNF with TSA Configuration with DIAMETER response
202 Accepted Headers: location: https:// <>:8443/vnflcm/<>/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/xm

Note:

User can use the NOAM XMI IP for "ntpServerIp" field while creating the dsr Signaling stack if and only if noam is synced with NTP. The following table describes the parameters used for sending request to VNFM:

Parameters and Definitions for Dynamic IP deployment model

Table 10-15 Parameters and Definitions for Dynamic IP deployment model VNFM-V1

Parameter Definitions
flavourId Identifier of the VNF deployment flavour to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavour 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 that order) - in the scope of the VIM or the resource provider or value of resourceId can be provided as IP's of active NOAM and then standby NOAM (in that order)
xmiNetwork Network 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 used for DSR signaling traffic
ntpServerIp IP of the NTP server
primaryNoamVmName Name of primary NOAM VM on which the config XML is loaded
noamSgName The server group of the NOAM VM
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 using MultiQueue feature, Please follow the Prequiste 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) name of logical partitioning in case of host aggregate
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
numServiceMp (Optional - Used only during "custom" instantiation level id based on "STP" flavor) Number of ServiceMp 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

Note:

The flavor ID must be chosen based on the VMs to be deployed. Then the instantiation level is to be chosen based on the number of VMs required.

Only the IPs of the required VM are to be passed in the fixedIp parameter.

For Example: "flavorId": "DIAMETER+STP", "instantiationLevelId": "small" -> This will bring up 2 SOAM, 2 DAMP, 2 IPFE, 2 STP servers. (Please refer to the above table on flavor and instantiation level for more info)

The user needs to pass primarySoamXmiIp(1), secondarySoamXmiIp(1), soamVip(1), dampXmiIps(2), ipfeXmiIps(2), stpXmiIps(2), dampXsiIps(2), ipfeXsiIps(2), stpXsiIps(2)

Here is the detailed explanation of XMI Network in the additional parameters of the request body:

Detailed Explantion 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 10-16 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

10.10.2 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.

Sample Request for DIAMETER+STP for dynamic IP deployment model VNFM V1

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

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

Accept: application/json

Content-Type: application/json
Authorization : <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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "*****",
                "region": "RegionOne",
                "username": "*****",
                "password": "*****",
                "userDomain": "Default",
                "projectDomain": "default"
            }   }
    },
    "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-9.0.2.0.0.vmdk",
        "soamAvailabilityZone": "nova",
        "ipfeFlavor": "dsr.ipfe",
        "ipfeImage": "DSR-9.0.2.0.0.vmdk",
        "ipfeAvailabilityZone": "nova",
        "daFlavor": "dsr.da",
        "daImage": "DSR-9.0.2.0.0.vmdk",
        "daAvailabilityZone": "nova",
        "stpFlavor": "dsr.stp",
        "stpImage": "DSR-9.0.2.0.0.vmdk",
        "stpAvailabilityZone": "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/<<vnfm_version>>/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json
Authorization : <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": {
       "MvlCloud": {    
         "vimid":"vimid",
         "vimType":"ETSINFV.OPENSTACK_KEYSTONE.V_3",
         "interfaceInfo":{   
            "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
         },
         "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
         }
      }
   ],
   "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-9.0.2.0.0.vmdk",
      "soamAvailabilityZone": "nova",
      "ipfeFlavor": "dsr.ipfe",
      "ipfeImage": "DSR-9.0.2.0.0.vmdk",
      "ipfeAvailabilityZone": "nova",
      "daFlavor": "dsr.da",
      "daImage": "DSR-9.0.2.0.0.vmdk",
      "daAvailabilityZone": "nova",
      "stpFlavor": "dsr.stp",
      "stpImage": "DSR-9.0.2.0.0.vmdk",
      "stpAvailabilityZone": "nova",
      "soamAffinityPolicy":"anti-affinity",
      "ipfeAffinityPolicy":"anti-affinity",
      "daAffinityPolicy":"soft-anti-affinity",
      "stpAffinityPolicy":"soft-anti-affinity"
   }
}

10.11 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.

10.12 Instantiating the IDIH VNF

Supports dynamic and fixed IP deployment model.

To start IDIH deployment, it is required to instantiate a signaling VNF. Before deploying the VNF, ensure 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 carries 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 IMI private network of the signaling stack to carry OAM traffic in the selected OpenStack instance. A signaling VNF is a prerequisite as 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.

10.13 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
    • Project 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 .

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: For DYNAMIC IP deployment model

Instantiating SDS NOAM Request for Dynamic IP deployment model

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

Accept: application/json

Content-Type: application/json

Authorization: <Token generated after login>

{
    "flavourId": "SDS NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo": {
	"MvlCloud": {
        "vimid": "vimid",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
        "interfaceInfo": {
          ""endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"" 
        },
        "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
        }
     }],
    "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-9.0.2.0.0.vmdk",
        "sdsQsImage": "SDS-9.0.2.0.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

Instantiating SDS NOAM Request For fixed IP deployment model.

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

Accept: application/json

Content-Type: application/json

Authorization: <Token generated after login>

{
    "flavourId": "SDS NOAM",
    "instantiationLevelId": "HA",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
    
    "vimConnectionInfo": {
	"MvlCloud": { 
        "vimid": "vimid",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
        "interfaceInfo": {
          "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
        },
        ""accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
 
    }],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net8",	
		"vipSubnetName": "ext6-net3-subnet",
            "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-9.0.2.0.0.vmdk",
        "sdsQsImage": "SDS-9.0.2.0.0.vmdk",
        "sdsNoamAvailabilityZone": "nova",
        "sdsQsAvailabilityZone": "nova",
        "sdsNoamAffinityPolicy":"anti-affinity"
    }
}

Sample Response

Instantiating NOAM Request

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 10-17 Parameters and Definitions

Parameter Definitions
flavourId Identifier of the VNF deployment flavour to be instantiated.
xmiNetwork Network 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
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

Table 10-18 Parameters and Definitions for Fixed IP deployment

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 for sdsNoam
sdsQsAvailabilityZone (optional) name of logical partitioning in case of host aggregate for sdsQs
sdsNoamAffinityPolicy (optional) openstack affinity policy for SDS NOAM

10.14 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
    • Project 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.

10.14.1 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/<<vnfm_version>>/vnf_instances/<VNF ID received from create request>/instantiate

Accept: application/json

Content-Type: application/json

Authorization: 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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "******",
                "region": "RegionOne",
                "username": "****",
                "password": "*****",
                "userDomain": "****",
                "projectDomain": "default"
            }
        }
    },
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
        "xmiNetwork": {
            "name": "ext-net3",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet"
                 
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet"
            }]
        },
        "imiNetwork": {
            "name": "imi-net",
            "subnet":[{
                "ipVersion": "IPv6",
                "name":"ext6-net3-subnet"
            },
            {
                "ipVersion":"IPv4",
                "name" : "ext-net3-subnet"
            }]
        },
        "ntpServerIp": "10.250.32.10",
        "primarySdsNoamVmName": "SDS-NOAM00-ea47f4b1",
        "sdsDrNoamFlavor": "sds.noam",
        "sdsDrQsFlavor": "sds.noam",
        "sdsDrNoamImage": "SDS-9.0.2.0.0.vmdk",
        "sdsDrQsImage": "SDS-9.0.2.0.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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "******",
                "region": "RegionOne",
                "username": "****",
                "password": "*****",
                "userDomain": "****",
                "projectDomain": "default"
            }
        }
    },
    "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-9.0.2.0.0.vmdk",
        "sdsDrQsImage": "SDS-9.0.2.0.0.vmdk",
        "sdsDrNoamAvailabilityZone": "nova",
        "sdsDrQsAvailabilityZone": "nova",
        "sdsDrNoamAffinityPolicy":"anti-affinity"
    }
}

Sample Response

202 Accepted


Headers:
{

     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 10-19 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

10.15 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 SDS 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 10-6 SDS Signaling VNF Instantiate Request


SDS Signaling VNF Instantiate Request

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

Table 10-20 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.

10.15.1 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.

10.15.2 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/<<vnfm_version>>/vnf_instances/ < VNF ID received from create request > /instantiate

Accept: application/json

Content-Type: application/json

Authorization: Token generated after login

Request JSON for Dynamic IP (VNFM - V1)

{
    "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": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "******",
                "region": "RegionOne",
                "username": "****",
                "password": "*****",
                "userDomain": "****",
                "projectDomain": "default"
            }
        }
    },
    "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-9.0.2.0.0.vmdk",
        "dpImage": "SDS-9.0.2.0.0.vmdk",
        "dpSoamAvailabilityZone": "nova",
        "dpAvailabilityZone": "nova",
        "dpSoamAffinityPolicy": "anti-affinity",
        "dpAffinityPolicy": "anti-affinity"
    }
}

Note:

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

Request JSON for Fixed IP (VNFM - V1)

{
                "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": {
			"MvlCloud": {
        "vimid": "vimid",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
        "interfaceInfo": {
          "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
            "username": "dsrci.user",
            "password": "xxxx",
            "userDomain": "Default",
            "projectDomain": "default",
            
        }
 
    }],
                "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-9.0.2.0.0.vmdk",
                                "dpImage": "SDS-9.0.2.0.0.vmdk",
                                "dpSoamAvailabilityZone": "nova",
                                "dpAvailabilityZone": "nova",
                                "dpSoamAffinityPolicy":"anti-affinity",
                                "dpAffinityPolicy":"anti-affinity"
                }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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/<<vnfm_version>>/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
Authorization : <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": {
			"MvlCloud": {
        "vimid": "vimid",
        "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
        "interfaceInfo": {
          "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3" 
        },
        "accessInfo": {
	     "project": "*****",  
            "region": "RegionOne", 
            "username": "*****",
            "password": "*****",
            "userDomain": "Default",
            "projectDomain": "default", 
        }
 
    }],
                "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-9.0.2.0.0.vmdk",
                                "dpImage": "SDS-9.0.2.0.0.vmdk",
                                "dpSoamAvailabilityZone": "nova",
                                "dpAvailabilityZone": "nova",
                                "dpSoamAffinityPolicy":"anti-affinity",
                                "dpAffinityPolicy":"anti-affinity",
                                "numDp": "2"
                }
}

Sample Response

202 Accepted
Headers:
{
     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 10-21 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

Parameters and Definitions for Fixed IP Deployment model (VNFM - V1)

Table 10-22 Parameters and Definitions

Parameter Definition
flavourId Identifier of the VNF deployment flavour to be instantiated
instantiationLevelId Identifier of the instantiation level of the deployment flavour to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated.
resourceId Value of resourceId can be provided as IP's of active SDS NOAM and then standby SDS NOAM (in that order)
xmiNetwork Network 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 IM
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) mage 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.

10.16 Instantiating the ATS Master VNF (VNFM-V1)

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
    • Project 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.
  • If you are using DNS, it must be accessible from instance.

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:

  • ATS Master will always have 2 XSI while instantiating.
  • Networks in ATS = XMI, XSI.
  • Default and only instantiationLevelId is small
  • Does not support Dual or mixed mode.

Sample Request for Dynamic IP Deployment Model

Request JSON for Fixed IP (VNFM - V1) 
{
    "flavourId": "master",
    "instantiationLevelId": "small",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],    
     "vimConnectionInfo": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "******",
                "region": "RegionOne",
                "username": "****",
                "password": "*****",
                "userDomain": "****",
                "projectDomain": "default"
            }
        }
    },
    "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-8.4.0.5.0-84.15.0",
        "atsAvailabilityZone": "nova"
    }
}

vnfConfigurableProperties Json:

Request JSON for Fixed IP (VNFM - V2)
{
        "ntpServerIp": "10.250.32.10",
        "dnsServerIp": "10.250.32.10",
        "atsKeyName": "atsKeypair"   
}

Sample Request for Fixed IP Deployment Model

Request JSON for Fixed IP (VNFM - V1) 

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

Accept: application/json

Content-Type: application/json
Authorization : <Token generated after login>
{
    "flavourId": "master",
    "instantiationLevelId": "small",
    "extVirtualLinks": "extVirtualLinks",
                "extManagedVirtualLinks": [],
     "vimConnectionInfo": {
        "MvlCloud": {
            "vimId": "vimId",
            "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
            "interfaceInfo": {
                "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
            },
            "accessInfo": {
                "project": "******",
                "region": "RegionOne",
                "username": "****",
                "password": "*****",
                "userDomain": "****",
                "projectDomain": "default"
            }
        }
    },
    "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-8.4.0.5.0-84.15.0",
        "atsAvailabilityZone": "nova"
    }
}

vnfConfigurableProperties Json:

Request JSON for Dynamic IP (VNFM - V2) 
{
        "ntpServerIp": "10.250.32.10",
        "dnsServerIp": "10.250.32.10",
        "atsKeyName": "atsKeypair"
}

Sample Request for Fixed IP deployment model

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

Accept: application/json

Content-Type: application/json

Authorization : <Token generated after login>

Request JSON for Fixed IP (VNFM - V1)

 {
 "flavourId": "master",
 "instantiationLevelId": "small",
 "extVirtualLinks": "extVirtualLinks",
 "extManagedVirtualLinks": [],
 "vimConnectionInfo": {
 "MvlCloud": {
 "vimId": "vimId",
 "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3",
 "interfaceInfo": {
 "endpoint": "https://mvl-dev1.us.oracle.com:5000/v3"
 },
 "accessInfo": {
 "project": "******",
 "region": "RegionOne",
 "username": "****",
 "password": "*****",
 "userDomain": "****",
 "projectDomain": "default"
 }
 }
 },
 "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-8.4.0.5.0-84.15.0",
 "atsAvailabilityZone": "nova"
 }
}

vnfConfigurableProperties Json:

Request JSON for Fixed IP (VNFM - V2)
{  "ntpServerIp": "10.250.32.10",  "dnsServerIp": "10.250.32.10",
    "atsKeyName": "atsKeypair" 
}
Sample Response
{
 "ntpServerIp": "10.250.32.10",
 "dnsServerIp": "10.250.32.10",
 "atsKeyName": "atsKeypair"
}

Instantiating the ATS Master VNF response

202 Accepted

Headers:
{

     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 (VNFM - V1) :

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.

Table 10-23 Parameters and Definitions for ATS Master (VNFM - V2)

Parameter Description
vnfConfigurableProperties Data required for VNF configuration.
ntpServerIp IP of the NTP server.
imiNetwork Network used for internal communication of DSR entities.

Note:

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

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

10.17 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"

}

10.18 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.
  • 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 10-7 VNF Scaling


Scale out VNF to Level

10.18.1 Scale VNF to Level using InstantiationLevelId for DSR Signaling

Note:

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

Sample Request

Scaling VNF to Level Request for Dynamic IP model

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

Accept: application/json

Content-Type: application/json

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

Scaling VNF to Level Request for Fixed IP model

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

Accept: application/json

Content-Type: application/json

Authorization : <Token generated after login>


{
  "instantiationLevelId": "medium",
  "additionalParams": {
    "daScaleImage": "DSR-9.0.2.0.0.vmdk",
    "ipfeScaleImage": "DSR-9.0.2.0.0.vmdk",
    "stpScaleImage": "DSR-9.0.2.0.0.vmdk",
    "serviceMpScaleImage": "DSR-9.0.2.0.0.vmdk"
    "sbrScaleImage": "DSR-9.0.2.0.0.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"],
							  "serviceMpXmiIps": ["10.75.218.43", "10.75.218.144"], 
                                                 "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"],
							  "serviceMpImiIps": ["192.167.2.9", "192.167.2.10"], 
                                                 "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/<<vnfm_version>>/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)

Note:

If TSA is present while instantiation, then the scaled DAMP is automatically added to all the existing TSA.

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 10-24 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.

10.18.2 Scale VNF to Level using ScaleInfo

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/<<vnfm_version>>/vnf_instances/< VNF ID received from create/instantiate request>/scale_to_level

Accept: application/json

Content-Type: application/json

Authorization: Token generated after login

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

 "additionalParams": {

"daScaleImage": "DSR-9.0.2.0.0.vmdk",
"ipfeScaleImage": "DSR-9.0.2.0.0.vmdk",
"stpScaleImage": "DSR-9.0.2.0.0.vmdk",
"serviceMpScaleImage": "DSR-9.0.2.0.0.vmdk",
"sbrScaleImage": "DSR-9.0.2.0.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": "SERMP",  
    "scaleLevel": "4"
{
    "aspectId": "SBR",
    "scaleLevel": "6"
  }
],
"additionalParams": {
"daScaleImage": "DSR-9.0.2.0.0.vmdk",
"ipfeScaleImage": "DSR-9.0.2.0.0.vmdk",
"stpScaleImage": "DSR-9.0.0.2.0.vmdk",
"serviceMpScaleImag": "DSR-9.0.2.0.0.vmdk"
"sbrScaleImage": "DSR-9.0.2.0.0.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"],

"serviceMpXmiIps": ["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"],

"serviceMpImiIps": ["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/<<vnfm_version>>/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)

Note:

If TSA is present while instantiation, then the scaled DAMP is automatically added to all the existing TSA.

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 10-25 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

10.18.3 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.

10.19 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.

Operate VNF supports both GRACEFUL and FORCEFUL stopType. If StopType is GRACEFUL, gracefulStopTimeout (in seconds) must be passed.

StopType is not required if chageStateTo is STARTED.

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 run the shutdown. For example, remove the DA_MP from the TSA group manually or remove the DP from the DP server group, and then run shut off Instance by performing operate VNF API call to change the VFNC state to the STOPPED state.
GRACEFUL StopType
  • Operate VNF supports GRACEFUL stopType.
  • gracefulStopTimeout: The time interval (in seconds) to wait for the VNF to be taken out of service during graceful stop before stopping the VNF.

Note:

You must manually perfomr the following procedure before doing GRACEFUL STOP for a particular VNF.
  1. Open corresponding Active NOAM GUI.
  2. On the Status & Manage tab, under HA - edit the Max Allowed HA Role of required instances of the vnf as OOS.
  3. Proceed with GRACEFUL stop operate vnf operation from VNFM.
  4. After changeStateTo STARTED, you can manually edit the Max Allowed HA Role of required instances of the vnf as Active state.
The following image displays the VNF Operate:

Figure 10-8 Operate vnf


Operate vnf

Sample Request for Operate VNF

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

Accept: application/json
Content-Type: application/json
Authorization : <Token generated after login>
{
  "changeStateTo": "STARTED",
"additionalParams": {
  "vnfcNames":   ["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/<<vnfm_version>>/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 Operate VNF GRACEFUL STOP

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


Accept: application/json


Content-Type: application/json

Authorization : <Token generated after login>

{
    "changeStateTo": "STOPPED",
    "stopType": "FORCEFUL",
    "additionalParams":

  {             "vnfcNames": ["dsNO-DNO01"]

  }

}

Note:

The 202 response means that the request was accepted for processing. Use Query LCM operation for status.

Operate VNF Response

202 Accepted


Headers:
{

     location: https://localhost:8443/vnflcm/<<vnfm_version>>/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 Operate VNF FORCEFUL STOP

Operate VNF 
URL: https://<>:8443/vnfm/<>/vnf_instances/<
        VNF ID received from create /instantiate request>/operate 
Accept: application/json
Content-Type: application/json
Authorization: <Token generated login> 
{
 "changeStateTo": "STOPPED",
 "stopType": "FORCEFUL",
 "additionalParams":
 { "vnfcNames": ["dsNO-DNO01"]
 }
}

Note:

The 202 response means that the request was accepted for processing. Use Query LCM operation for status.
Operate VNF Response
202 Accepted
Headers:
{
 location: https://localhost:8443/vnflcm/<<vnfm_version>>/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cda03f-7220bb36a5c6 
 date: Tue, 29 Jan 2019 10:39:24 GMT 
 content-length: 0 content-type:
 application/xml 
}

10.19.1 Operate VNF Parameter Descriptions

The following table describes Operate VNF parameters:

Table 10-26 Operate VNF Parameter Descriptions

Parameter Descriptions
changeStateTo Changes the operational state to STARTED or STOPPED.
stopType (Optional) GRACEFUL / FORCEFUL. stopType is required if changeStateTo is STOPPED.
gracefulStopTimeout (Optional) gracefulStopTimeout is required if changeStateTo is STOPPED and stopType is GRACEFUL.

The time interval (in seconds) to wait for the VNF to be taken out of service during graceful stop before stopping the VNF.

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