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)
- 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
- 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.
- Creating a VNF instance informs the VNFM that a user has requested to instantiate a VNF at some point in the future.
- 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
|
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

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 "
}
{
"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"
}
{
"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

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

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

DELETE Operation |
---|
|
DELETE Operation |
---|
|
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:
{
"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:
{
"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:
{ "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.
- 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. - Click 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.
- 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 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.
- 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).
Figure 10-5 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.
- 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 :
- 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.
- 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.
- 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.
- SMALL - 3 SBRs, 2 SBRs will be added to one server group and one is not
added.
- 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 |
---|---|---|
|
|
|
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
{
"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
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:-
- 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
{
"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
{
"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:
{
"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:
{
"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:
{
"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
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.
- 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
- 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]
- Supported for IPv6 networks -
ipVersion should be "IPv6" in the request Body. The GUI can be accessed
by the following URL:
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 .
- 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.
- Primary Noam
- Secondary Noam
- Query Server
- 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
- 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.
- Change your view to the tenant on which the DSR Network OAM VNF was 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.
- 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.
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
- 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

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:
- Navigate to Project -> Network -> Networks
- Open the Network used for intra - site communication with Signaling VNF (imi).
- The IMI resource ID is the ID of this network.
10.15.2 Determining the SDS NOAM XMI Resource IDs
- 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.
- 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.
- 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:
{ "ntpServerIp": "10.250.32.10", "dnsServerIp": "10.250.32.10",
"atsKeyName": "atsKeypair"
}
{
"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.
"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
orscaleInfo
. - 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.
Figure 10-7 VNF Scaling

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
}
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.
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:
"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.
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
{
"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",
}
}
{
"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
For Example:fixedIp
parameter and they must be of the same network in that order as used during the instantiation process."aspectId":"DAMP","scaleLevel":"4" (from scaleLevel 2 to scaleLevel 4)
( scaling from small to medium) - This brings up 2 newDAMPs (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
- 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.
- 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.- Open corresponding Active NOAM GUI.
- On the Status & Manage tab, under HA - edit the Max Allowed HA Role of required instances of the vnf as OOS.
- Proceed with GRACEFUL stop operate vnf operation from VNFM.
- After changeStateTo STARTED, you can manually edit the Max Allowed HA Role of required instances of the vnf as Active state.
Figure 10-8 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
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. |