9 Deploying VNFs
Prerequisites: A virtual infrastructure satisfying the DSR VNFM OpenStack Prerequisites.
Table 9-1 Supported VNFM Network Interfaces
Node Type | IPV4 | Multiple XSI | Fixed XMI | Fixed XSI/SBR | Fixed IMI | IPv6 XSI | IPV6 XMI | IPV6 IMI | Cloud-init |
---|---|---|---|---|---|---|---|---|---|
DSR | |||||||||
DSR NOAM | Y | NA | Y | NA | Y | NA | Y | Y | Y |
DR DSR NOAM | Y | NA | Y | NA | Y | NA | Y | Y | Y |
DSR SOAM | Y | NA | Y | NA | Y | NA | Y | Y | Y |
DAMP | Y | Y | Y | Y | Y | Y | Y | Y | Y |
vSTP MP | Y | Y | Y | Y | Y | Y | Y | Y | Y |
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 |
APIGW | |||||||||
DB Management | Y | NA | Y | Y | Y | Y | Y | Y | N |
DB Data | Y | NA | Y | Y | Y | Y | Y | Y | N |
DB Sql | Y | NA | Y | Y | Y | Y | Y | Y | N |
APIGWAdmin | Y | NA | Y | Y | Y | Y | Y | Y | N |
APIGWAPP | Y | NA | Y | Y | Y | Y | Y | Y | N |
ATS | |||||||||
ATS MASTER | Y | Y(2) | Y | Y | NA | Y | Y | NA | NA |
ATS CORE/TOOLS | Y | NA | Y | NA | NA | NA | N | NA | NA |
PROVGW | |||||||||
PROVGW | Y | NA | N | NA | NA | NA | Y | NA | NA |
Signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface)
- The servers are added as plain SBRs ( Not as Session, Binding or Universal).
- The server groups are created according to the flavor. (Check flavor table for more information)
- Depending on the flavor, there will be a SBR left out from the server group.
- The left out server group should be added to the mated site's server group manually.
- VNFM does not perform the PDRA configuration. Users have to configure PDRA manually.
Note:
For APIGW, only VMs are installed with required interfaces. However, Cloud-init steps are performed manually to configure the VMs.
Create a VNF Instance
- 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.
Swagger specifications can be found post VNFM installation at (https://<VNFM
IP>:8443/docs/vnfm/
).
Multiple VNFD ID Support
VNFD ID is used as a key parameter to identify and deploy the VNF using NFVO. To deploy multiple DSR VNF using NFVO, VNFM provides the flexibility to use multiple VNFD ID. VNFM allows suffix for DSR (DSR NOAM, DSR SOAM, DSR DR NOAM) and SDS (SDS NOAM, SDS SOAM, SDS DR NOAM) VNF deployments. VNFM continues to support existing VNFD ID fields for backward compatibility.
- Underscore will be used as a separator in the vnfdId and then
the 3 characters will be used as a suffix.
For example, "vnfdId": "dsrNetworkOam_ABC"
- Suffix can have an alphanumeric value and it is allowed as a
stack name.
For example, "vnfdId": "dsrNetworkOam_A1B"
- Camel case is not mandatory.
For example, "vnfdId": "dsrNetworkOam_a1y"
- Only numbers or characters or combination of both are also
allowed.
For example,
"vnfdId": "dsrNetworkOam_123"
"vnfdId": "dsrNetworkOam_abc"
"vnfdId": "dsrNetworkOam_1Av"
- Special characters are not allowed except underscore ('_').
- Instance name can have max allowed length as 22. (Will remain as it is, there is no change)
- Existing VNFD ID support remains as it is.
- This suffix addition will only be included in 6 VNF's. They are dsrNetworkOam, dsrSignaling, dsrDrNetworkOam, sdsNetworkOam, sdsSignaling, and sdsDrNetworkOam.
Figure 9-1 VNF Create Instance Request
Sample Request: Create VNF instance request generated.
Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login
Example for VNFM Secondary:
{
"vnfdId": "vnfmSecondary",
"vnfInstanceName": "DemoVnfmSecondary",
"vnfInstanceDescription": "DemoVnfmSecondaryDescription"
}
Example for NOAM:
{
"vnfdId": "dsrNetworkOam",
"vnfInstanceName": "DemoNoam",
"vnfInstanceDescription": "DemoNoam "
}
Example for DR NOAM:
{
"vnfdId": "dsrDrNetworkOam",
"vnfInstanceName": "DemoDrNoam",
"vnfInstanceDescription": "DemoDrNoam "
}
{
"vnfdId": "dsrSignaling",
"vnfInstanceName": "DemoSoam",
"vnfInstanceDescription": "Description"
}
Example for APIGW:
{
"vnfdId": "dsrApiGw",
"vnfInstanceName": "DemoApiGw",
"vnfInstanceDescription": "Description for APIGW VNF"
}
{
"vnfdId": "dsrIdih",
"vnfInstanceName": "DemoIdih",
"vnfInstanceDescription": "Description for IDIH VNF"
}
Example for SDS NOAM
{
"vnfdId": "sdsNetworkOam",
"vnfInstanceName": "DemoSdsNoam",
"vnfInstanceDescription": "DemoSdsNoam "
}
Example for SDS DR NOAM:
{
"vnfdId": "sdsDrNetworkOam",
"vnfInstanceName": "DemoSdsDrNoam",
"vnfInstanceDescription": "DemoSdsDrNoam "
}
Example for SDS Signaling:
{
"vnfdId": "sdsSignaling",
"vnfInstanceName": "DemoSdsSoam",
"vnfInstanceDescription": "DemoSdsSignaling"
}
Example for ATS Master:
{
"vnfdId": "atsMaster",
"vnfInstanceName": "DemoAtsMaster",
"vnfInstanceDescription": "DemoAtsMaster"
}
Example for ProvGW:
{
"vnfdId": "provGw",
"vnfInstanceName": "DemoProvGw",
"vnfInstanceDescription": "DemoProvGw"
}
Sample Response
201 Created
Create VNF Instance Response
Content-Type:
application/jsonFull Semantic Validation Configuration
X-Token: Token generated
after login
Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances
{
"id":"dsrNetworkOam-b44e9a45-b575-4b30-b580-085d8ddd7015",
"vnfdId":"dsrNetworkOam",
"instantiationState":"NOT_INSTANTIATED",
"vnfInstanceName":"DemoNoam",
"vnfInstanceDescription":"string",
"vnfProvider":"Oracle",
"vnfProductName":"DSR",
"vnfSoftwareVersion":"DSR-8.5.0.2.0",
"vnfdVersion":"5.x",
"onboardedVnfPkgInfoId":"N/A",
"links":{
"self":{
"href":"https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767""
},
"instantiate":{
"href":"https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767/instantiate"
},
"scaleToLevel":null,
"terminate":null
}
}
Note:
VNFM supports both the secured and the unsecured URL (HTTPS with port 8443 and HTTP with port 8080).The following table describes the parameters used for sending request to VNFM:
Table 9-2 Parameters and Definitions for VNF Instance
Parameter | Definition |
---|---|
vnfdId
|
Identifier of the VNF instance deployment ID to be created |
vnfInstanceName (optional)
|
Name of the VNF instance to be created (must be unique) |
vnfInstanceDescription
|
Description of the VNF instance |
Query VNF Instance
The diagram describes a sequence for querying/reading information about a VNF instance.
Figure 9-2 Query VNF Instance
VNF instance query, as illustrated above, performs the following actions:
- If the NFVO intends to read information about a particular VNF instance, it sends a GET request to the Individual VNF instance resource, addressed by the appropriate VNF instance identifier (Vnf Id) in its resource URI.
- The VNFM returns a 200 OK response to the NFVO, and includes specific data structure of type VnfInstance related to the VNF instance identifier (Vnf Id) in the payload body.
- If the NFVO intends to query all VNF instances, it sends a GET request to the VNF instances resource.
- The VNFM returns a 200 OK response to the NFVO, and includes zero or more data structures of type VnfInstance in the payload body.
Query Individual VNF Instance
Sample Request for Single VNF Instance:
URL:
GET:
https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<<VNF
Instance ID>>
X-Token : <Token generated after login>
Sample Response for Single VNF Instances:
URL:
GET:
https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<<VNF
Instance ID>>
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"id": "dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767",
"vnfdId": "dsrNetworkOam",
"instantiationState": "NOT_INSTANTIATED",
"vnfInstanceName": "string",
"vnfInstanceDescription": "string",
"vnfProvider": "Oracle",
"vnfProductName": "DSR",
"vnfSoftwareVersion": "DSR-8.5.0.2.0",
"vnfdVersion": "5.x",
"onboardedVnfPkgInfoId": "N/A",
"links": {
"self": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767"
},
"instantiate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-793a2420-adab-4347-9667-489ae671b767/instantiate"
}
}
}
Response Body for VNF Instances that are Instantiated
{
"id": "dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f",
"vnfdId": "dsrNetworkOam",
"instantiationState": "INSTANTIATED",
"vnfInstanceName": "dsrvnfm",
"vnfInstanceDescription": "dsrvnfm",
"vnfProvider": "Oracle",
"vnfProductName": "DSR",
"vnfSoftwareVersion": "DSR-8.5.0.2.0",
"vnfdVersion": "5.x",
"onboardedVnfPkgInfoId": "N/A",
"links": {
"self": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f"
},
"instantiate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/instantiate"
},
"scaleToLevel": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/scale_to_level"
},
"terminate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-c689e44d-2b93-473f-935a-3bf09957fe9f/terminate"
}
},
"instantiatedVnfInfo": {
"flavourId": "DSR NOAM",
"vnfState": "STARTED",
"extCpInfo": {
"id": null,
"cpdId": null
},
"scaleStatus": [{
"aspectId": "NOAM",
"scaleLevel": "2"
}]
},
"vimConnectionInfo": {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrat.user",
"password": "xxxxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSRAT_Feature_Test1"
},
"extra": {}
}
}
Query All VNF Instances
Sample Request
URL:
GET:
https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances
Sample Response
URL:
GET:
https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
Response Body for No VNF Instances
[]
Response Body for all VNF Instances
[
{
"id": "dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163",
"vnfdId": "dsrNetworkOam",
"instantiationState": "INSTANTIATED",
"vnfInstanceName": "string",
"vnfInstanceDescription": "dsrvnfm",
"vnfProvider": "Oracle",
"vnfProductName": "DSR",
"vnfSoftwareVersion": "DSR-8.5.0.2.0",
"vnfdVersion": "5.x",
"onboardedVnfPkgInfoId": "N/A",
"links": {
"self": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163"
},
"instantiate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/instantiate"
},
"scaleToLevel": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/scale_to_level"
},
"terminate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/dsrNetworkOam-38f694dc-be36-4747-814d-5fccd4fa6163/terminate"
}
},
"instantiatedVnfInfo": {
"flavourId": "DSR NOAM",
"vnfState": "STARTED",
"extCpInfo": {
"id": null,
"cpdId": null
},
"scaleStatus": [
{
"aspectId": "NOAM",
"scaleLevel": "2"
}
]
},
"vimConnectionInfo": {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrvnfm",
"password": "xxxxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "dsrvnfm"
},
"extra": {}
}
},
{
"id": "dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5",
"vnfdId": "dsrNetworkOam",
"instantiationState": "NOT_INSTANTIATED",
"vnfInstanceName": "demo",
"vnfInstanceDescription": "dsrvnfm",
"vnfProvider": "Oracle",
"vnfProductName": "DSR",
"vnfSoftwareVersion": "DSR-8.5.0.2.0",
"vnfdVersion": "5.0",
"onboardedVnfPkgInfoId": "N/A",
"links": {
"self": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5"
},
"instantiate": {
"href": "https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-31fd9dc5-bcce-4dfb-ae21-46f07cd3cba5/instantiate"
},
"scaleToLevel": null,
"terminate": null
}
}
}
Modify VNF Information Operation
VNFM supports the API for Modify VNF operation to modify created VNF
Identifier resources. This API can modify either one or both
vnfInstanceDescription
and vimConnectionInfo
fields present in the instance file.
The following image explains how the Modify VNF instance request is processed.
Figure 9-3 Modify VNF Instance Request
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/v1/vnf_instances/< VNF ID received from instantiate request>/modifyvnfAccept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
Request Body:
{ "vnfInstanceDescription": "Modify VNF Information",
"vimConnectionInfo": [
{
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrat.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR AT Dev 1"
}
}
]
}
Note:
The 202 response indicates that the request is accepted for processing. Use Query LCM operation for status.
Response of Modify VNF
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Table 9-3 Parameters and Definitions for Modify VNF
Parameter | Definition |
---|---|
vnfInstanceDescription (Optional) | Updates vnfInstanceDescription details. |
vimConnectionInfo (Optional) | Updates vimConnectionInfo details. |
Deleting a VNF Instance
VNFM supports the LCM function of "Delete VNF identifier". So that the VNF Identifier resources created are deleted.
Precondition: The resource representing the VNF instance to be deleted needs to be in NOT_INSTANTIATED state.
- NFVO sends a DELETE request to the "Individual VNF Instance" resource.
- The VNFM deletes the VNF instance resource and the associated VNF instance identifier.
- The VNFM returns a
"204 No Content"
response with an empty payload body.
Result: The resource representing the VNF instance has been removed from the list of VNF instance resources.
The following diagram describes the flow of deletion of a VNF Instance Resource.
Figure 9-4 Deleting a VNF Instance Resource
DELETE Operation |
---|
|
DELETE Operation |
---|
|
Instantiating VNFM Secondary
VNFM Secondary is a Geo Redundant VNFM. Instantiating a Secondary VNFM is supported if there is no secondary VNFM configured in the Primary VNFM. Primary VNFM must be a standalone VNFM.
Both dynamic and fixed IP deployments are supported. Before deploying the VNFM, the following information must be available:
- The VNF ID for a previously created VNFM Secondary VNF instance.
- Information about the OpenStack instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain ID
- User name
- Password
- Tenant name
- The name of a public network in the selected OpenStack instance that carries the VNFM traffic.
- The name of a network in the selected OpenStack instance that carries the VIM traffic.
- The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server.
For more information about the list of inputs and possible outputs of the command
instantiate VNF
, refer to ETSI NFV-SOL 003 or the DSR VNFM
Swagger.
Sample Request for DYNAMIC IP Model
Dynamic deployment model for VNFM Secondary
{
"flavourId": "VNFM SECONDARY",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "http://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrvnfm",
"password": "xxxx",
"userDomain": "LDAP",
"projectDomain": "LDAP",
"tenant": "DSRVNFM_1"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"vnfmNetwork": {
"name": "ext-net-ipv6",
"ipVersion": "IPv6",
"subnet": "ext-net-ipv6-subnet"
},
"vimNetwork": {
"name": "ext-net",
"ipVersion": "IPv4",
"subnet": "ext-net-subnet"
},
"ntpServerIp": "10.250.32.10",
"secondaryVnfmVolumeId":"174c7cae-d9f0-4459-9463-a0c20443ef0c",
"vimRouteAddress":"10.75.167.0/24,10.75.185.0/24,10.75.171.192/26",
"image": "VNFM_5.3.1.0.0_53.5.0.qcow2",
"flavor": "vnfm",
"availabilityZone": "nova"
}
}
Sample Request for FIXED IP Model
Fixed deployment model for VNFM Secondary
{
"flavourId": "VNFM SECONDARY",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://mvl-dev1.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrvnfm",
"password": "automation",
"userDomain": "Default",
"projectDomain": "Default",
"tenant": "VNFM_FT1"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"vnfmNetwork": {
"name": "ext6-net-4",
"ipVersion": "IPv6",
"subnet": "ext6-subnet-4",
"fixedIps": {
"vnfmIp": "2606:b400:605:b813::17"
}
},
"vimNetwork": {
"name": "ext-net",
"ipVersion": "IPv4",
"subnet": "ext-net-subnet",
"fixedIps": {
"vimIp": "10.75.189.199"
}
},
"ntpServerIp": "10.250.32.10",
"secondaryVnfmVolumeId":"eb66dc4d-ddf1-4880-875c-417d245f44d1",
"vimRouteAddress":"10.75.167.0/24,10.75.185.0/24,10.75.171.192/26",
"image": "VNFM_5.3.1.0.0_53.5.0.qcow2",
"flavor": "vnfm",
"availabilityZone": "nova"
}
}
Note:
- The 202 response indicates that the request is accepted for processing. The VNF might take up to 15 minutes to become operational. Use the LCM operation ID to determine when the VNF is operational.
- The supported VNFM flavor is VNFM Secondary.
- The supported VNFM instantiation level ID is HA.
- Supported for IPv6 networks - ipVersion should be IPv6 in the request. The GUI
can be accessed by the following URL:
https://[<VNFM SECONDARY IP>]:8443/docs/vnfm
.Example:
https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]:8443/docs/vnfm
. - Primary and secondary VNFM creation can be done using the old VNFM volume.
Dynamic and Fixed IP Deployment Parameter Description
The following tables describes the parameters used for sending request to VNFM:
Table 9-4 Dynamic IP Deployment Parameters
Parameter | Description |
---|---|
flavourId | Identifies the VNFM Secondary deployment flavor to be instantiated. |
vnfmNetwork | Provides network details to be used to access the VNFM (Swagger, ssh). |
vimNetwork | Provides network details to be used to access VIM. |
name | Provides the name of the respective network. |
ipVersion | Identifies the IP version of the network, such as IPv4 or IPv6. |
subnet | Identifies subnet of the respective network. |
ntpServerIp | Identifies the IP of the NTP server. |
secondaryVnfmVolumeId | Enters the volume name that can be used as a persistence storage for the VNFM. |
vimRouteAddress | Enters the openstack network address or subnet mask. This is used for communication between VNFM and Openstack (Vim) network. Users can provide the list of route address separated by comma. |
flavor (optional) | Provides the flavor used for openstack deployment. |
image (optional) | Provides the image used for openstack deployment. |
availabilityZone (optional) | Provides the name of logical partitioning in case of host aggregate. |
Table 9-5 Fixed IP Deployment Parameters
Parameter | Description |
---|---|
flavourId | Identifies the VNFM Secondary deployment flavor to be instantiated. |
vnfmNetwork | Provides network details to be used to access the VNFM (Swagger, ssh). |
vimNetwork | Provides network details to be used to access VIM. |
name | Provides the name of the respective network. |
ipVersion | Identifies the IP version of the network, such as IPv4 or IPv6. |
subnet | Identifies subnet of the respective network. |
vnfmIp | Identifies the IP of the VNFM network interface. |
vimIp | Identifies the IP of the VIM network interface. |
ntpServerIp | Identifies the IP of the NTP server. |
secondaryVnfmVolumeId | Enters the volume name that can be used as a persistence storage for the VNFM. |
vimRouteAddress | Enters the openstack network address or subnet mask. This is used for communication between VNFM and Openstack (Vim) network. Users can provide the list of route address separated by comma. |
flavor (optional) | Provides the flavor used for openstack deployment. |
image (optional) | Provides the image used for openstack deployment. |
availabilityZone (optional) | Provides the name of logical partitioning in case of host aggregate. |
Instantiating the Network OAM VNF
Network OAM VNF supports both dynamic and fixed IP deployment.
To start a DSR deployment, it is required to instantiate a DSR network OAM VNF. Before deploying the VNF, make sure the following information is available:
The VNF ID for a previously created DSR Network OAM VNF instance.
Information about the OpenStack instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.
The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
DSR NOAM supports Dual Subnet for XMI and IMI interfaces.
For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.
Swagger specifications can be found post VNFM installation at (https://<VNFM
IP>:8443/docs/vnfm/
).
Sample Request
Resource URL:
https://<<VNFM HOST
IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
Instantiating NOAM Request for dynamic IP deployment (Dual Subnet).
{
"flavourId": "DSR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext-net-ipv6-subnet",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
},
{
"ipVersion": "IPv4",
"name": "ext-net-subnet"
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
},
{
"ipVersion": "IPv4",
"name": "test11"
}]
},
"ntpServerIp": "10.250.32.10",
"flavor": "dsr.noam",
"image": "8.5.0.2.0.vmdk",
"availabilityZone": "nova",
"noamAffinityPolicy": "anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.Instantiating NOAM Request for dynamic IP deployment (Single Subnet).
{
"flavourId": "DSR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet": [
{
"ipVersion": "IPv4",
"name": "ext-net-subnet"
}
]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [
{
"ipVersion": "IPv4",
"name": "test11"
}
]
},
"ntpServerIp": "10.250.32.10",
"flavor": "dsr.noam",
"image": "8.5.0.2.0.vmdk",
"availabilityZone": "nova",
"noamAffinityPolicy": "anti-affinity"
}
}
Instantiating NOAM Request for fixed IP deployment.
{
"flavourId": "DSR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet": [{
"ipVersion": "IPv4",
"name": "ext-net-subnet",
"fixedIps": {
"primaryNoamIp": "10.75.189.224",
"secondaryNoamIp": "10.75.189.236",
"noamVip": "10.75.189.238"
}
},
{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet",
"fixedIps":{
"primaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0",
"secondaryNoamIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9"
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"ipVersion": "IPv4",
"name": "ext-net-subnet",
"fixedIps": {
"primaryNoamImiIp": "10.75.189.224",
"secondaryNoamImiIp": "10.75.189.236"
}
},
{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet",
"fixedIps": {
"primaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80e0",
"secondaryNoamImiIp": "2606:b400:605:b818:6e41:6aff:fec7:80f9"
}
}]
},
"ntpServerIp": "10.250.32.10",
"flavor": "dsr.noam",
"image": "8.5.0.2.0.vmdk",
"availabilityZone": "nova",
"noamAffinityPolicy": "anti-affinity"
}
}
Note:
User must identify available IP addresses to be used in the network. If the user provides an IP address which does not exists in the subnet, the stack creation fails.Sample Response: Instantiating NOAM Request.
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
- If the VNFM creates a VNF that is operational, but has no Signaling VNFs, then it is required to deploy one or more Signaling VNF, and create the DIAMETER configuration data (peers, connections, etc.) for those VNFs, to perform DIAMETER routing.
- After NOAM VNF deployment, the standby NOAM is automatically changed to Force StandBy, purposely to avoid any switchover, while DSR Signaling VNF is deployed. Once DSR Signaling Site is deployed and no more Life Cycle Management operations are planned, change Force Standby NOAM to Active by changing the Max Allowed HA Role to Active on the Status & Manage -> HA options in the Active NOAM GUI.
- The supported NOAM Flavor is DSR NOAM.
- The supported NOAM instantiation level id is HA, that creates two NOAMs.
- Supported for IPv6 networks - ipVersion should be
"IPv6" in the request Body. The GUI can be accessed by the following URL:
https://[<NOAM-vIP>] .
For example:
https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]
Expected Alarms:
10073 Server Group Max Allowed HA Role Warning
Resolution: This alarm can be resolved by, Status and Manage Server tab → HA → changing Max HA Role field of StandBy NOAM to active.
The following table describes the parameters used for sending request to VNFM.
Table 9-6 Parameters and Definitions for Network OAM VNF
Parameters | Definitions |
---|---|
flavourId | Identifier of the VNF deployment flavor to be instantiated |
xmiNetwork | Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
ntpServerIp | IP of the NTP server |
fixedIps | Json object in network to provide IP address |
primaryNoamIp | IP address for primary NOAM IP |
secondaryNoamIp | IP address for secondary NOAM IP |
noamVip | IP address for NOAM VIP |
imiNetwork | Network used for internal communication of DSR entities |
ipVersion | IP version of the network - "IPv4"/"IPv6" |
primaryNoamImiIp | IP address for primary NOAM IP of IMI |
secondaryNoamImiIp | IP address for secondary NOAM IP of IMI |
flavor (optional) | flavor used for openstack deploys |
image (optional) | image used for openstack deploys |
availabilityZone (optional) | name of logical partitioning in case of host aggregate |
vipSubnetName (In case of Dual Subnet) | Name of VIP subnet to be used only in case of Dual Subnet |
noamAffinityPolicy (optional) | openstack affinity policy for NOAM |
Instantiating the DR Network OAM VNF
DRNOAM is the Disaster recovery NOAM site. The operator can make DRNOAM as the Primary Site, in case both the Active and StandBy NOAM of Primary site fails, and can continue the operations without any disturbance.
DRNOAM supports both dynamic and fixed deployment model.
When a setup is configured with a DR NOAM then first NOAM SG is treated as Primary NOAM Site and second NOAM SG is treated as Secondary NOAM site.
To instantiate a DSR DR Network OAM VNF, the following information must be available:
- The VNF ID for a previously created DSR DR Network OAM VNF instance.
- Information about the
OpenStack instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
- The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.
- OpenStack resource IDs for
the XMI IPs from both DSR NOAM VMs.
Note:
The resource IDs can be obtained by examining the DSR Network OAM stack to which the identified DR NOAM VNF would be attached. - Name of Active Primary DSR NOAM VM.
- The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
Determining the DR NOAM XMI Resource IDs
The following facts must be considered before proceeding with DR NOAM site creation:
- DRNOAM site must be created on separate tenant.
- DRNOAM site is referred as Secondary NOAM. Therefore, we have two sites, Primary and Secondary.
- Secondary Site configuration is done on Primary Active NOAM.
- In the Primary Active NOAM, when second NOAM Server Group gets created, it automatically becomes Secondary.
- Primary Active NOAM communicates to Secondary Active NOAM through the existing comcol replication and merging mechanism.
- Secondary NOAM Site is optional and it does not need to be deployed at the same time as of Primary NOAM.
From the OpenStack GUI, to change your view to the tenant on which the DSR Network OAM VNF is deployed, perform the following steps.
- 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/v1/vnf_instances/<VNF
ID received from create request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "DSR DR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "id1",
"virtualLinkDescId": " Active NOAM",
"resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
},
{
"id": "id2",
"virtualLinkDescId": " StandBy NOAM",
"resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext-net-ipv6-subnet",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
},
{
"ipVersion": "IPv4",
"name": "ext-net-subnet"
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
},
{
"ipVersion": "IPv4",
"name": "test11"
}]
},
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-ea47f4b1",
"flavor": "dr.noam",
"image": "DSR-8.5.0.1.0_91.5.0.vmdk",
"availabilityZone": "nova",
"drNoamAffinityPolicy":"anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.Instantiating DR NOAM Request for Fixed IP deployment.
{
"flavourId":"DSR DR NOAM",
"instantiationLevelId":"HA",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":"Active NOAM IP's",
"resourceId":"38121fc6-310c-4012-9787-b5289dd620b9"
},
{
"id":"id2",
"virtualLinkDescId":"Secondary NOAM IP's",
"resourceId":"baa54c8d-1a7a-4b15-8d64-8fe9af50b000"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrvnfm",
"password":"xxxx",
"userDomain":"Default",
"projectDomain": "default",
"tenant":"dsrvnfm"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"ntpServerIp":"10.250.32.10",
"xmiNetwork":{
"name":"ext-net4",
"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-8.5.0.1.0_91.5.0.vmdk",
"availabilityZone": "nova",
"drNoamAffinityPolicy":"anti-affinity"
}
}
Sample Response: Instantiating DR NOAM Response.
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 21 Feb 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
- The supported NOAM Flavor is DSR NOAM.
- The supported NOAM instantiation level id is HA.
- Support for IPv6 networks - ipVersion should be "IPv6" in the request Body.
Table 9-7 Parameters and Definitions for DR Network OAM VNF
Parameters | Definitions |
---|---|
flavourId | Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId | Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level is HA. |
resourceId | The identifier of the resource in the scope of the VIM or the resource provider |
xmiNetwork | Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
imiNetwork | Network used for internal communication of DSR entities |
name | Network name, for example; ext-net |
ipVersion | IP version IPv4 or IPv6 |
ntpServerIp | IP of the NTP server |
primaryNoamVmName | Primary Active DSR NOAM VM name |
drPrimaryNoamIp | IP address of primary DR Noam |
drSecondaryNoamIp | IP address of secondary DR Noam |
drPrimaryNoamIp | IP address of primary DR Noam |
dsPrimaryNoamImiIp | IP address for primary DR NOAM IP of IMI |
drSecondaryNoamImiIp | IP address for secondary DR NOAM IP of IMI |
flavor (optional) | flavor used for openstack deploys |
image (optional) | image used for openstack deploys |
availabilityZone (optional) | name of logical partitioning in case of host aggregate |
vipSubnetName (In case of Dual Subnet) | Name of VIP subnet to be used only in case of Dual Subnet |
drNoamAffinityPolicy (optional) | Openstack affinity policy for DR NOAM |
Instantiating the Signaling VNF with Multiple XSI (1, 2 & 4 XSI Interface)
Signaling VNF supports both dynamic and fixed IP deployment
To deploy the first signaling VNF, the following must be available:
A previously instantiated DSR Network OAM VNF.
The VNF ID for a previously created DSR Signaling VNF instance.
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
The name of a Public Network in your chosen OpenStack instance that will carry OAM traffic.
The name of a Public Network in your chosen OpenStack instance that will carry Signaling traffic.
Note:
This should be a different network than the one that carries OAM traffic.The IP address of the NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls your chosen OpenStack instance normally hosts an NTP server, and is often a good choice.
OpenStack resource IDs for the XMI IPs from both NOAM VMs.
Note:
The resource IDs can be obtained by examining the network OAM stack to which the identified signaling VNF would be attached .Name of the active NOAM VM.
Note:
To avoid switchover of Active NOAM, make the StandBy NOAM as Forced Standby by changing the Max Allowed HA Role to Standby on Status & Manage -> HA from Active NOAM GUI.Name of the NOAM SG.
Expected Alarms:
IPFE Alarm: 5002 An address pertaining to inter-IPFE state synchronization is configured incorrectly.
DAMP Alarm: 19800 Communication Agent Connection Down (occurs only in the presence of SBR servers).
The following image illustrates the VNF instantiation:
Figure 9-5 VNF Instantiate Request
The following table contains the supported Instantiation levels to instantiate a VNF resource for the DSR Signaling VNF.
Table 9-8 Supported Instantiation Levels for DSR Signaling VNF
VNFM Signaling Flavors | Small | Medium | Large | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DAMP | IPFE | STP | SBR | UDR | DAMP | IPFE | STP | SBR | UDR | DAMP | IPFE | STP | SBR | UDR | |
DIAMETER | 2 | 2 | 0 | 0 | 0 | 4 | 2 | 0 | 0 | 0 | 32 | 4 | 0 | 0 | 0 |
STP | 0 | 0 | 2 | 0 | 0 | 0 | 2 | 8 | 0 | 0 | 0 | 4 | 32 | 0 | 0 |
DIAMETER+STP | 2 | 2 | 2 | 0 | 0 | 4 | 2 | 8 | 0 | 0 | 24 | 4 | 8 | 0 | 0 |
DIAMETER+SBR | 2 | 2 | 0 | 3 | 0 | 4 | 2 | 0 | 6 | 0 | 32 | 4 | 0 | 9 | 0 |
DIAMETER+STP+SBR | 2 | 2 | 2 | 3 | 0 | 4 | 2 | 4 | 6 | 0 | 24 | 4 | 8 | 9 | 0 |
DIAMETER+UDR | 2 | 2 | 0 | 0 | 2 | 4 | 2 | 0 | 0 | 2 | 32 | 4 | 0 | 0 | 4 |
STP+UDR | 0 | 0 | 2 | 0 | 2 | 0 | 0 | 8 | 0 | 2 | 0 | 4 | 32 | 0 | 4 |
DIAMETER+STP+SBR+UDR | 2 | 2 | 2 | 3 | 2 | 4 | 2 | 4 | 6 | 2 | 16 | 4 | 16 | 9 | 4 |
Note:
- DSR Signaling supports "custom" instantiation level ID based on flavor.
- In case of UDR flavors, VNFM supports one and two xsi interfaces for UDR.
- Total number of servers allowed per signaling VNF is 48.
- Total number of IPFE servers allowed per signaling VNF is 4.
- Total number of SOAMs for any of the above servers is 2.
For Example: Total number of servers per signaling VNF = No. of SOAM's + No. of DAMP's + No. of IPFE's + No. of STP's + No. of SBR's+ No. of UDR's.
- 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.
Determine the NOAM XMI Resource IDs
From the OpenStack GUI:
- Change your view to the tenant on which the DSR Network OAM VNF was deployed.
- Navigate to
Orchestration->Network->Network
Topology. A diagram of all VMs in the tenant is displayed.
Note:
The diagram may take a few minutes to appear. - Click on one of the NOAM
VMs.
A screen displays with information about the specific NOAM VM.
- Save the resource ID for
the XMI port provided in the IP addresses section of the screen.
Note:
The IP Addresses section of the popup screen contains information about the network ports and resource IDs assigned to the VM. - 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.
Note:
If DSR-NOAM is created on Dual Subnet, then use IPv4 XMI IP's of NOAM while creating SOAM. For more information about the full list of all inputs and possible
outputs of the
instantiate VNF
command, see
ETSI NFV-SOL 003,
section
5.4.4.3.1, or the
DSR VNFM Swagger specification. Swagger specifications can be found post VNFM
installation at (https://<VNFM
IP>:8443/docs/vnfm/
).
Signaling VNF with Multiple XSI Support (1, 2 and 4 XSI only)
- Multiple XSI supports only DSR Signaling VNF.
- DAMP vnf supports 1, 2 & 4 xsi interface.
- STPMP vnf supports 1, 2, & 4 xsi interface.
- IPFE vnf supports 1, 2, & 4 xsi interface.
- UDR vnf supports only 1 & 2 xsi interface.
While passing xsiNetwork
through the request body, add the list of network in xsiNetwork
.
For Example
1 xsiNetwork | 2 xsiNetwork | 4 xsiNetwork |
---|---|---|
|
|
|
Note:
In case of the UDR flavor (Diameter+UDR, Diameter+ STP+SBR+UDR, STP+UDR), "udrType" is an optional parameter. So, if a user has not used it in the request message, by default, UDR of type "EIR" is created. The other UDR type is "vMNP".The sample request and response provided below represents signaling flavors without SBR such as, DIAMETER, STP & DIAMETER+STP, DIAMETER+UDR, and STP+UDR, with multiple xsi (1, 2, 4 xsi interface) for Dynamic IP and Fixed IP deployment model.
Sample Request
Resource URL:
https://<<myhost-IP>>:8443/vnflcm/v1/vnf_instances/<VNF
ID received from create request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "DIAMETER",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext-net-ipv6-subnet",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
},
{
"ipVersion": "IPv4",
"name": "ext-net-ipv4-subnet"
}
]
},
"imiNetwork": {
"name": "imi-private",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
},
{
"ipVersion": "IPv4",
"name": "test4"
}
]
},
"xsiNetwork": [{
"name": "ext-net2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiIPv6"
},
{
"ipVersion": "IPv4",
"name": "xsiIPv4"
}
]
},
{
"name": "xsiNetworkDual2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiNetworkDual2-IPv6"
},
{
"ipVersion": "IPv4",
"name": "xsiNetworkDual2-IPv4"
}
]
}],
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"stpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.{
"flavourId": "DIAMETER+STP",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
}]
},
"imiNetwork": {
"name": "imi-private",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
}]
},
"xsiNetwork": [{
"name": "ext-net2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiIPv6"
}]
},
{
"name": "xsiNetworkDual2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiNetworkDual2-IPv6"
}]
}],
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"stpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity"
}
}
Instantiating the first signaling VNF request for Fixed IP deployment.
{
"flavourId":"DIAMETER+STP",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":"",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
},
{
"id":"id2",
"virtualLinkDescId":"",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrvnfm",
"password":"xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant":"dsrvnfm"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"xmiNetwork":{
"name":"ext-net4",
"subnet":[{
"ipVersion": "IPv4",
"name": "ext-net-subnet",
"fixedIps":{
"primarySoamXmiIp":"10.75.218.141",
"secondarySoamXmiIp":"10.75.218.163",
"soamVip":"10.75.218.97",
"dampXmiIps":[
"10.75.218.38",
"10.75.218.137"
],
"ipfeXmiIps":[
"10.75.218.153",
"10.75.218.126"
],
"stpXmiIps":[
"10.75.218.67",
"10.75.218.84"
]
}
}]
},
"imiNetwork":{
"name":"imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion": "IPv4",
"fixedIps":{
"primarySoamImiIp":"192.167.2.9",
"secondarySoamImiIp":"192.167.2.10",
"dampImiIps":[
"192.167.2.11",
"192.167.2.12"
],
"ipfeImiIps":[
"192.167.2.13",
"192.167.2.14"
],
"stpImiIps":[
"192.167.2.15",
"192.167.2.16"
]
}
}]
},
"xsiNetwork":[
{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.140",
"10.75.218.155"
],
"ipfeXsiIps":[
"10.75.218.101",
"10.75.218.22"
],
"stpXsiIps":[
"10.75.218.95",
"10.75.218.108"
]
}
}]
},
{
"name":"ext-net",
"subnet":[{
"name":"ext-net-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.140",
"10.75.218.155"
],
"ipfeXsiIps":[
"10.75.218.101",
"10.75.218.22"
],
"stpXsiIps":[
"10.75.218.95",
"10.75.218.108"
]
}
}]
}],
"ntpServerIp":"10.250.32.10",
"primaryNoamVmName":"NOAM00-",
"noamSgName":"dsrNetworkOam_NOAM__SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"stpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Sample Request
Instantiating the signaling VNF request with SBR (DIAMETER+SBR flavor) with multiple xsi (1,2,4 xsi interface) for Dual Subnet Dynamic IP deployment model.
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId": "DIAMETER+SBR",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext-net3-ipv6-subnet",
"subnet":[{
"name": "ext-net3-subnet",
"ipVersion": "IPv4"
},
{
"name": "ext-net3-ipv6-subnet",
"ipVersion": "IPv6"
}]
},
"imiNetwork": {
"name": "imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion": "IPv4"
},
{
"name": "imi-private-ipv6-sub",
"ipVersion": "IPv6"
}]
},
"xsiNetwork": [{
"name": "ext-net2",
"subnet":[{
"name": "ext-net2-subnet",
"ipVersion": "IPv4"
},
{
"name": "ext-net2-ipv6-subnet",
"ipVersion": "IPv6"
}]
},
{
"name": "ext-net5",
"subnet":[{
"name": "ext-net5-subnet",
"ipVersion": "IPv4"
},
{
"name": "ext-net5-ipv6-subnet",
"ipVersion": "IPv6"
}]
}],
"sbrNetwork": {
"name": "ext-net3",
"subnet":[{
"name": "ext-net3-subnet",
"ipVersion": "IPv4"
},
{
"name": "ext-net3-ipv6-subnet",
"ipVersion": "IPv6"
}]
},
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSRIPFE-8.4.0.3.0_85.17.0.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
"daAvailabilityZone": "nova",
"sbrFlavor": "dsr.sbr",
"sbrImage": "DSR-8.4.0.3.0_85.17.0.vmdk",
"sbrAvailabilityZone": "nova",
"sbrAffinityPolicy":"anti-affinity",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity"
}
}
Sample Request
Instantiating the signaling VNF request with SBR (DIAMETER+SBR, DIAMETER+STP+SBR, DIAMETER+STP+SBR+UDR) with multiple xsi (1, 2, or 4 xsi interface) generated for Single Subnet Dynamic IP deployment model.
Resource URL:
https://<<myhost-IP>>:8443/vnflcm/v1/vnf_instances/<VNF
ID received from create request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "DIAMETER+SBR",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet":[{
"name": "ext-net3-subnet",
"ipVersion": "IPv4"
}]
},
"imiNetwork": {
"name": "imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion": "IPv4"
}]
},
"xsiNetwork": [{
"name": "ext-net2",
"subnet":[{
"name": "ext-net2-subnet",
"ipVersion": "IPv4"
}]
},
{
"name": "ext-net5",
"subnet":[{
"name": "ext-net5-subnet",
"ipVersion": "IPv4"
}]
}
],
"sbrNetwork": {
"name": "ext-net3",
"subnet":[{
"name": "ext-net3-subnet",
"ipVersion": "IPv4"
}]
},
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"sbrFlavor": "dsr.sbr",
"sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"sbrAvailabilityZone": "nova",
"sbrAffinityPolicy":"affinity",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity"
}
}
Instantiating the signaling VNF request with SBR (DIAMETER+SBR, DIAMETER+STP+SBR) with multiple xsi (1,2,4 xsi interface) generated for Fixed IP deployment model.
{
"flavourId":"DIAMETER+SBR",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":"active NOAM",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
},
{
"id":"id2",
"virtualLinkDescId":"standby NOAM",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrvnfm",
"password":"xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant":"dsrvnfm"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"xmiNetwork":{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamXmiIp":"10.75.218.141",
"secondarySoamXmiIp":"10.75.218.163",
"soamVip":"10.75.218.97",
"dampXmiIps":[
"10.75.218.38",
"10.75.218.137"
],
"ipfeXmiIps":[
"10.75.218.153",
"10.75.218.126"
],
"sbrXmiIps":[
"10.75.218.67",
"10.75.218.84",
"10.75.218.184"
]
}
}]
},
"imiNetwork":{
"name":"imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamImiIp":"192.167.2.1",
"secondarySoamImiIp":"192.167.2.2",
"dampImiIps":[
"192.167.2.3",
"192.167.2.4"
],
"ipfeImiIps":[
"192.167.2.5",
"192.167.2.6"
],
"sbrImiIps":[
"192.167.2.7",
"192.167.2.8",
"192.167.2.9"
]
}
}]
},
"sbrNetwork":{
"name":"ext-net7",
"subnet":[{
"name": "ext-net7-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"sbrNetworkIps":[
"10.196.218.95",
"10.196.218.108",
"10.196.218.18"
]
}
}]
},
"xsiNetwork":[{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.140",
"10.75.218.155"
],
"ipfeXsiIps":[
"10.75.218.101",
"10.75.218.22"
]
}
},
{
"name":"ext-net4",
"subnet": [{
"name": "ext-net-sub",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.42",
"10.75.218.122"
],
"ipfeXsiIps":[
"10.75.218.91",
"10.75.218.131"
]
}
}
],
"ntpServerIp":"10.250.32.10",
"primaryNoamVmName":"NOAM00-f1888e6d",
"noamSgName":"dsrNetworkOam_NOAM_f1888e6d_SG"
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"sbrFlavor": "dsr.sbr",
"sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"sbrAvailabilityZone": "nova",
"sbrAffinityPolicy":"affinity",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity"
}
}
For signaling flavors with UDR with multiple xsi (1 and 2 XSI interface) for Fixed IP deployment model
{
"flavourId":"DIAMETER+UDR",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":"active NOAM",
"resourceId":"6ba09324-0568-4489-bdb6-bcc9bb6218a3"
},
{
"id":"id2",
"virtualLinkDescId":"standby NOAM",
"resourceId":"379e4fce-61a7-4323-8ee3-d548e819042f"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrvnfm",
"password":"xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant":"dsrvnfm"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"xmiNetwork":{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamXmiIp":"10.75.218.207",
"secondarySoamXmiIp":"10.75.218.218",
"soamVip":"10.75.218.204",
"primaryUdrXmiIp":"10.75.218.243",
"secondaryUdrXmiIp":"10.75.218.223",
"udrVip":"10.75.218.191",
"dampXmiIps":[
"10.75.218.196",
"10.75.218.213"
],
"ipfeXmiIps":[
"10.75.218.226",
"10.75.218.216"
]
}
}]
},
"imiNetwork":{
"name":"imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamImiIp":"192.167.2.1",
"secondarySoamImiIp":"192.167.2.2",
"primaryUdrImiIp":"192.167.2.3",
"secondaryUdrImiIp":"192.167.2.4",
"dampImiIps":[
"192.167.2.5",
"192.167.2.6"
],
"ipfeImiIps":[
"192.167.2.7",
"192.167.2.8"
]
}
}]
},
"xsiNetwork":[{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.214",
"10.75.218.217"
],
"ipfeXsiIps":[
"10.75.218.149",
"10.75.218.238"
],
"primaryUdrXsiIps":[
"10.75.218.201"
],
"secondaryUdrXsiIps":[
"10.75.218.215"
]
}
}]
},
{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.235",
"10.75.218.178"
],
"ipfeXsiIps":[
"10.75.218.225",
"10.75.218.219"
],
"primaryUdrXsiIps":[
"10.75.218.175"
],
"secondaryUdrXsiIps":[
"10.75.218.230"
]
}
}]
}],
"ntpServerIp":"10.250.32.10",
"primaryNoamVmName":"NOAM00-a2eaba59",
"noamSgName":"dsrNetworkOam_NOAM_a2eaba59_SG"
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"udrFlavor": "udr.noam",
"udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"udrType": "vMNP",
"udrAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"udrAffinityPolicy":"anti-affinity"
}
}
Sample Response
Instantiating the signaling VNF with SBR response
202 Accepted
Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml
Sample Request
For signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface) for Fixed IP deployment model.
{"flavourId": "DIAMETER+STP+SBR+UDR",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [
{
"id": "id1",
"virtualLinkDescId": "active NOAM",
"resourceId": "790bf9f7-8834-4c3a-bd17-5544ef5e6848"
},
{
"id": "id2",
"virtualLinkDescId": "standby NOAM",
"resourceId": "1776d877-f643-45d6-b6da-bf1a540a01d1"
}
],
"vimConnectionInfo": [
{
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrvnfm",
"password": "xxxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "dsrvnfm"
}
}
],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps": {
"primarySoamXmiIp": "10.75.218.91",
"secondarySoamXmiIp":"10.75.218.223",
"soamVip":"10.75.218.36",
"primaryUdrXmiIp":"10.75.218.180",
"secondaryUdrXmiIp":"10.75.218.205",
"udrVip":"10.75.218.121",
"dampXmiIps": ["10.75.218.242","10.75.218.194"],
"ipfeXmiIps": ["10.75.218.159","10.75.218.198"],
"stpXmiIps": ["10.75.218.241","10.75.218.128"],
"sbrXmiIps": ["10.75.218.147","10.75.218.209","10.75.218.105"]
}
}]
},
"imiNetwork": {
"name": "imi-int",
"subnet":[{
"name": "imi-int-sub",
"ipVersion": "IPv4",
"fixedIps": {
"primarySoamImiIp": "192.167.2.0",
"secondarySoamImiIp":"192.167.2.1",
"primaryUdrImiIp":"192.167.2.2",
"secondaryUdrImiIp":"192.167.2.3",
"dampImiIps": ["192.167.2.4","192.167.2.5"],
"ipfeImiIps": ["192.167.2.6","192.167.2.7"],
"stpImiIps": ["192.167.2.8","192.167.2.9"],
"sbrImiIps": ["192.167.2.10","192.167.2.11","192.167.2.12"]
}
}]
},
"sbrNetwork": {
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps": {
"sbrNetworkIps": ["10.75.218.231","10.75.218.236","10.75.218.244"]
}
}]
},
"xsiNetwork": [{
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps": {
"dampXsiIps": ["10.75.218.238","10.75.218.47"],
"ipfeXsiIps": ["10.75.218.239","10.75.218.93"],
"stpXsiIps": ["10.75.218.214","10.75.218.19"],
"primaryUdrXsiIps": ["10.75.218.228"],
"secondaryUdrXsiIps":["10.75.218.235"]
}
}]
},
{
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps": {
"dampXsiIps": ["10.75.218.230","10.75.218.225"],
"ipfeXsiIps": ["10.75.218.49","10.75.218.245"],
"stpXsiIps": ["10.75.218.170","10.75.218.224"],
"primaryUdrXsiIps": ["10.75.218.233"],
"secondaryUdrXsiIps":["10.75.218.227"]
}
}]
}
],
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-d8fc80a2",
"noamSgName": "dsrNetworkOam_NOAM_d8fc80a2_SG"
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"udrFlavor": "udr.noam",
"udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"udrAvailabilityZone": "nova",
"sbrFlavor": "dsr.sbr",
"sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"sbrAvailabilityZone": "nova",
"udrType": "vMNP",
"sbrAffinityPolicy":"affinity",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity",
"udrAffinityPolicy":"anti-affinity"
}}
Sample Response
Instantiating the signaling VNF with DIAMETER+STP+SBR+UDR response
202 Accepted
Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml
Sample Request
For signaling flavors with DIAMETER+STP+SBR+UDR with multiple xsi (2 XSI interface) with Custom Size for Dynamic IP deployment model.
URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{"flavourId": "DIAMETER+STP+SBR+UDR",
"instantiationLevelId": "custom",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [
{
"id": "id1",
"virtualLinkDescId": "active NOAM",
"resourceId": "790bf9f7-8834-4c3a-bd17-5544ef5e6848"
},
{
"id": "id2",
"virtualLinkDescId": "standby NOAM",
"resourceId": "1776d877-f643-45d6-b6da-bf1a540a01d1"
}
],
"vimConnectionInfo": [
{
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrvnfm",
"password": "xxxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "dsrvnfm"
}
}
],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4"
}]
},
"imiNetwork": {
"name": "imi-int",
"subnet":[{
"name": "imi-net-sub",
"ipVersion": "IPv4"
}]
},
"xsiNetwork": [
{
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4"
}]
},
{
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4"
}]
}
],
"sbrNetwork": {
"name": "ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4"
}]
},
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-d8fc80a2",
"noamSgName": "dsrNetworkOam_NOAM_d8fc80a2_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"daAvailabilityZone": "nova",
"udrFlavor": "udr.noam",
"udrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"udrAvailabilityZone": "nova",
"udrType": "vMNP",
"sbrFlavor": "dsr.sbr",
"sbrImage": "DSR-8.5.0.2.0.vmdk.vmdk",
"sbrAvailabilityZone": "nova",
"sbrAffinityPolicy":"affinity",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity",
"udrAffinityPolicy":"anti-affinity",
"numDa": "4",
"numIpfe": "2",
"numStp": "4",
"numSbr": "3",
"numUdr": "2"
}}
Sample Response
Instantiating the signaling VNF with DIAMETER+STP+SBR+UDR for Custom Size response
202 Accepted
Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml
The following table describes the rules and required values of DSR Signaling flavor:
Table 9-9 DSR Signaling Flavor Values
DSR Signaling Flavor | Rules | Values |
---|---|---|
DIAMETER | numDa and numIpfe are mandatory fields |
Minimum value of numDa to be passed should be 1 Minimum value of numIpfe to be passed should be 2 |
STP | numStp is a mandatory field | Minimum value of numStp to be passed should be 1 |
DIAMETER+STP | numDa and numStp are mandatory fields |
Minimum value of numDa to be passed should be 1 Minimum value of numStp to be passed should be 1 |
DIAMETER+SBR | numSbr is a mandatory field |
Minimum value of numSbr to be passed should be 3 |
DIAMETER+STP+SBR | numStp and numSbr are mandatory fields |
Minimum value of numStp to be passed should be 1 Minimum value of numSbr to be passed should be 3 |
DIAMETER+UDR | numUdr is a mandatory field | Minimum value of numUdr to be passed should be 2 |
STP+UDR | numUdr is a mandatory field | Minimum value of numUdr to be passed should be 2 |
DIAMETER+STP+SBR+UDR | All the fields are required | The minimum values to be passed are as follows:
|
- Damp can be maximum 32 and minimum 1.
- Stp can be maximum 32 and minimum 1.
- Ipfe can be maximum 4. It exists in pair and minimum is 2.
- Sbr can be maximum 9. It exists in multiple of 3 and minimum is 3.
- Udr can be maximum 4. It exists in pair and minimum is 2.
- Total C-level server count should not exceed 48.
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
- If the VNFM creates a VNF that is operational, but has no DIAMETER configuration data, then create the necessary configuration data (peers, connections, etc.) to perform DIAMETER routing.
- The flavor ID must be selected based on the VMs to be deployed and the instantiation level must be selected based on the number of VMs required.
- Only the IPs of the required VM must be provided
in the
fixedIp
parameter.For Example
"flavorId": "DIAMETER+STP", "instantiationLevelId": "small"
- This brings up 2 SOAM, 2 DAMP, 2 IPFE, 2 STP servers. - The user must provide
primarySoamXmiIp(1)
,secondarySoamXmiIp(1)
,soamVip(1)
,dampXmiIps(2)
,ipfeXmiIps(2)
,stpXmiIps(2)
,dampXsiIps(2)
,ipfeXsiIps(2)
,stpXsiIps(2)
- DA-MP proceeds for Cloud-init after SOAM installation is complete.
Detailed explanation of XMI, IMI and XSI Network
The detailed explanation of XMI and XSI Network for the additional parameters are provided below:
For XMI Network
"xmiNetwork":{
"name":"<NAME of the network of XMI IPS >",
"subnet": [{
"name": "<Name of the Subnet of XMI network>"
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamXmiIp":"<ACTIVE SOAM XMI IP>",
"secondarySoamXmiIp":"<STANDBY SOAM XMI IP>",
"soamVip":"<SOAM VIP>",
"dampXmiIps":[
"<DAMP 00 XMI IP>",
"<DAMP 01 XMI IP>"
],
"ipfeXmiIps":[
"<IPFE 00 XMI IP>",
"<IPFE 01 XMI IP>"
],
"stpXmiIps":[
"<STP 00 XMI IP>",
"<STP 01 XMI IP>"
]
}
}]
}
For IMI Network
"xmiNetwork":{
"name":"<NAME of the network of XMI IPS >",
"subnet":[{
"name": "<Name of the Subnet of XMI Network>",
"ipVersion":"IPv4",
"fixedIps":{
"primarySoamImiIp":"<ACTIVE SOAM IMI IP>",
"secondarySoamImiIp":"<STANDBY SOAM IMI IP>",
"dampImiIps":[
"<DAMP 00 IMI IP>",
"<DAMP 01 IMI IP>"
],
"ipfeImiIps":[
"<IPFE 00 IMI IP>",
"<IPFE 01 IMI IP>"
],
"stpImiIps":[
"<STP 00 IMI IP>",
"<STP 01 IMI IP>"
]
}
}]
}
For XSI Network
"xsiNetwork":[
{
"name":"<NAME of the network of XSI 1>",
"subnet": [{
"name": "<Name of the Subnet of XSI-1 network>",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"<DAMP00 XSI 1 IP>",
"<DAMP 01 XSI 1 IP>"
],
"ipfeXsiIps":[
"<IPFE00 XSI 1 IP>",
"<IPFE01 XSI 1 IP>"
],
"stpXsiIps":[
"<STP00 XSI 1 IP>",
"<STP01 XSI 1 IP>"
]
}
}]
},
{
"name":"<NAME of the network of XSI 2>",
"subnet": [{
"name": "<Name of the Subnet of XSI-2 network>",
"ipVersion":"IPv4",
"fixedIps":{
"dampXsiIps":[
"<DAMP00 XSI 2 IP>",
"<DAMP01 XSI 2 IP>"
],
"ipfeXsiIps":[
"<IPFE00 XSI 2 IP>",
"<IPFE01 XSI 2 IP>"
],
"stpXsiIps":[
"<STP00 XSI 2 IP>",
"<STP01 XSI 2 IP>"
]
}
}]
]]
The following describes the parameters used for sending request to VNFM.
Table 9-10 Parameters and Definitions for Signaling VNF with Multiple XSI
Parameters | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId
|
Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. |
resourceId
|
The identifier of the resource (active NOAM and then standBy NOAM) in the scope of the VIM or the resource provider |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
imiNetwork
|
Network used to provide access to the DSR entities (GUI, ssh), and for internal communication |
name
|
Network name, for example; ext-net |
ipVersion
|
IP version IPv4 or IPv6 |
xsiNetwork
|
Network that is used for DSR signaling traffic |
ntpServerIP
|
IP of the NTP server |
primaryNoamVmName
|
Name of primary NOAM VM on which the configured XML is loaded |
noamSgName
|
The server group of the NOAM VM |
primarySoamXmiIp
|
IP address of primary SOAM |
secondarySoamXmiIp
|
IP address of secondary SOAM |
soamVip
|
VIP of SOAM |
dampXmiIps
|
List of DAMP external management IPs (only if DAMPs are being instantiated) |
ipfeXmiIps
|
List of IPFE external management IPs (only if IPFEs are being instantiated) |
stpXmiIps
|
List of vSTP external management IPs (only if STPs are being instantiated) |
dampXsiIps
|
List of DAMP signaling IPs (only if DAMPs are being instantiated) |
ipfeXsiIps
|
List of IPFE signaling IPs (only if IPFEs are being instantiated) |
stpXsiIps
|
List of STP signaling IPs (only if STPs are being instantiated) |
primaryUdrXmiIp
|
IP address of primary UDR (only if UDRs are being instantiated) |
secondaryUdrXmiIp
|
IP address of secondary UDR (only if UDRs are being instantiated) |
udrVip
|
VIP address of UDR (only if UDRs are being instantiated) |
primaryUdrXsiIps
|
List of primary UDR signaling IPs (only if UDRs are being instantiated) |
secondaryUdrXsiIps
|
List of secondary UDR signaling IPs (only if UDRs are being instantiated) |
sbrXmiIps
|
List of SBR external management IPs (only if SBRs are being instantiated) |
sbrNetworkIps
|
List of SBR replication port IPs (only if SBRs are being instantiated) |
primarySoamImiIp
|
IP address of primary SOAM for IMI |
secondarySoamImiIp
|
IP address of secondary SOAM for IMI |
dampImiIps
|
List of DAMP internal management IPs (only if DAMPs are being instantiated) |
ipfeImiIps
|
List of IPFE internal management IPs (only if IPFEs are being instantiated) |
stpImiIps
|
List of vSTP internal management IPs (only if STPs are being instantiated) |
primaryUdrImiIp
|
IP address of primary UDR for IMI (only if UDRs are being instantiated) |
secondaryUdrImiIp
|
IP address of secondary UDR for IMI (only if UDRs are being instantiated) |
sbrImiIps
|
List of SBR internal management IPs (only if SBRs are being instantiated) |
soamFlavor (optional)
|
flavor used for OpenStack deploys |
soamImage (optional)
|
image used for OpenStack deploys |
soamAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
ipfeFlavor (optional)
|
flavor used for OpenStack deploys |
ipfeImage (optional)
|
image used for OpenStack deploys
If you are using the Multiqueue feature, you must follow the prerequisite for the IPFE image. |
ipfeAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
daFlavor (optional)
|
flavor used for OpenStack deploys |
daImage (optional)
|
image used for OpenStack deploys |
daAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
stpFlavor (optional)
|
flavor used for OpenStack deploys |
stpImage (optional)
|
image used for OpenStack deploys |
stpAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
sbrFlavor (optional)
|
flavor used for OpenStack deploys |
sbrImage (optional)
|
image used for OpenStack deploys |
sbrAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
udrFlavor (optional)
|
flavor used for OpenStack deploys |
udrImage (optional)
|
image used for OpenStack deploys |
udrAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
vipSubnetName (In case
of Dual Subnet)
|
name of VIP subnet to be used only in case of Dual Subnet |
soamAffinityPolicy (optional) |
openstack affinity policy for SOAM |
daAffinityPolicy (optional) |
openstack affinity policy for DAMP |
ipfeAffinityPolicy (optional) |
openstack affinity policy for IPFE |
sbrAffinityPolicy (optional) |
openstack affinity policy for SBR |
stpAffinityPolicy (optional) |
openstack affinity policy for STP |
udrAffinityPolicy (optional) |
openstack affinity policy for UDR |
udrType (optional) |
Type of UDR to be created |
tsa (optional) |
for configuring tsa |
optionSets (optional) |
for configuring optionSets of tsa |
numDa (Optional - Used only during "custom"
instantiation level id based on flavor) |
Number of Damp Server |
numIpfe (Optional - Used only during "custom"
instantiation level id based on flavor) |
Number of Ipfe Server |
numStp (Optional - Used only during "custom"
instantiation level id based on flavor) |
Number of Stp Server |
numUdr (Optional - Used only during "custom"
instantiation level id based on flavor) |
Number of Udr Server |
numSbr (Optional - Used only during "custom"
instantiation level id based on flavor) |
Number of Sbr Server |
Instantiating the Signaling VNF with Service MP deployment
VNFM deploys the Service MP along with vSTP-MP only. Service MP deployment is optional. vSTP-MP can be independently deployed without service MP.
To enable Service MP Deployment, update "serviceMp": "true" in the Signaling request. Default value is "false".
If Service MP is not included ("serviceMp": "false") while vSTP-MP instantiation, the Service MP can be scaled up from 0 to any number (till the maximum supported size) by scale using "scaleInfo (Arbitary Size)" operation.
Note:
VNFM does not support service MP feature for DIAMETER+STP+SBR and DIAMETER+STP+SBR+UDR flavors with "instantiationLevelId": "large".Sample Request for DIAMETER+STP for dynamic IP deployment model
This is a sample request for signaling flavors with Service MP - STP, DIAMETER+STP, DIAMETER+STP+SBR, DIAMETER+STP+SBR+UDR, STP+UDR with multiple xsi (1,2,4 xsi interface) for dynamic IP deployment model.
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId": "DIAMETER+STP",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
}]
},
"imiNetwork": {
"name": "imi-private",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
}]
},
"xsiNetwork": [{
"name": "ext-net2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiIPv6"
}]
},
{
"name": "xsiNetworkDual2",
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiNetworkDual2-IPv6"
}]
}],
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"serviceMp": "true",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.2.0.vmdk",
"stpAvailabilityZone": "nova",
"serviceMpFlavor": "dsr.ServiceMp",
"serviceMpImage": "DSR-8.5.0.2.0.vmdk",
"serviceMpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity"
}
}
Sample Request for DIAMETER+STP for FIxed IP deployment model.
Sample Request for signaling flavors without SBR. DIAMETER,STP and DIAMETER+STP, DIAMETER+UDR, STP+UDR) with multiple xsi (1,2,4 xsi interface) for FIxed IP deployment model.
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId":"DIAMETER+STP",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":"",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
},
{
"id":"id2",
"virtualLinkDescId":"",
"resourceId":"d6be6053-78a9-437a-a139-4dc11792598a"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://dpc1.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrvnfm",
"password":"xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant":"dsrvnfm"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"xmiNetwork":{
"name":"ext-net4",
"subnet":[{
"ipVersion": "IPv4",
"name": "ext-net-subnet",
"fixedIps":{
"primarySoamXmiIp":"10.75.218.141",
"secondarySoamXmiIp":"10.75.218.163",
"soamVip":"10.75.218.97",
"dampXmiIps":[
"10.75.218.38",
"10.75.218.137"
],
"ipfeXmiIps":[
"10.75.218.153",
"10.75.218.126"
],
"stpXmiIps":[
"10.75.218.67",
"10.75.218.84"
],
"serviceMpXmiIps":[
"10.75.218.69",
"10.75.218.85"
]
}
}]
},
"imiNetwork":{
"name":"imi-private",
"subnet":[{
"name": "imi-private-sub",
"ipVersion": "IPv4",
"fixedIps":{
"primarySoamImiIp":"192.167.2.9",
"secondarySoamImiIp":"192.167.2.10",
"dampImiIps":[
"192.167.2.11",
"192.167.2.12"
],
"ipfeImiIps":[
"192.167.2.13",
"192.167.2.14"
],
"stpImiIps":[
"192.167.2.15",
"192.167.2.16"
],
"serviceMpImiIps":[
"192.167.2.18",
"192.167.2.19"
]
}
}]
},
"xsiNetwork":[
{
"name":"ext-net4",
"subnet":[{
"name": "ext-net4-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.140",
"10.75.218.155"
],
"ipfeXsiIps":[
"10.75.218.101",
"10.75.218.22"
],
"stpXsiIps":[
"10.75.218.95",
"10.75.218.108"
]
}
}]
},
{
"name":"ext-net",
"subnet":[{
"name": "ext-net-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps":[
"10.75.218.140",
"10.75.218.155"
],
"ipfeXsiIps":[
"10.75.218.101",
"10.75.218.22"
],
"stpXsiIps":[
"10.75.218.95",
"10.75.218.108"
]
}
}]
}],
"ntpServerIp":"10.250.32.10",
"primaryNoamVmName":"NOAM00-",
"noamSgName":"dsrNetworkOam_NOAM__SG",
"serviceMp": "true",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.2.0.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSR-8.5.0.2.0.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.2.0.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.2.0.vmdk",
"stpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity",
"stpAffinityPolicy":"soft-anti-affinity"
}
}
Instantiating Multiple Signaling VNFs
To instantiate multiple Signaling VNFs, simply repeat the above procedures. You would need to create another DSR Signaling VNF instance, and you must deploy each Signaling VNF on a separate OpenStack instance.
Note:
For lab installations, a separate tenant on the same OpenStack instance is acceptable.Instantiating the APIGW VNF
To start APIGW deployment, it is required to instantiate an APIGW VNF. Before deploying the VNF, make sure the following information is available:
The VNF ID for a previously created APIGW VNF instance.
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
The name of a public network in the selected OpenStack instance that will carry APIGW traffic.
The name of a public network in the selected OpenStack instance that will carry signaling traffic.
Note:
This should be a different network than the one that carries APIGW trafficThe IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance, normally hosts an NTP server, and is often a good choice.
For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification. Swagger specifications can be found post VNFM installation at ( https://<VNFM IP>:8443/docs/vnfm/).
The following table contains the supported Instantiation levels to instantiate the VNF resource for DSR APIGW VNF.
Table 9-11 Supported Instantiation levels for DSR APIGW VNF
APIGW Flavors supported by VNFM | Small | Medium | Large | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ADMIN | APP | DB Management Node | DB Data Node | DB SQL NODE | ADMIN | APP | DB Management Node | DB Data Node | DB SQL NODE | ADMIN | APP | DB Management Node | DB Data Node | DB SQL NODE | |
APIGW | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 4 | 4 | 1 | 3 | 2 | 8 | 8 |
Sample Request for Dynamic IP Deployment
Resource URL:
https://<<VNFM HOST
IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
Instantiating
APIGW Request generated.
{
"flavourId": "APIGW",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo": [
{
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrat.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR AT Dev 2"
}
}
],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"ntpServerIp": "10.250.32.10",
"keyName": "apiGwKey",
"xmiNetwork": {
"name": "ext-net3",
"ipVersion": "IPv4",
"xmiSubnetName" : "ext-net3-subnet"
},
"imiNetwork": {
"name": "imi-net",
"ipVersion": "IPv4",
"imiSubnetName" : "imi-subnet"
},
"xsiNetwork": {
"name": "ext-net3",
"ipVersion": "IPv4",
"xsiSubnetName" : "ext-net3-subnet"
},
"externalLoadBalancer": "10.10.10.10",
"mtu":"9000",
"dsrMPList": "10.10.10.4:49152",
"appServersVolumeIds": ["320f3557-9a0a-4c13-9d19-d4f0f755b941"],
"apiGwAppFlavor": "dsrapigw.app",
"apiGwAdminFlavor": "dsrapigw.admin",
"dbManagementServerFlavor": "vnfm_ft1.db.managementNode",
"dbDataServerFlavor": "vnfm_ft1.db.dataNode",
"dbSqlServerFlavor": "vnfm_ft1.db.SqlNode",
"apiGwAppImage": "DSRAPIGW-8.5.0.2.0.vmdk",
"apiGwAdminImage": "DSRAPIGW-8.5.0.2.0.vmdk",
"dbManagementServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"dbDataServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"dbSqlServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"apigwAvailabilityZone": "nova"
}
}
Sample Response
Instantiating APIGW Request
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Sample Request For Fixed IP Deployment
Instantiating APIGW Request generated for Fixed IP
URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from create request>/instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId": "APIGW",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo": [
{
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrat.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR AT Dev 2"
}
}
],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"ntpServerIp": "10.250.32.10",
"keyName": "apiGwKey",
"xmiNetwork": {
"name": "ext-net3",
"ipVersion":"IPv4",
"xmiSubnetName" : "ext-net3-subnet",
"fixedIps":
{
"apiGwAdminXmiIp": "10.75.189.10",
"apiGwAppXmiIp": ["10.75.189.11"]
}
},
"imiNetwork": {
"name": "imi-net",
"ipVersion":"IPv4",
"imiSubnetName" : "imi-subnet",
"fixedIps":
{
"apiGwAdminImiIp": "192.167.2.1",
"apiGwAppImiIp": ["192.167.2.2"]
}
},
"xsiNetwork": {
"name": "ext-net3",
"ipVersion":"IPv4",
"xsiSubnetName" : "ext-net3-subnet",
"fixedIps":
{
"apiGwAppXsiIp": ["198.162.1.1"],
"apiGwDbManagementXsiIp": ["198.162.1.2", "198.168.1.3"],
"apiGwDbDataXsiIp": ["198.162.1.5", "198.168.1.4"],
"apiGwDbSqlXsiIp": ["198.168.1.6", "198.168.1.7"]
}
},
"externalLoadBalancer": "10.10.10.10",
"mtu":"9000",
"dsrMPList": "10.10.10.4:49152",
"appServersVolumeIds": ["320f3557-9a0a-4c13-9d19-d4f0f755b941"],
"apiGwAppFlavor": "dsrapigw.app",
"apiGwAdminFlavor": "dsrapigw.admin",
"dbManagementServerFlavor": "vnfm_ft1.db.managementNode",
"dbDataServerFlavor": "vnfm_ft1.db.dataNode",
"dbSqlServerFlavor": "vnfm_ft1.db.SqlNode",
"apiGwAppImage": "DSRAPIGW-8.5.0.2.0.vmdk",
"apiGwAdminImage": "DSRAPIGW-8.5.0.2.0.vmdk",
"dbManagementServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"dbDataServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"dbSqlServerImage": "mysql-ndbcluster-7_6_8.qcow2",
"apigwAvailabilityZone": "nova"
}
Sample Response
Instantiating APIGW Request
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 201
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
- The supported flavor is APIGW.
- The keyName is the name of the key that generates public & private key in openstack dynamically while creating stack and this key is used to communicate over admin to app server & DB server.
- One push script executes and enables the OCSG. After successful execution of one push script, the Admin portal and the App portals GUI comes up.
- APIGW is configured automatically and it does not require manual intervention.
- APIGW is created only with VMs and Cloud-init configurations must be done manually.
The following table describes the parameters used for sending request to VNFM.
Table 9-12 Parameters and Definitions for APIGW VNF
Parameters | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId
|
Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication. |
imiNetwork
|
Network used for internal communication of DSR entities. |
xsiNetwork
|
Network used for DSR signaling traffic |
ntpServerIp
|
IP of the NTP server |
keyName
|
Name of key-pair to be generated |
externalLoadBalancer
|
The external load balancer IP where the API is exposed on |
mtu
|
Maximum transfer Unit to do scp file. For different cloud values will be different. (Ex: For oort and mvl-dev1 mtu value will be 9000 and for dpc1 it will be 1500.) |
dsrMPList
|
List of DSR MPs |
appServersVolumeIds
|
A JSON Array containing the volume IDs of the volumes created by the user that is mounted to the individual App Servers. The size/length of this array should be equal to the number of App Servers, which in turn depends on the flavor chosen by the user. |
apiGwAdminFlavor (optional)
|
flavor used for openstack deploys |
apiGwAppFlavor (optional)
|
flavor used for openstack deploys |
dbManagementServerFlavor (optional)
|
flavor used for openstack deploys |
dbDataServerFlavor (optional) |
flavor used for openstack deploys |
dbSqlServerFlavor (optional) |
flavor used for openstack deploys |
apiGwAdminImage (optional)
|
image used for openstack deploys |
apiGwAppImage (optional)
|
image used for openstack deploys |
dbManagementServerImage (optional)
|
image used for openstack deploys |
dbDataServerImage (optional) |
image used for openstack deploys |
dbSqlServerImage (optional) |
image used for openstack deploys |
apigwAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
Instantiating the IDIH VNF
To start IDIH deployment, it is required to instantiate a signaling VNF. Before deploying the VNF, make sure the following information is available:
The VNF ID for a previously created IDIH VNF instance.
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
The name of a public network in the selected OpenStack instance that will carry the IDIH traffic.
The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
The network ID of the private network in the selected OpenStack instance that will carry OAM traffic. A signaling stack must be brought up first and then the ID of the internal network generated from this stack must be used for instantiating IDIH.
The name of the internal private network in the selected OpenStack instance that will allow communication between Application, Mediation, and Database servers.
For more information about the full list of all inputs and possible outputs of the instantiate VNF command, see ETSI NFV-SOL 003, section 5.4.4.3.1, or the DSR VNFM Swagger specification.
Swagger specifications can be found post VNFM installation at
(https://<VNFM IP>:8443/docs/vnfm/
).
Determining the Signaling IMI Resource ID:
- 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.
The following table informs about the supported Instantiation levels to Instantiate VNF resource for IDIH VNF:
Table 9-13 Supported Instantiation levels for IDIH VNF
IDIH Flavors supported by VNFM | APP (Small) | MEDIATION (Small) | DB (Small) |
---|---|---|---|
IDIH | 1 | 1 | 1 |
Sample Request
Instantiating IDIH Request for dynamic IP deployment
Resource URL:
https://<<VNFM HOST
IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId":"IDIH",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":" Network ID of the network used for intra-site communication(imi) with Signalling VNF",
"resourceId":"aae72b3d-d189-4464-a217-58bb0320065b"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrat.user",
"password":"xxxx",
"userDomain":"Default",
"projectDomain": "default",
"tenant":"DSRAT_Feature_Test4"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"ntpServerIp":"10.250.32.10",
"xmiNetwork":{
"name":"ext-net3",
"ipVersion":"IPv4",
"xmiSubnetName" : "ext-net3-subnet"
},
"idihIntNetwork":{
"idihIntPrivateNetwork":"test",
"idihIntPrivateSubnet":"test-sub",
}
"idihAppFlavor": "appl-idih",
"idihMedFlavor": "med-idih",
"idihDbFlavor": "db-idih",
"idihAppImage": "apps-8.2.2.0.0_82.30.0.vmdk",
"idihMedImage": "mediation-8.2.2.0.0_82.30.0.vmdk",
"idihDbImage": "oracle-8.2.2.0.0_82.30.0.vmdk",
"idihAvailabilityZone": "nova"
}
}
Instantiating IDIH Request for fixed IP deployment
{
"flavourId":"IDIH",
"instantiationLevelId":"small",
"extVirtualLinks":"extVirtualLinks",
"extManagedVirtualLinks":[
{
"id":"id1",
"virtualLinkDescId":" Network ID of the network used for intra-site communication(imi) with Signalling VNF",
"resourceId":"aae72b3d-d189-4464-a217-58bb0320065b"
}
],
"vimConnectionInfo":[
{
"id":"vimid",
"vimType":"OpenStack",
"interfaceInfo":{
"controllerUri":"https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo":{
"username":"dsrat.user",
"password":"xxxx",
"userDomain":"Default",
"projectDomain": "default",
"tenant":"DSRAT_Feature_Test4"
}
}
],
"localizationLanguage":"localizationLanguage",
"additionalParams":{
"ntpServerIp":"10.250.32.10",
"xmiNetwork":{
"name":"ext-net3",
"ipVersion":"IPv4",
"xmiSubnetName" : "ext-net3-subnet",
"fixedIps":{
"idihDbXmiIp":"10.75.218.30",
"idihMedXmiIp":"10.75.218.19",
"idihAppXmiIp":"10.75.218.49"
}
},
"idihIntNetwork":{
"idihIntPrivateNetwork":"test",
"idihIntPrivateSubnet":"test-sub",
}
"idihAppFlavor": "appl-idih",
"idihMedFlavor": "med-idih",
"idihDbFlavor": "db-idih",
"idihAppImage": "apps-8.2.2.0.0_82.30.0.vmdk",
"idihMedImage": "mediation-8.2.2.0.0_82.30.0.vmdk",
"idihDbImage": "oracle-8.2.2.0.0_82.30.0.vmdk",
"idihAvailabilityZone": "nova"
}
}
Sample Response
Instantiating IDIH Request
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
The 202 response means the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
The supported flavor is IDIH.
The following table describes the parameters used for sending request to VNFM.
Table 9-14 Parameters and Definitions for IDIH VNF
Parameters | Definitions |
---|---|
flavourId | Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId | Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. |
resourceId | The Identifier of the Private network (imi) of the Signaling VNF |
xmiNetwork | Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
IdihIntNetwork | Private network for communication between application, mediation and database servers |
ntpServerIp | IP of the NTP server |
idihDbXmiIp | Fixed IP address of IDIH database server |
idihMedXmiIp | Fixed IP address of IDIH mediation server |
idihAppXmiIp | Fixed IP address of IDIH application server |
idihAppImage (optional) | image used for openstack deploys |
idihMedimage (optional) | image used for openstack deploys |
idihDbImage (optional) | image used for openstack deploys |
idihAppFlavor (optional) | flavor used for openstack deploys |
idihMedFlavor (optional) | flavor used for openstack deploys |
idihDbFlavor (optional) | flavor used for openstack deploys |
idihAvailabilityZone (optional) | name of logical partitioning in case of host aggregate |
Instantiating the SDS Network OAM VNF
- 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
- Tenant name
- The name of a public network in the selected OpenStack instance that will carry the OAM traffic.
- The IP of an NTP server
accessible by VMs within the selected OpenStack instance. The OpenStack
controller that controls the selected OpenStack instance normally hosts an NTP
server, and is often a good choice.
- Supported for IPv6
networks - ipVersion should be "IPv6" in the request Body. The GUI can be
accessed by the following URL:
https://[<SDS-NOAM-vIP>
]For example:
https://[fd0d:deba:d97c:2c:6e41:6aff:fec7:80bf]
- 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 . Swagger specifications can be found post VNFM
installation at (https://<VNFM
IP>:8443/docs/vnfm/
).
- 31226 - HA Availability Status Degraded (Major Alarm)
- 10012 - Table change responder failed (Major Alarm)
- 14101 - No Remote Connections (Major Alarm)
- 10073 - Server Group Max Allowed HA Role Warning (Minor Alarm)
Sample Request: Sample Request for DYNAMIC IP deployment model
Resource URL:
https://<<VNFM HOST
IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "SDS NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext6-net3-subnet",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet"
}]
},
"imiNetwork": {
"name": "imi-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"imi6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "imi-net3-subnet"
}]
},
"ntpServerIp": "10.250.32.10",
"sdsNoamFlavor": "sds.noam",
"sdsQsFlavor": "sds.noam",
"sdsNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsNoamAvailabilityZone": "nova",
"sdsQsAvailabilityZone": "nova",
"sdsNoamAffinityPolicy":"anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.
Sample Request for Fixed IP deployment model
{
"flavourId": "SDS NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net8",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet",
"fixedIps":{
"primarySdsNoamIp": "2606:b400:605:b813::14",
"secondarySdsNoamIp": "2606:b400:605:b813::13",
"sdsQsIp": "2606:b400:605:b813::12",
"sdsNoamVip": "2606:b400:605:b813::11"
}
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet",
"fixedIps": {
"primarySdsNoamIp": "10.75.218.50",
"secondarySdsNoamIp": "10.75.218.49",
"sdsQsIp": "10.75.218.134"
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet":[{
"ipVersion": "IPv6",
"name":"imi6-net-subnet",
"fixedIps": {
"primarySdsNoamImiIp": "2606:b400:605:b813:12",
"secondarySdsNoamImiIp": "2606:b400:605:b813::1",
"sdsQsImiIp": "2606:b400:605:b813::14"
}
},
{
"ipVersion": "IPv4",
"name":"imi-net-subnet",
"fixedIps": {
"primarySdsNoamImiIp": "192.167.2.5",
"secondarySdsNoamImiIp": "192.167.2.4",
"sdsQsImiIp": "192.167.2.3"
}
}]
},
"ntpServerIp": "10.250.32.10",
"sdsNoamFlavor": "sds.noam",
"sdsQsFlavor": "sds.noam",
"sdsNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsNoamAvailabilityZone": "nova",
"sdsQsAvailabilityZone": "nova",
"sdsNoamAffinityPolicy":"anti-affinity"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the SDS GUI to determine when the VNF is operational.
- After SDS NOAM VNF deployment, standby SDS NOAM is automatically changed to "Force StandBy", purposely to avoid any switchover while SDS Signaling VNF is deployed. Once SDS Signaling site is deployed and no more Life Cycle Management operations are planned, make "Force Standby" NOAM as "Active" by changing the "Max Allowed HA Role" to "Active" on "Status & Manage -> HA from Active SDS NOAM GUI.
- The supported SDS NOAM Flavor is SDS NOAM.
- The supported SDS NOAM Flavor instantiation level id is HA that creates 2 SDS NOAMs and 1 Query Server.
The following table describes the parameters used for sending request to VNFM:
Table 9-15 Parameters and Definitions for SDS Network OAM VNF
Parameter | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
imiNetwork
|
Network used for internal communication of DSR entities |
ntpServerIp
|
IP of the NTP server |
fixedIps
|
Json object in network to provide IP address |
primarySdsNoamIp
|
IP address for primary SDS NOAM IP |
secondarySdsNoamIp
|
IP address for secondary SDS NOAM IP |
sdsQsIp
|
IP address for SDS Query Server VIP |
sdsNoamVip
|
IP address for SDS NOAM VIP |
primarySdsNoamImiIp
|
IP address for primary SDS NOAM IP of IMI |
secondarySdsNoamImiIp
|
IP address for secondary SDS NOAM IP of IMI |
sdsQsImiIp
|
IP address for SDS Query Server IP of IMI |
sdsNoamFlavor (optional)
|
flavor used for OpenStack deploys |
sdsQsFlavor (optional)
|
flavor used for OpenStack deploys |
sdsNoamImage (optional)
|
image used for OpenStack deploys |
sdsQsImage (optional)
|
image used for OpenStack deploys |
sdsNoamAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
sdsQsAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
sdsNoamAffinityPolicy (optional) |
openstack affinity policy for SDS NOAM |
Target set Address Configuration
Target set Address (TSA) is used for load balancing the traffic, so that IPFE routes all the incoming traffic and in return traffic is directly routed through gateway instead of IPFE.
For configuring TSA, configure the following on active Soam(Soam Vip):
- IPFE optionSets
- IPFE target Sets
Note:
Use DSR-8.4.0.6.0-89.1.1 or later version to enable this feature.IPFE Option Sets Configuration
These are the parameters for configuring OptionSets: IpfeA1IpAddress, IpfeA2IpAddress, IpfeB1IpAddress, and IpfeB2IpAddress. These options accept the IMI IP address of IPFE servers. These are logical names that facilitates binding with IPFE servers.
The OptionSets parameter in the request body is not mandatory. So, by default, VNFM configures OptionSets in the following ways:
- For Single subnet IMI network and single pair of IPFE Servers (2 IPFE
servers):
- IpfeA1IpAddress will bind to ipfe00
- IpfeA2IpAddress will bind to ipfe01
- IpfeB1IpAddress and IpfeB2IpAddress will not be configured
- For Single subnet IMI network and two pairs of IPFE Servers (4 IPFE servers):
- IpfeA1IpAddress will bind to ipfe00
- IpfeA2IpAddress will bind to ipfe01
- IpfeB1IpAddress will bind to ipfe02
- IpfeB2IpAddress will bind to ipfe03
- For Dual subnet IMI network and single pair of IPFE Servers(2 IPFE servers):
- IpfeA1IpAddress will bind to ipfe00 (IPv4 address)
- IpfeA2IpAddress will bind to ipfe01 (IPv4 address)
- IpfeB1IpAddress will bind to ipfe00 (IPv6 address)
- IpfeB2IpAddress will bind to ipfe01 (IPv6 address)
- For Dual subnet IMI network and two pairs of IPFE Servers(4 IPFE servers):
- IpfeA1IpAddress will bind to ipfe00 (IPv4 address)
- IpfeA2IpAddress will bind to ipfe01 (IPv4 address)
- IpfeB1IpAddress will bind to ipfe00 (IPv4 address)
- IpfeB2IpAddress will bind to ipfe01 (IPv4 address)
To change the default configurations, send OptionSets in request body and configurations are done accordingly.
IPFE Target Sets Configuration
Target sets can be configured for a particular XSI network. So, send the TSA parameter in xsi network. Multiple TSAs can be configured for single xsi network. TSA configuration has following parameters:
- dampName (optional in tsa): By default, VNFM adds all DAMPs to all TSAs. However, if only specific DAMPs need to be configured, then it can be passed in this parameter.
- fixedIp (optional in tsa): By default, VNFM creates port with dynamic IP based on xsi Network. If fixed IP needs to be configured, then it can be passed in this parameter.
- preferedActiveIPFE (mandatory in tsa): It is based on OptionSets configurations. If
IpfeA1IpAddress is configured, then use ipfeA1. Use the following:
- For IpfeA2IpAddress use ipfeA2
- For IpfeB1IpAddress use ipfeB1
- For IpfeB2IpAddress use ipfeB2
- preferedStandByIPFE (mandatory in tsa): Similar to preferedActiveIPFE.
If xsi network is on single subnet, then port for TSA is created only for single IP address. TSA configuration is done only for single IP.
If xsi network is on dual subnet, then port for TSA is created with two IP addresses. Both the IP addresses are configured in TSA.
Note:
- TSA configuration is supported for different combination of DIAMETER flavor.
- If instantiation of stack has TSA configuration and if scaling operation is done on the same stack, then scaled DAMPs will be added to all the available TSAs.
- If scaling is performed after discovery operations, then scaled DAMP will not be added to the TSA. This is because discovery operation will not have information about TSA.
Sample Request for Signaling Flavor DIAMETER
Sample request for signaling flavor DIAMETER with TSA configurations with multiple xsi (1, 2, or 4 xsi interface) for dynamic IP (Dual Subnet) deployment model.
Instantiating the first signaling VNF request generated
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId": "DIAMETER",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active NOAM",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daec3"
},
{
"id": "",
"virtualLinkDescId": "standby NOAM",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext-net-ipv6-subnet",
"subnet": [{
"ipVersion": "IPv6",
"name": "ext-net-ipv6-subnet"
},
{
"ipVersion": "IPv4",
"name": "ext-net-ipv4-subnet"
}
]
},
"imiNetwork": {
"name": "imi-private",
"subnet": [{
"ipVersion": "IPv6",
"name": "test6"
},
{
"ipVersion": "IPv4",
"name": "test4"
}
]
},
"xsiNetwork": [{
"name": "ext-net2",
"tsa": [
{
"dampName": ["damp00","damp01"],
"preferedActiveIPFE": "IpfeA1",
"preferedStandByIPFE": "IpfeA2",
"fixedIp": ["", ""]
},
{
"dampName": ["damp00","damp01"],
"preferedActiveIPFE": "IpfeA1",
"preferedStandByIPFE": "IpfeA2",
"fixedIp": ["", ""]
}],
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiIPv6"
},
{
"ipVersion": "IPv4",
"name": "xsiIPv4"
}
]
},
{
"name": "xsiNetworkDual2",
"tsa": [
{
"dampName": ["damp00","damp01"],
"preferedActiveIPFE": "IpfeA1",
"preferedStandByIPFE": "IpfeA2",
"fixedIp": ["", ""]
},
{
"dampName": ["damp00","damp01"],
"preferedActiveIPFE": "IpfeA1",
"preferedStandByIPFE": "IpfeA2",
"fixedIp": ["", ""]
}],
"subnet": [{
"ipVersion": "IPv6",
"name": "xsiNetworkDual2-IPv6"
},
{
"ipVersion": "IPv4",
"name": "xsiNetworkDual2-IPv4"
}
]
}],
"OptionSets":{
"ipfeA1IpAddress": ["ipfe00","IPv6"],
"ipfeA2IpAddress": ["ipfe01", "IPv6"],
"ipfeB1IpAddress": ["ipfe02", "IPv6"],
"ipfeB2IpAddress": ["ipfe03", "IPv6"]
},
"ntpServerIp": "10.250.32.10",
"primaryNoamVmName": "NOAM00-32cd6138",
"noamSgName": "dsrNetworkOam_NOAM_32cd6138_SG",
"soamFlavor": "dsr.soam",
"soamImage": "DSR-8.5.0.1.0_91.5.0.vmdk",
"soamAvailabilityZone": "nova",
"ipfeFlavor": "dsr.ipfe",
"ipfeImage": "DSRIPFE-8.5.0.1.0_91.5.0.vmdk",
"ipfeAvailabilityZone": "nova",
"daFlavor": "dsr.da",
"daImage": "DSR-8.5.0.3.0_85.17.0.vmdk",
"daAvailabilityZone": "nova",
"stpFlavor": "dsr.stp",
"stpImage": "DSR-8.5.0.3.0_85.17.0.vmdk",
"stpAvailabilityZone": "nova",
"soamAffinityPolicy":"anti-affinity",
"ipfeAffinityPolicy":"anti-affinity",
"daAffinityPolicy":"soft-anti-affinity"
}
}
Instantiating the signaling VNF with TSA configuration with DIAMETER response
202 Accepted
Headers:
location: https:// <<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-f00678f4-ea8e-417f-9c5a-e126926db402
date: Wed, 13 Feb 2019 09:55:01 GMT
content-length: 0
content-type: application/xml
Instantiating the SDS DR Network OAM VNF
SDS DRNOAM is the Disaster Recovery SDS NOAM site. In case both the Active and Standby SDS NOAM of Primary site fails, then the operator can make SDS DRNOAM as the Primary Site and can continue the operations without any disturbance.
When a setup is configured with a SDS DR NOAM then the first SDS NOAM SG is treated as the Primary NOAM Site and the second SDS NOAM SG is treated as Secondary NOAM site.
- 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
- Tenant name
- The name of a public network in the selected OpenStack instance that will carry the OAM traffic.
- OpenStack resource IDs for the XMI IPs from both SDS NOAM VMs.
Note:
The resource IDs can be obtain by examining the SDS Network OAM stack to which the identified SDS DR NOAM VNF is attached.- Name of Active Primary SDS NOAM VM.
- The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
- DSR DR NOAM supports Dual Subnet for XMI and IMI interfaces.
Determining the SDS DR NOAM XMI Resource IDs
- 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/v1/vnf_instances/<VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "SDS DR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "id1",
"virtualLinkDescId": "active SDS NOAM XMI",
"resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
},
{
"id": "id2",
"virtualLinkDescId": "standy SDS NOAM XMI",
"resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"vipSubnetName": "ext6-net3-subnet",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet"
}]
},
"imiNetwork": {
"name": "imi-net3",
"subnet":[{
"ipVersion": "IPv6",
"name" : "imi6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "imi-net3-subnet"
}]
},
"ntpServerIp": "10.250.32.10",
"primarySdsNoamVmName": "SDS-NOAM00-ea47f4b1",
"sdsDrNoamFlavor": "sds.noam",
"sdsDrQsFlavor": "sds.noam",
"sdsDrNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsDrQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsDrNoamAvailabilityZone": "nova",
"sdsDrQsAvailabilityZone": "nova",
"sdsDrNoamAffinityPolicy":"anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.Instantiating SDS DR NOAM Request for Fixed IP deployment model
{
"flavourId": "SDS DR NOAM",
"instantiationLevelId": "HA",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "id1",
"virtualLinkDescId": "active SDS NOAM XMI",
"resourceId": "156d73cf-6e44-456b-a661-14bd0cc2b43c"
},
{
"id": "id2",
"virtualLinkDescId": "standy SDS NOAM XMI",
"resourceId": "5c638770-5585-44c7-97c7-b4a52a26e5ec"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet",
"fixedIps":{
"sdsDrPrimaryNoamIp": "2606:b400:605:b813::14",
"sdsDrSecondaryNoamIp": "2606:b400:605:b813::13",
"sdsDrQueryServerIp": "2606:b400:605:b813::12",
"sdsDrNoamVip": "2606:b400:605:b813::11"
}
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet",
"fixedIps": {
"sdsDrPrimaryNoamIp": "10.75.218.50",
"sdsDrSecondaryNoamIp": "10.75.218.49",
"sdsDrQueryServerIp": "10.75.218.134"
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet",
"fixedIps":{
"sdsDrPrimaryNoamImiIp": "2606:b400:605:b813::14",
"sdsDrSecondaryNoamImiIp": "2606:b400:605:b813::13",
"sdsDrQueryServerImiIp": "2606:b400:605:b813::12"
}
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet",
"fixedIps": {
"sdsDrPrimaryNoamImiIp": "10.75.218.50",
"sdsDrSecondaryNoamImiIp": "10.75.218.49",
"sdsDrQueryServerImiIp": "10.75.218.134"
}
}]
},
"ntpServerIp": "10.250.32.10",
"primarySdsNoamVmName": "SDS-NOAM00-ea47f4b1",
"sdsDrNoamFlavor": "sds.noam",
"sdsDrQsFlavor": "sds.noam",
"sdsDrNoamImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsDrQsImage": "SDS-8.4.0.3.0_85.17.0.vmdk",
"sdsDrNoamAvailabilityZone": "nova",
"sdsDrQsAvailabilityZone": "nova",
"sdsDrNoamAffinityPolicy":"anti-affinity"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 21 Feb 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The 202 response means that the request was accepted for processing. The VNF might take up to 15 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.
- The supported SDS DR NOAM Flavor is SDS DR NOAM.
- The supported SDS DR NOAM Flavor instantiation level id is HA, which creates 2 SDS NOAMs and 1 Query Server.
- Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body.
Table 9-16 Parameters and Definitions SDS DR Network OAM VNF
Parameter | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId
|
Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level is HA. |
resourceId
|
The identifier of the resource (active and then standby SDS NOAM XMI) in the scope of the VIM or the resource provider. |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
imiNetwork
|
Network used for internal communication of DSR entities |
name
|
Network name, for example; ext-net |
ipVersion
|
IP version IPv4 or IPv6 |
ntpServerIp
|
IP of the NTP server |
primarySdsNoamVmName
|
Primary Active SDS NOAM VM name |
sdsDrPrimaryNoamIp
|
XMI IP of the Primary SDS DR NOAM |
sdsDrSecondaryNoamIp
|
XMI IP of the Secondary SDS DR NOAM |
sdsDrQueryServerIp
|
XMI IP of the SDS DR QUERY NOAM |
sdsDrNoamVip
|
VIP of the SDS DR NOAM |
sdsDrPrimaryNoamImiIp
|
IMI IP of the Primary SDS DR NOAM |
sdsDrSecondaryNoamImiIp
|
IMI IP of the Secondary SDS DR NOAM |
sdsDrQueryServerImiIp
|
IMI IP of the Primary SDS DR NOAM |
sdsDrNoamFlavor (optional)
|
flavor used for OpenStack deploys |
sdsDrNoamImage (optional)
|
image used for OpenStack deploys |
sdsDrQsFlavor (optional)
|
flavor used for OpenStack deploys |
sdsDrQsImage (optional)
|
image used for OpenStack deploys |
sdsDrNoamAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
sdsDrQsAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
sdsDrNoamAffinityPolicy
(optional) |
openstack affinity policy for SDS DR NOAM |
Instantiating the SDS Signaling VNF
- A previously instantiated SDS network OAM VNF.
- The VNF ID for a previously created SDS signaling VNF instance.
- Information about the
OpenStack instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
- The name of the xmi public network in the selected OpenStack instance that will carry traffic.
- The IP address of the NTP server accessible by VMs within the selected OpenStack instance.
- The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
- OpenStack resource IDs for
the IMI IP from DSR Signaling and XMI IPs from both NOAM VMs.
Note:
The resource IDs can be obtain by examining the SDS Network OAM stack and DSR Signaling stack to which the identified SDS signaling VNF would be attached. - Name of the Active NOAM VM.
Note:
To avoid switchover of Active NOAM, make the StandBy NOAM as "Forced Standby" by changing the "Max Allowed HA Role" to "Standby" on "Status & Manage -> HA from Active NOAM GUI. - Name of the NOAM SG
Note:
After SDS deployment, the Max Allowed HA Role of Query Server is expected to be Observer but it is Standby. Manually change the Max Allowed HA Role of Query Server from Standby to Observer as follows:Login to Active SDS Noam GUI and navigate to Status & Manage -->HA -->Edit->Change the role of Query Server to Observer, and click OK.
- Supported for IPv6 networks - ipVersion should be "IPv6" in the request Body.
- SDS Signaling supports Dual IP
The following image illustrates the VNF instantiation:
Figure 9-6 VNF Create Instance Request
The following table informs about the supported Instantiation levels to Instantiate VNF resource for SDS Signaling VNF:
Table 9-17 SDS Signaling Flavors supported by VNFM
Signaling Flavors supported by VNFM | Small | Medium | Large |
---|---|---|---|
DP Server | DP Server | DP Server | |
SDSSIGNALING | 2 | 6 | 10 |
Note:
- The number of DP-SOAM is 2 for any instantiation level.
- SDS Signaling supports "custom" instantiation level id.
Determining the Signaling IMI Resource IDs
- 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.
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/v1/vnf_instances/ < VNF ID received from create
request > /instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
Sample request for Dynamic IP deployment model
{
"flavourId": "sdssignaling",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active SDS NOAM XMI",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
},
{
"id": "",
"virtualLinkDescId": "standby SDS NOAM XMI",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"vipSubnetName": "ext6-net3-subnet",
"name": "ext-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet"
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet":[{
"ipVersion": "IPv6",
"name":"imi6-net-subnet"
},
{
"ipVersion":"IPv4",
"name" : "imi-net-subnet"
}]
},
"ntpServerIp": "10.250.32.10",
"primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
"sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
"dpSoamFlavor": "sds.noam",
"dpFlavor": "sds.dpsoam",
"dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpSoamAvailabilityZone": "nova",
"dpAvailabilityZone": "nova",
"dpSoamAffinityPolicy":"anti-affinity",
"dpAffinityPolicy":"anti-affinity"
}
}
Note:
The "vipSubnetName" field is used only in case of Dual Subnet.
Sample request for Fixed IP deployment model
{
"flavourId": "sdssignaling",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active SDS NOAM XMI",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
},
{
"id": "",
"virtualLinkDescId": "standby SDS NOAM XMI",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet",
"fixedIps":{
"primaryDpSoamXmiIp": "2606:b400:605:b813::11",
"dpSoamXmiIp": "2606:b400:605:b813::11",
"dpSoamVip": "2606:b400:605:b813::11",
"dpXmiIps": ["2606:b400:605:b813::11"]
}
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet",
"fixedIps":{
"primaryDpSoamXmiIp": "10.75.192.5",
"dpSoamXmiIp": "10.75.192.6",
"dpXmiIps": ["10.75.192.8"]
}
}]
},
"imiNetwork": {
"name": "imi-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"imi6-net3-subnet",
"fixedIps":{
"primaryDpSoamImiIp": "2606:b400:605:b813::11",
"dpSoamImiIp": "2606:b400:605:b813::11",
"dpImiIps": ["2606:b400:605:b813::11"]
}
},
{
"ipVersion":"IPv4",
"name" : "imi-net3-subnet",
"fixedIps":{
"primaryDpSoamImiIp": "192.167.2.1",
"dpSoamImiIp": "192.167.2.3",
"dpImiIps": ["192.167.2.5"]
}
}]
},
"ntpServerIp": "10.250.32.10",
"primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
"sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
"dpSoamFlavor": "sds.noam",
"dpFlavor": "sds.dpsoam",
"dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpSoamAvailabilityZone": "nova",
"dpAvailabilityZone": "nova",
"dpSoamAffinityPolicy":"anti-affinity",
"dpAffinityPolicy":"anti-affinity"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Sample Request for Dynamic IP deployment with Custom Size model
Instantiating the SDS signaling with Custom Size VNF request generated
URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/ < VNF ID received from create request > /instantiate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"flavourId": "sdssignaling",
"instantiationLevelId": "custom",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [{
"id": "",
"virtualLinkDescId": "active SDS NOAM XMI",
"resourceId": "2bed5886-8c97-4623-8da3-9c500cce71e3"
},
{
"id": "",
"virtualLinkDescId": "standby SDS NOAM XMI",
"resourceId": "8a4d1ec6-367a-4b1a-978d-2c4eae3daeg3"
}
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"vipSubnetName": "ext6-net3-subnet",
"name": "ext-net3",
"subnet":[{
"ipVersion": "IPv6",
"name":"ext6-net3-subnet"
},
{
"ipVersion":"IPv4",
"name" : "ext-net3-subnet"
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet":[{
"ipVersion": "IPv6",
"name":"imi6-net-subnet"
},
{
"ipVersion":"IPv4",
"name" : "imi-net-subnet"
}]
},
"ntpServerIp": "10.250.32.10",
"primarySdsNoamVmName": "SDS-NOAM00-32cd6138",
"sdsNoamSgName": "sdsNetworkOam_NOAM_32cd6138_SG",
"dpSoamFlavor": "sds.noam",
"dpFlavor": "sds.dpsoam",
"dpSoamImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpImage": "SDS-8.5.0.0.0_90.7.1.vmdk",
"dpSoamAvailabilityZone": "nova",
"dpAvailabilityZone": "nova",
"dpSoamAffinityPolicy":"anti-affinity",
"dpAffinityPolicy":"anti-affinity",
"numDp": "2"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
The following table describes the parameters used for sending request to VNFM:
Table 9-18 Parameters and Definitions for SDS Signaling VNF
Parameters | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
instantiationLevelId
|
Identifier of the instantiation level of the deployment flavor to be instantiated. If not present, the default instantiation level as declared in the VNFD is instantiated. |
resourceId
|
The identifier of the resource (imi Network ID of the signaling VNF, active, standby SDS NOAM XMI) in the scope of the VIM or the resource provider |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
imiNetwork
|
Network used to provide access to the DSR entities (GUI, ssh), and for internal communication |
name
|
Network name, for example; ext-net |
ipVersion
|
IP version IPv4 or IPv6 |
ntpServerIp
|
IP of the NTP server |
primarySdsNoamVmName
|
Name of primary SDS NOAM VM |
sdsNoamSgName
|
The server group of the SDS NOAM VM |
primaryDpSoamXmiIp
|
IP address for primary SDS DP SOAM IP |
dpSoamXmiIp
|
IP address for secondary SDS DP SOAM IP |
dpSoamVip
|
IP address for SDS SOAM VIP |
dpXmiIps
|
IP address for SDS DP IP |
primaryDpSoamImiIp
|
IP address for primary SDS DP SOAM IP of IMI |
dpSoamImiIp
|
IP address for secondary SDS DP SOAM IP of IMI |
dpImiIps
|
IP address for primary SDS DP IP of IMI |
dpSoamFlavor (optional)
|
flavor used for openstack deploys |
dpFlavor (optional)
|
flavor used for openstack deploys |
dpSoamImage (optional)
|
image used for openstack deploys |
dpImage (optional)
|
image used for openstack deploys |
dpSoamAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
dpAvailabilityZone (optional)
|
name of logical partitioning in case of host aggregate |
dpSoamAffinityPolicy (optional) |
openstack affinity policy for SDS |
SOAMdpAffinityPolicy (optional) |
openstack affinity policy for SDS DP |
numDp (Optional - Used only during "custom"
instantiation level id) |
Number of Dp Server. Minimum value is 1 and maximum is 10 |
Instantiating the ATS Master VNF
The ATS Master VNF supports dynamic and fixed IP deployment models.
- The VNF ID for a previously created ATS Master VNF instance.
- Information about the OpenStack
instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
- The name of a public network in the selected OpenStack instance that will carry the ATS master traffic.
- The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance hosts an NTP server.
For more information about the list of all the inputs and possible outputs of the
command instantiate VNF
,
refer to ETSI NFV-SOL 003, section
5.4.4.3.1, or the DSR VNFM Swagger specification.
Note:
It is mandatory to add two XSI Networks in ATS Master to instantiate a stack.Sample Request for instantiating ATS Master Dynamic IP deployment model
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create request>/instantiate
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login
{
"flavourId": "master",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net8",
"ipVersion": "IPv4",
"xmiSubnetName":"ext-net8-subnet"
},
"xsiNetwork": [{
"name": "ext-net7",
"ipVersion": "IPv4",
"xsiSubnetName":"ext-net7-subnet"
},
{
"name": "ext-net6",
"ipVersion": "IPv4",
"xsiSubnetName":"ext-net6-subnet"
}],
"ntpServerIp": "10.250.32.10",
"dnsServerIp": "10.250.32.10",
"atsKeyName": "atsKeypair",
"atsMasterFlavor": "ats.master",
"atsMasterImage": "ATS_BOX.qcow2",
"atsAvailabilityZone": "nova"
}
}
Instantiating ATS Master Request for Fixed IP deployment model
URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from create request>/instantiate
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login
{
"flavourId": "master",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}],
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net8",
"ipVersion": "IPv4",
"xmiSubnetName":"ext-net8-subnet",
"fixedIps": {
"masterXmiIp":"10.75.123.16"
}
},
"xsiNetwork": [{
"name": "ext-net7",
"ipVersion": "IPv4",
"xsiSubnetName":"ext-net7-subnet",
"fixedIps":
{
"xsiIp": "10.75.195.21"
}
},
{
"name": "ext-net6",
"ipVersion": "IPv4",
"xsiSubnetName":"ext-net6-subnet",
"fixedIps":
{
"xsiIp": "10.75.195.22"
}
}],
"ntpServerIp": "10.250.32.10",
"dnsServerIp": "10.250.32.10",
"atsKeyName": "atsKeypair",
"atsMasterFlavor": "ats.master",
"atsMasterImage": "ATS_BOX.qcow2",
"atsAvailabilityZone": "nova"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
The following table describes the parameters for ATS Master:
Parameter | Definitions |
---|---|
flavourId | Identifier of the VNF deployment flavor to be instantiated. |
xmiNetwork | Network used to provide access master VM communication. |
ntpServerIp | IP of the NTP server. |
dnsServerIp (optional) | IP of the DNS server. If not provided, NTP server IP will be considered as DNS server IP. |
atsKeyName | Key pair name for ATS. To log in to the ATS instance, use same key pair. |
masterXmiIp | In case of fixed IP scenario, the IP of master will be provided. |
xsiNetwork | Network used for DSR signaling traffic. |
atsMasterFlavor (optional) | Flavor used for OpenStack deploys. |
atsMasterImage (optional) | Image used for OpenStack deploys. |
atsAvailabilityZone (optional) | Name of logical partitioning in case of host aggregate. |
Note:
The atsKeyName pair is created dynamically through VNFM. The same public key is put into all the ATS instances (master, core & tools), and the private key is in the ATS master stack output. Use the same private key to log in to the ATS instance (master, core & tools) by executing the following command:ssh -i <ats private key> <username>@<ats master Ip>
Example: ssh -i atskey.pem
cloud-user@10.75.189.120
Instantiating the ProvGW VNF
The ProvGW VNF supports dynamic IP deployment model.
- The VNF ID for a previously created ProvGW VNF instance.
- Information about the
OpenStack instance on which the VNF must be deployed:
- OpenStack Controller URI
- User Domain Name
- Project Domain Id
- Username
- Password
- Tenant name
- The name of a ProvGW network in the selected OpenStack instance that carries the ProvGW traffic.
- After instantiating VNF ProvGw, a single VM ProvGateway_A is brought up.
- The IP of an NTP server accessible by VMs within the selected OpenStack instance. The OpenStack controller that controls the selected OpenStack instance normally hosts an NTP server, and is often a good choice.
For more information about the full list of all inputs and possible
outputs of the
instantiate VNF
command, see ETSI NFV-SOL
003 , section
5.4.4.3.1, or the
DSR VNFM Swagger specification. Swagger specifications can be
found post VNFM installation at (https://<VNFM
IP>:8443/docs/vnfm/
).
Sample Request: Sample Request for DYNAMIC IP deployment model
Resource URL:
https://<<VNFM HOST
IP>>:8443/vnfm/v1/vnf_instances/<VNF ID received from create
request>/instantiate
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"flavourId": "PROVGW",
"instantiationLevelId": "small",
"extVirtualLinks": "extVirtualLinks",
"extManagedVirtualLinks": [
],
"vimConnectionInfo":[ {
"id": "vimid",
"vimType": "OpenStack",
"interfaceInfo": {
"controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
},
"accessInfo": {
"username": "dsrci.user",
"password": "xxxxx",
"userDomain": "Default",
"projectDomain": "default",
"tenant": "DSR CI"
}
}]
,
"localizationLanguage": "localizationLanguage",
"additionalParams": {
"xmi_network" : "ext6-net",
"ntp": "2606:b400:605:b912:200:5eff:fe00:1f7",
"image": "UDR-PrvGwy-12.6.0.0.0_18.0.0-dev",
"no_flavor":"provGw"
}
}
Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
The following table describes the parameters used for sending request to VNFM:
Table 9-19 Parameters and Definitions for ProvGW VNF
Parameter | Definitions |
---|---|
flavourId
|
Identifier of the VNF deployment flavor to be instantiated |
xmiNetwork
|
Network that is used to provide access to the DSR entities (GUI, ssh), and for inter-site communication |
ntp
|
IP of the NTP server |
image (optional)
|
Name of image to be used for instantiation of the stack |
no_flavor (optional)
|
The Name of the flavor to be used for stack instantiation |
availability_zone (optional)
|
The name of the availability zone |
securityGroup (optional)
|
The name of the security group |
Non-ConfigDrive VNF Instantiation
By default config drive is enabled through VNFM.
While instantiating VNF through VNFM. It will use configuration drive feature of openstack to fetch the data from openstack.
ConfigDrive feature must be enabled from openstack and meta data must be disabled to use.
If any user does not want to use configDrive feature of openstack, then
while instantiating VNF through VNFM, the user must pass
"configDrive":
"false"
through request body.
"additionalParams": {
"ntpServerIp": "10.250.32.10",
"xmiNetwork": {
"name": "ext-net3",
"subnet": [{
"name": "ext-net3-subnet",
"ipVersion": "IPv4"
}]
},
"imiNetwork": {
"name": "imi-private",
"subnet": [{
"name": "imi-private-sub",
"ipVersion": "IPv4"
}]
},
"configDrive": "false"
}
Scale VNF to Level (Only Scale Out)
The N/B LCM scale_to_level Rest I/F helps in scaling existing VNF's.
Following are the available options while scaling using "scale to VNF level" N/B Interface:
- Scale VNF to Level based on pre-defined sizes (using
Instantiation level ID).
This option supports scaling of VNF from a lower instantiation level to higher, for example, Small to Medium.
- Scale VNF to Level with arbitrary sizes (using
scaleInfo).
This option supports scaling of VNF to arbitrary sizes based on ScaleInfo. Scale VNF To Level using arbitrary size means increasing the existing VNFC count within the maximum allowed VNFC count. Note that maximum allowed VNFC count is the count from the existing VNFs flavorId with 'large' InstantiationLevelId. This count can be referred from respective VNF instantiation section. If the number of VMs to be scaled are greater than the default 'large' instantiationLevelId configurations, then change the configuration as described in Configure Flavor and Instantiation Levels in VNFM. After that, trigger this REST request.
Note:
- This feature is only supported for Scaling out C-level servers of Signaling Stack and DSR APIGW.
- The stack must have been instantiated prior to performing scale to level operation.
- Before Scaling the VNF to level,
VnfInstance
ID of the stack must be available. - Scale to Level Request
accepts either
instantiationLevelId
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 9-7 VNF Scaling
Scale VNF to Level using InstantiationLevelId for DSR Signaling
Note:
SOAM Image version and scale Image (daScaleImage, ipfeScaleImage, stpScaleImage, sbrScaleImage, serviceMpScaleImage) must be the same on the same version.Sample Request
Scaling VNF to Level Request for Dynamic IP model
Resource URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_instances/<VNF ID
received from create/instantiate request>/scale_to_level
Accept: application/json
Content-Type:
application/json
{
"instantiationLevelId":"medium",
"additionalParams": {
"daScaleImage": "DSR-8.5.0.2.0..vdmk",
"ipfeScaleImage": "DSR-8.5.0.2.0..vdmk",
"stpScaleImage": "DSR-8.5.0.2.0..vdmk",
"sbrScaleImage": "DSR-8.5.0.2.0..vdmk",
"serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk"
}
}
Scaling VNF to Level Request for Fixed IP model
Resource URL: https://<<VNFM HOST
IP>>:8443/vnfm/v1/vnf_instances/< VNF ID received from create/instantiate
request>/scale_to_level
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>
{
"instantiationLevelId": "medium",
"additionalParams": {
"daScaleImage": "DSR-8.5.0.2.0..vdmk",
"ipfeScaleImage": "DSR-8.5.0.2.0..vdmk",
"stpScaleImage": "DSR-8.5.0.2.0..vdmk",
"serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk"
"sbrScaleImage": "DSR-8.5.0.2.0..vdmk",
"xmiNetwork": {
"name": "ext-net",
"subnet": [{
"name": "ext-net-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXmiIps": ["10.75.218.123","10.75.218.21"],
"ipfeXmiIps": ["10.75.218.3","10.75.218.2"],
"stpXmiIps": ["10.75.218.42","10.75.218.143"],
"sbrXmiIps": ["10.75.218.23","10.75.218.19"]
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"name": "imi-net-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampImiIps": ["192.167.2.1","192.167.2.2"],
"ipfeImiIps": ["192.167.2.4","192.167.2.3"],
"stpImiIps": ["192.167.2.5","192.167.2.6"],
"sbrImiIps": ["192.167.2.7","192.167.2.8"]
}
}]
},
"sbrNetwork":{
"name": "ext-net2",
"subnet": [{
"name": "ext-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"sbrNetworkIps": ["10.75.219.23","10.75.219.123"]
}
}]
},
"xsiNetwork": [{
"name": "ext4-net2",
"subnet":[{
"name": "ext4-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps": ["10.75.219.23","10.75.219.12"],
"ipfeXsiIps": ["10.75.219.1","10.75.219.112"],
"stpXsiIps": ["10.75.219.12","10.75.219.23"]
}
}]
}]
}
}
Note:
The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The instantiation level must be decided based on the number of VMs required.
- Only the IPs of the required VM are to be provided in the fixedIp parameter and they must be of the same network in that order as used during the instantiation process.
For Example:
"flavorId
": "DIAMETER+STP", "instantiationLevelId
": "medium
" ( scaling
from small to medium) - This brings up 2 new DAMPs(DAMP02,
DAMP03)
, 2 new STP(STP 02, STP 03)
servers.
The user needs to provide dampXmiIps(2)
,
stpXmiIps(2)
, dampXsiIps(2)
, stpXsiIps(2)
The detailed explanation of XMI and XSI Network for the additional parameters is provided below:
"xmiNetwork":{
"name": "<Name of XMI network>",
"subnet":[{
"name": "<Name of Subnet of XMI Network>",
"ipVersion": "",
"fixedIps":{
"dampXmiIps":[
"<DAMP 02 XMI IP>",
"<DAMP 03 XMI IP>"
],
"stpXmiIps":[
"<STP 02 XMI IP>",
"<STP 03 XMI IP>"
]
}
}]
}
For IMI Network
"imiNetwork":{
"name": "<Name of IMI Network>",
"subnet":[{
"name": "<Name of subnet of IMI Network>",
"ipVersion": "",
"fixedIps":{
"dampImiIps":[
"<DAMP 02 IMI IP>",
"<DAMP 03 IMI IP>"
],
"stpImiIps":[
"<STP 02 IMI IP>",
"<STP 03 IMI IP>"
]
}
}]
}
For XSI Network
"xsiNetwork":[
{
"name": "<Name of XSI-1 Network>"
"subnet"[{
"name": "<Name of Subnet of XSI-1 network>",
"ipVersion": "",
"fixedIps":{
"dampXsiIps":[
"<DAMP02 XSI 1 IP>",
"<DAMP03 XSI 1 IP>"
],
"stpXsiIps":[
"<STP02 XSI 1 IP>",
"<STP03 XSI 1 IP>"
]
}
}]
},
{
"name": "<Name of XSI-2 Network>",
"subnet": [{
"name": "<Name of subnet of XSI-2 Network>",
"ipVersion": "",
"fixedIps":{
"dampXsiIps":[
"<DAMP02 XSI 2 IP>",
"<DAMP03 XSI 2 IP>"
],
"stpXsiIps":[
"<STP02 XSI 2 IP>",
"<STP03 XSI 2 IP>"
]
}
}]
}
]
The following table describes the parameters used for sending request to VNFM:
Table 9-20 Scaling VNF to Level using InstantiationLevelId
Parameters | Definitions |
---|---|
instantiationLevelId | Identifier of the instantiation level of the deployment flavor to be scaled. |
dampXmiIps | List of DAMP external management IPs if new DAMP VMs are to be scaled. |
ipfeXmiIps | List of IPFE external management IPs if new IPFE VMs are to be scaled. |
stpXmiIps | List of vSTP external management IPs if new vSTP VMs are to be scaled. |
sbrXmiIps | List of SBR external management IPs if new SBR VMs are to be scaled. |
sbrNetworkIps | List of SBR replication port IPs if new SBR VMs are to be scaled. |
dampXsiIps | List of DAMP signaling IPs if new DAMP VMs are to be scaled. |
ipfeXsiIps | List of IPFE signaling IPs if new DAMP VMs are to be scaled. |
stpXsiIps | List of STP signaling IPs if new DAMP VMs are to be scaled. |
dampImiIps | List of DAMP internal management Ips if new DAMP VMs are to be scaled. |
ipfeImiIps | List of IPFE internal management IPs if new IPFE VMs are to be scaled. |
stpImiIps | List of vSTP internal management IPs if new vSTP VMs are to be scaled. |
sbrImiIps | List of SBR internal management Ips if new SBR VMs are to be scaled. |
subnet | List of subnet name and ipVersion used. It also contains fixed IPs if used. |
daScaleImage (Optional) | DAMP Image used during scaling. |
ipfeScaleImage (Optional) | IPFE Image used during scaling.
If you are using the Multiqueue feature, you must follow the Prerequisite for the IPFE image. |
stpScaleImage (Optional) | STP Image used during scaling. |
serviceMpScaleImage (Optional) | Service Mp Image used during Scaling. |
sbrScaleImage (Optional) | SBR Image used during scaling. |
Note:
During Scaling of SBRs, the newly spawned SBRs are not added to any Server Group. It needs to be added manually to the new Server Groups created by the user. One server group can have maximum two SBRs.Scale VNF to Level using InstantiationLevelId for DSR APIGW
This option supports scaling of VNF from a lower instantiation level to higher, for example, Small to Medium.
Sample Request for DYNAMIC IP model
Scale To Level Dynamic Deployment model
{
"instantiationLevelId":"medium",
"additionalParams":
{
"appServersVolumeIds": ["773c6f7a-0307-4c9e-8c78-ecbc8cb2b6c8"]
}
}
Sample Request for FIXED IP model
Scale VNF To Level Fixed IP Deployment
{
"instantiationLevelId":"medium",
"additionalParams": {
"xmiNetwork": {
"name": "ext-net5-dual",
"ipVersion": "IPv4",
"xmiSubnetName": "ext-net5-ipv4",
"fixedIps": {
"apiGwAppXmiIp": [
"10.75.234.5"
]
}
},
"imiNetwork": {
"name": "imi-private",
"ipVersion": "IPv4",
"imiSubnetName": "imi-private-sub",
"fixedIps": {
"apiGwAppImiIp": [
"192.167.2.30"
]
}
},
"xsiNetwork": {
"name": "ext-net2",
"ipVersion": "IPv4",
"xsiSubnetName": "ext-net2-subnet",
"fixedIps": {
"apiGwAppXsiIp": [
"10.196.28.10"
],
"apiGwDbDataXsiIp": [
"10.196.28.13",
"10.196.28.21"
],
"apiGwDbSqlXsiIp": [
"10.196.28.15",
"10.196.28.25",
"10.196.28.35",
"10.196.28.45",
"10.196.28.55",
"10.196.28.4"
]
}
},
"appServersVolumeIds": [
"ac09106f-60e4-4af7-9fe4-a4e569bb8042"
]
}
}
Note:
The 202 response indicates that the request has been accepted for processing. The VNF might get operational within 6 minutes. Use the DSR GUI to determine when the VNF is operational.Scale VNF To Level Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The instantiation level is chosen according to the number of VMs required.
- Only the IPs of the required VM are passed in the fixedIp parameter. These IPs must be of the same network in that order as used during the instantiation process.
- If new application servers are created as part of the scaling, the respective number of appServerVolumeIds must be passed.
For Example: "instantiationLevelId": "medium" ( scaling from small to medium) -> This installs one new APP(AGWAP01) , two new DB DATA(AGWDN02, AGWDN03), six new DB SQL (AGWSN02,AGWSN03,AGWSN04,AGWSN05,AGWSN06,AGWSN07,) servers. For more information, refer to Table 9-11.
The user must pass apiGwAppXmiIp(1), apiGwAppImiIp(1), apiGwAppXsiIp(1), apiGwDbDataXsiIp(2), apiGwDbSqlXsiIp(6), and appServersVolumeIds(1).
The following table describes the parameters used for sending request to VNFM:
Table 9-21 Scaling VNF to Level using InstantiationLevelId for DSR APIGW
Parameters | Definitions |
---|---|
instantiationLevelId | Identifies the instantiation level of the existing deployment flavor to be scaled. |
apiGwAppXmiIp | List of APIGW APP external management IPs if new API GW APP VMs are to be scaled. |
apiGwAppImiIp | List of APIGW APP internal management IPs if new API GW APP VMs are to be scaled. |
apiGwAppXsiIp | List of APIGW APP signaling IPs if new API GW APP VMs are to be scaled. |
apiGwDbDataXsiIp | List of API GW DB DATA signaling IPs if new APIGW DB DATA VMs are to be scaled. |
apiGwDbSqlXsiIp | List of API GW DB SQL signaling IPs if new APIGW DB SQL VMs are to be scaled. |
appServersVolumeIds | List of API GW APP Volume IDs if new API GW APP VMs are to be scaled. |
Scale VNF to Level using ScaleInfo (Arbitrary Size)
This option supports Scaling of VNF to arbitrary sizes based on ScaleInfo.
Scale VNF to Level using arbitrary size means increasing existing VNFC count within the max allowed VNFC count.
InstantiationLevelId
.
Note:
Max allowed VNFC count can be referred from Instantiating the first signaling VNF section.Sample Request:
Request URL:
https://<<VNFM HOST
IP>>:8443/vnflcm/v1/vnf_instances/< VNF ID received from
create/instantiate request>/scale_to_level
Accept:
application/json
Content-Type:
application/json
X-Token: Token
generated after login
{
"scaleInfo": [{
"aspectId": "DAMP",
"scaleLevel": "3"
}],
"additionalParams": {
"daScaleImage": "DSR-8.5.0.2.0.vmdk",
"ipfeScaleImage": "DSR-8.5.0.2.0.vmdk",
"stpScaleImage": "DSR-8.5.0.2.0.vmdk",
"serviceMpScaleImage": "DSR-8.5.0.2.0.vmdk",
"sbrScaleImage": "DSR-8.5.0.2.0.vmdk",
}
}
{
"scaleInfo": [
{
"aspectId": "DAMP",
"scaleLevel": "4"
},
{
"aspectId": "IPFE",
"scaleLevel": "4"
},
{
"aspectId": "STPMP",
"scaleLevel": "4"
},
{
"aspectId": "SBR",
"scaleLevel": "4"
}
],
"additionalParams": {
"daScaleImage": "DSR-8.5.0.2.0.vmdk",
"ipfeScaleImage": "DSR-8.5.0.2.0.vmdk",
"stpScaleImage": "DSR-8.5.0.0.0_90.0.1.vmdk",
"serviceMpScaleImag": "DSR-8.5.0.0.0_90.0.1.vmdk"
"sbrScaleImage": "DSR-8.5.0.0.0_90.0.1.vmdk",
"xmiNetwork": {
"name": "ext-net",
"subnet": [{
"name": "ext-net-subnet",
"ipVersion": "IPv4",
"fixedIps":{
"dampXmiIps": ["10.75.218.123","10.75.218.21"],
"ipfeXmiIps": ["10.75.218.3","10.75.218.2"],
"stpXmiIps": ["10.75.218.42","10.75.218.143"],
"sbrXmiIps": ["10.75.218.23","10.75.218.19"]
}
}]
},
"imiNetwork": {
"name": "imi-net",
"subnet": [{
"name": "imi-net-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampImiIps": ["192.167.2.1","192.167.2.2"],
"ipfeImiIps": ["192.167.2.4","192.167.2.3"],
"stpImiIps": ["192.167.2.5","192.167.2.6"],
"sbrImiIps": ["192.167.2.7","192.167.2.8"]
}
}]
},
"sbrNetwork":{
"name": "ext-net2",
"subnet": [{
"name": "ext-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"sbrNetworkIps": ["10.75.219.23","10.75.219.123"]
}
}]
},
"xsiNetwork": [{
"name": "ext4-net2",
"subnet":[{
"name": "ext4-net2-sub",
"ipVersion": "IPv4",
"fixedIps":{
"dampXsiIps": ["10.75.219.23","10.75.219.12"],
"ipfeXsiIps": ["10.75.219.1","10.75.219.112"],
"stpXsiIps": ["10.75.219.12","10.75.219.23"]
}
}]
}]
}
}
Note:
The 202 response means that the request was accepted for processing. The VNF might take up to 6 minutes to become fully operational. Use the DSR GUI to determine when the VNF is operational.Sample Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The aspect Id is decided based on the VM to be scaled, scale level is decided based on the number of VMs required.
-
Only the IPs of the required VM must be provided in the
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)
Detailed explanation of XMI, IMI and XSI Network
The detailed explanation of XMI , IMI and XSI Network for the additional parameters is provided below:
For XMI Network
"xmiNetwork":{
"name": "<Name of XMI network>",
"subnet": [{
"name": "<Name of Subnet of XMI networ>",
"ipVersion": "",
"fixedIps":{
"dampXmiIps":[
"<DAMP 02 XMI IP>",
"<DAMP 03 XMI IP>"
]
}
}]
}
For IMI Network
"imiNetwork":{
"name": "<Name of IMI network>",
"subnet": [{
"name": "<Name of subnet of IMI network>",
"ipVersion": "",
"fixedIps":{
"dampImiIps":[
"<DAMP 02 IMI IP>",
"<DAMP 03 IMI IP>"
]
}
}]
}
For XSI Network
"xsiNetwork":[
{
"name": "<Name of XSI-1 Network>",
"subnet":[{
"name": "<Name of subnet of XSI-1 Network>",
"ipVersion": "",
"fixedIps":{
"dampXsiIps":[
"<DAMP02 XSI 1 IP>",
"<DAMP03 XSI 1 IP>"
]
}
}]
},
{
"name": "<Name of XSI-2 Network>",
"subnet":[{
"name": "<Name of Subnet of XSI-2 Network>",
"ipVersion": "",
"fixedIps":{
"dampXsiIps":[
"<DAMP02 XSI 2 IP>",
"<DAMP03 XSI 2 IP>"
]
}
}]
}
]
The following table describes the parameters used for sending request to VNFM:
Table 9-22 Parameters and Definitions for Scaling VNF to Level using ScaleInfo
Parameters | Definitions |
---|---|
scaleInfo |
aspectId : VnfType scaleLevel : Target scale level to which the VNF is to be scaled |
dampXmiIps | List of DAMP external management ips (if new DAMP VMs are to be scaled) |
ipfeXmiIps | List of IPFE external management ips (if new IPFE VMs are to be scaled) |
stpXmiIps | List of vSTP external management ips (if new vSTP VMs are to be scaled) |
sbrXmiIps | List of SBR external management ips (if new SBR VMs are to be scaled) |
sbrNetworkIps | List of SBR replication port ips (if new SBR VMs are to be scaled) |
dampXsiIps | List of DAMP signaling ips (if new DAMP VMs are to be scaled) |
ipfeXsiIps | List of IPFE signaling ips (if new DAMP VMs are to be scaled) |
stpXsiIps | List of STP signaling ips (if new DAMP VMs are to be scaled) |
dampImiIps | List of DAMP internal management ips (if new DAMP VMs are to be scaled) |
ipfeImiIps | List of IPFE internal management ips (if new IPFE VMs are to be scaled) |
stpImiIps | List of vSTP internal management ips (if new vSTP VMs are to be scaled) |
sbrImiIps | List of SBR internal management ips (if new SBR VMs are to be scaled) |
daScaleImage (Optional) | DAMP Image used during scaling |
ipfeScaleImage (Optional) | IPFE Image used during scaling
If you are using the Multiqueue feature, you must follow the Prerequisite for the IPFE image. |
stpScaleImage (Optional) | STP Image used during scaling |
serviceMpScaleImage (Optional) | Service Mp Image used during Scaling |
sbrScaleImage (Optional) | SBR Image used during scaling |
Note:
During Scaling of SBR's, the newly spawned SBR's are not added to any Server Group, it needs to be manually added to the new Server Groups created by the user. One server Group can have maximum two SBR's.Scale VNF to Level using ScaleInfo (Arbitrary Size) for DSR APIGW
This option supports Scaling of VNF to arbitrary sizes based on ScaleInfo.
Sample Request for Dynamic IP model
Scale VNF to Level Dynamic IP Deployment
{
"scaleInfo": [
{
"aspectId": "APIGW-APP",
"scaleLevel": "2"
},
{
"aspectId": "APIGW-DB-DATA",
"scaleLevel": "4"
},
{
"aspectId": "APIGW-DB-SQL",
"scaleLevel": "3"
}
],
"additionalParams":{
"appServersVolumeIds": ["773c6f7a-0307-4c9e-8c78-ecbc8cb2b6c8"]
}
}
Sample Request for Fixed IP model
Scale VNF To Level Fixed IP deployment model
{
"scaleInfo": [
{
"aspectId": "APIGW-APP",
"scaleLevel": "2"
},
{
"aspectId": "APIGW-DB-DATA",
"scaleLevel": "4"
},
{
"aspectId": "APIGW-DB-SQL",
"scaleLevel": "3"
}
],
"additionalParams": {
"xmiNetwork": {
"name": "ext-net5-dual",
"ipVersion": "IPv4",
"xmiSubnetName": "ext-net5-ipv4",
"fixedIps": {
"apiGwAppXmiIp": [
"10.75.234.5"
]
}
},
"imiNetwork": {
"name": "imi-private",
"ipVersion": "IPv4",
"imiSubnetName": "imi-private-sub",
"fixedIps": {
"apiGwAppImiIp": [
"192.167.2.30"
]
}
},
"xsiNetwork": {
"name": "ext-net2",
"ipVersion": "IPv4",
"xsiSubnetName": "ext-net2-subnet",
"fixedIps": {
"apiGwAppXsiIp": [
"10.196.28.10"
],
"apiGwDbDataXsiIp": [
"10.196.28.13",
"10.196.28.21"
],
"apiGwDbSqlXsiIp": [
"10.196.28.4"
]
}
},
"appServersVolumeIds": [
"ac09106f-60e4-4af7-9fe4-a4e569bb8042"
]
}
}
Note:
The 202 response indicates that the request is accepted for processing. The VNF is operational within 6 to 10 minutes. Use the DSR GUI to determine when the VNF is operational.202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Note:
- The aspect ID is chosen based on the VM to be scaled. Scale level is chosen according to the number of VMs required.
- Only the IPs of the required VM are passed in the fixedIp parameter. These IPs must be of the same network in that order as used during the instantiation process.
For Example: "aspectId":"APIGW-APP","scaleLevel":"2" (from scaleLevel 1 to scaleLevel 2).
The user needs to pass apiGwAppXmiIp(1), apiGwAppImiIp(1), apiGwAppXsiIp(1), appServersVolumeIds(1).
The following table describes the parameters used for sending request to VNFM:
Table 9-23 Parameters and Definitions for Scaling VNF to Level using ScaleInfo
Parameters | Definitions |
---|---|
scaleInfo | aspectId : VnfType
scaleLevel : Target scale level to which the VNF is to be scaled. |
apiGwAppXmiIp | List of APIGW APP external management IPs if new API GW APP VMs are to be scaled. |
apiGwAppImiIp | List of APIGW APP internal management IPs if new API GW APP VMs are to be scaled. |
apiGwAppXsiIp | List of APIGW APP signaling IPs if new API GW APP VMs are to be scaled. |
apiGwDbDataXsiIp | List of API GW DB DATA signaling IPs if new APIGW DB DATA VMs are to be scaled. |
apiGwDbSqlXsiIp | List of API GW DB SQL signaling IPs if new APIGW DB SQL VMs are to be scaled. |
appServersVolumeIds | List of API GW APP Volume IDs if new API GW APP VMs are to be scaled. |
IPFE and Service Mp Scale from Sizing 0
- For IPFE, we can scale from size 0 by using "instantiationLevelId" and ScaleInfo (Arbitary Size).
- For Service Mp, we can scale from size 0 by using only ScaleInfo (Arbitary Size).
Note:
Service Mp Instantiation and scale introduced from DSR version 8.5.0.1.0-91.14.0.Operate VNF
Operate VNF enables requesting to change the operational state of a VNF instance, including starting and stopping the VNF instance. The VNF state must be in the INSTANTIATED state.
A VNF instance can be in the following states:
- STARTED: Indicates that the VNF instance is up and running.
- STOPPED: Indicates that the VNF instance has been stopped. A VNF instance is stopped if all its VNFC instances are also stopped.
In addition to the VNF level Operate, it supports Operate VNF Stop and Start at the VNFC (VM) level. The Operate API can take the VM Hostname in the request message when the call is for the operation of the specific VNFCs. A VNF instance is STARTED/STOPPED if all of its VNFC instances are also in the STARTED/STOPPED state. "vnfState" as STARTED/STOPPED/PARTIAL are implemented. "vnfState" remains in the "PARTIAL" state if VNFC states are combination of "STARTED" and "STOPPED" states. Instance file structure for "additionalInfo" is updated to specific format to support Operate API call after Instantiate, Scale To Level and Discover of VNF. There is a retry mechanism for all VNFCs to complete the operation. If VNFC fails to operate, LCM status returns as FAILED updating the instance file.
Note:
- Operate VNF is a maintenance API, which is similar to shutdown VNF. The orchestrator decides when to call Operate after completing the impact assessment.
- If the traffic impact is high, isolate the VM, and then execute the shutdown. For example, remove the DA_MP from the TSA group manually or remove the DP from the DP server group, and then execute shut off Instance by performing operate VNF API call to change the VFNC state to the STOPPED state.
The following image displays the VNF Operate:
Figure 9-8 Operate VNF
Sample Request for Operate VNF
URL: https://<<VNFM HOST IP>>:8443/vnfm/v1/vnf_instances/<
VNF ID received from create/instantiate request>/operate
Accept: application/json
Content-Type: application/json
X-Token : <Token generated after login>{ "changeStateTo":
"STARTED","additionalParams":
{ "vnfcNames":
["Opt-DNO00","Opt-DNO01"]}}
Note:
The 202 response indicates that the request is accepted for processing. Use the Query LCM operation for status.Operate VNF Response
202 Accepted
Headers:
{
location: https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-fb21f9d3-43ad-46cd-a03f-7220bb36a5c6
date: Tue, 29 Jan 2019 10:39:24 GMT
content-length: 0 content-type:
application/xml
}
Operate VNF Parameter Descriptions
Table 9-24 Operate VNF Parameter Descriptions
Parameter | Descriptions |
---|---|
changeStateTo | Changes the operational state to STARTED or STOPPED. |
vnfcNames (Optional) | Changes the operational state of a particular VNFCs to STARTED or STOPPED. |