Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Till Casablanca release, SO acts as both Orchestrator and OSS/BSS System in some usecases. In the role of OSS/BSS System, SO sends the request to VF-C for Network Services LCM. In the Dublin release, VF-C introduces SOL005 

SO has to align the VF-C adapter to call those APIs using the new endpoints and also support the existing APIs as is.

...

As part of aligning ONAP to ETSI MANO interfaces, SOL 005 support will be introduced between Service Orchestrator & Virtual Functions Controller component.

Until Casablanca release, the communication between SO & VF-C is based on ONAP APIs. In Dublin, this interface will be aligned to SOL 005 and the usecase will be designed in such a way that, any SOL 005 Compliant NFV-O can interact with SO, in addition to VF-C.


ETSI NFV-SOL 005 Introduction

ETSI NFV-SOL 005 provides the interface specifications for Os-Ma-nfvo reference point, shared between OSS & NFV-Orchestration functions. Mapping this architecture to ONAP, SO represents the OSS functionality as it oversees E2E services and VF-C represents the NFV-O functionality as it performs network service orchestration. By aligning the interface between SO and VF-C to NFV SOL 005, any external NFV-O can utilize ONAP SO for service orchestration layer.

Reference : https://docbox.etsi.org/ISG/NFV/Open/Other/Tutorials/201805-Tutorials-NFV_World_Congress_San_Jose/RX14558_Layer123_ETSI_NFV_NS_SOL005_Tutorial_SanJose_Apr2018_.pdf 


Image Added

What ETSI NFV-SOL 005 APIs are supported in VF-C?

As of Dublin release, VFC is planning to implement the following APIs:

  • NS LCM 
    • Create NS
    • Delete NS
    • Get NS
    • Instantiate NS
    • terminate NS
  • NSD Package management
    • Subscribe
    • Query Subscribe Information
    • Terminate Subscription
    • Notify
  • VNFD Package Management
    • Fetch VNF Package artifacts
    • Subscribe
    • Query Subscription information
    • Terminate Subscription

What SOL005 APIs that will be consumed by SO?

Till Casablanca release, SO supports NS LCM API and scaling of NS. We are not going to add any new APIs in this release. But we will modify existing NS LCM APIs alone to make compatible with SOL 005.

API Action

Method

URI

Description

Create NSPOST
/ns_instances
To create a Network Service
Instantiate NSPOST
/ns_instances/{nsInstanceId}/instantiate
To instantiate Network service
Get NS DetailsGET
/ns_instances/{nsInstanceId}

To query the status of the Network Service

Terminate NSPOST
/ns_instances/{nsInstanceId}/terminate
To Delete Network Service Instance

Architecture for the NS Orchestration using SOL 005:

Image Removed

Flow of the NS Orchestration Diagram:

...


Sequence Diagram of the flow:

Image Added


Usecase Explanation:

Image Added


Step - 1  Register NFV-O ( VF-C ) to ONAP via ESR:

Until Casablanca release, VF-C was the only native NFV-O and the interface between SO & VF-C happened via MSB component. As part of this usecase, we introduce a generic way to introduce any SOL 005 compliant NFV-O into ONAP Ecosystem. On that front, External System Register ( ESR ) component will be extended to have a new entity type for NFV-O, in addition to VNFM, VIM, EMS & SDN-C.

Currently, in ESR we have the option to register VNFM, VIM, EMS and SDNC. We have to add new ESR entity called NFVO to register any external NFV orchestrators.

Note: As per SOL005 spec, we can have any apiRoot for the Orchestrator base URL  which makes difficult to register NFVO in MSB

Step - 2 Push the details in AAI:

As ESR one of subcomponent of AAI, all ESR entities will be pushed to AAI graph database.

Step - 3 Send NS request from UUI using SOL 005 flag and orchestrator:

In Usecase UI, two new dropdowns will be introduced.

  • For selecting SOL 005 APIs or follow the existing APIs in VF-C
  • To select orchestrator which is populated by querying AAI

Along with the above details, UUI will send E2E service instance request will be sent to SO.


Step - 4 VF-C/SOL 005 Adapter fetch orchestrator details from AAI:

VF-C adapter will fetch orchestrator details from AAI  based on the details provided by UUI.


Step - 5 VF-C/SOL 005 Adapter send the requests to NFVO:

Based on the SOL 005 flag that received from SO, VF-C adapter will either use new SOL005 API call or use the default VFC apis which are not SOL005.


Frequently Asked Questions :

What usecase to be tested with SOL 005 Flow

...

?

As of the Dublin release, SOL 005 flow will be tested against vFW usecase with SOL004 CSAR.

...

However more testing will be

...

performed with external SOL 005 compliant NFV-O to ensure ETSI NFV-SOL 005 Compliance.

Impacts to other ONAP Components ?

  • AAI: New entity in ESR will be introduced to accept NFVO registrations.
  • SDC: We tested with vCPE CSARs to check artifacts distributed to SO and there is no change needed in vCPE usecase. Other usecases has to be tested.
  • SDNC: ????

...

  • VF-C will also be registered as yet another NFV-O to ensure one standard path.
  • UUI: A new dropdown will be added in UUI to select target NFV-O for service instantiation.

Prerequisites/ Assumptions:

  • The scope of work is limited to NS LCM APIs, so Service Orchestrator (SO) won’t deal with CSAR package onboarding to VFC.
  • As all the attributes that SOL005 instantiate request expects are not provided from Usecase UI, so scope of this work is limited to such requests.


SOL 005 API Request and Response ( for reference only. These APIs will be implemented by VF-C / NFV-O)

WhatCreateNS
PathPOST {apiRoot}/nslcm/v1/ns_instances
WhenWhile creating NS for Sol005 NFVO

Request

Model


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
  "nsdId": "",
  "nsName": "",
  "nsDescription": ""
}


Response

Model


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
   "id":"",
   "nsInstanceName":"",
   "nsInstanceDescription":"",
   "nsdId":"",
   "nsdInfoId":"",
   "flavourId":"",
   "sapInfo":[
      {
         "id":"",
         "sapdId":"",
         "sapName":"",
         "description":"",
         "sapProtocolInfo":{
            "layerProtocol":"IP_OVER_ETHERNET",
            "ipOverEthernet":{
               "macAddress":"",
               "ipAddresses":{
                  "type":"",
                  "fixedAddresses":"",
                  "numDynamicAddresses":1,
                  "addressRange":{
                     "minAddress":"",
                     "maxAddress":""
                  },
                  "subnetId":""
               }
            }
         }
      }
   ],
   "pnfInfo":[
      {
         "pnfId":"",
         "pnfName":"",
         "pnfdId":"",
         "pnfdInfoId":"",
         "pnfProfileId":"",
         "cpInfo":[
            {
               "cpInstanceId":"",
               "cpdId":"",
               "cpProtocolData":{
                  "layerProtocol":"IP_OVER_ETHERNET",
                  "ipOverEthernet":{
                     "macAddress":{

                     },
                     "ipAddresses":{
                        "type":"",
                        "fixedAddresses":"",
                        "numDynamicAddresses":1,
                        "addressRange":{
                           "minAddress":"",
                           "maxAddress":""
                        },
                        "subnetId":""
                     }
                  }
               }
            }
         ]
      }
   ],
   "vnfInstance":[
      {
         "vnfInstanceId":"",
         "vnfProfileId":""
      }
   ],
   "virtualLinkInfo":[
      {
         "id":"",
         "nsVirtualLinkDescId":"",
         "resourceHandle":[
            {
               "vimId":"",
               "resourceProviderId":"",
               "resourceId":"",
               "vimLevelResourceType":""
            }
         ],
         "linkPort":[
            {
               "id":"",
               "resourceHandle":{
                  "vimId":"",
                  "resourceProviderId":"",
                  "resourceId":"",
                  "vimLevelResourceType":""
               }
            }
         ]
      }
   ],
   "vnffgInfo":[
      {
         "id":"",
         "vnffgdId":"",
         "vnfInstanceId":[

         ],
         "pnfInfoId":[

         ],
         "nsVirtualLinkInfoId":[

         ],
         "nsCpHandle":[
            {
               "vnfInstanceId":"",
               "vnfExtCpInstanceId":"",
               "pnfInfoId":"",
               "pnfExtCpInstanceId":"",
               "nsInstanceId":"",
               "nsSapInstanceId":""
            }
         ],
         "nfpInfo":[
            {
               "id":"",
               "nfpdId":"",
               "nfpName":"",
               "description":"",
               "nscpHandle":[
                  {
                     "vnfInstanceId":"",
                     "vnfExtCpInstanceId":"",
                     "pnfInfoId":"",
                     "pnfExtCpInstanceId":"",
                     "nsInstanceId":"",
                     "nsSapInstanceId":""
                  }
               ],
               "totalCp":1,
               "nfpRule":{
                  "etherDestinationAddress":"",
                  "etherSourceAddress":"",
                  "etherType":"",
                  "vlanTag":[

                  ],
                  "protocol":"",
                  "dscp":"",
                  "sourcePortRange":"",
                  "destinationPortRange":"",
                  "sourceIpAddressPrefix":"",
                  "destinationIpAddressPrefix":"",
                  "extendedCriteria":[
                     {
                        "startingPoint":1,
                        "length":1,
                        "value":""
                     }
                  ]
               },
               "nfpState":""
            }
         ]
      }
   ],
   "nestedNsInstanceId":[

   ],
   "nsState":"",
   "nsScaleStatus":[
      {
         "nsScalingAspectId":"",
         "nsScaleLevelId":""
      }
   ],
   "additionalAffinityOrAntiAffiniityRule":[
      {
         "vnfdId":[

         ],
         "vnfProfileId":[

         ],
         "vnfInstanceId":[

         ],
         "affinityOrAntiAffiinty":"",
         "Scope":""
      }
   ],
   "_links":{
      "self":{
         "href":""
      },
      "nestedNsInstances":{
         "href":""
      },
      "instantiate":{
         "href":""
      },
      "terminate":{
         "href":""
      },
      "update":{
         "href":""
      },
      "scale":{
         "href":""
      },
      "heal":{
         "href":""
      }
   }
}


CallersOSS/BSS or SO Sol005 Adapter


WhatInstantiateNs
PathPOST {apiRoot}/nslcm/v1/ns_instances/{nsInstanceId}/instantiate
WhenCalling from SO Sol005/VFC Adapter

Request

Model


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{ "nsFlavourId":"", "sapData":[ { "sapdId":"", "sapName":"", "description":"", "sapProtocolData":{ "layerProtocol":"IP_OVER_ETHERNET", "ipOverEthernet":{ "macAddress":"", "ipAddresses":{ "type":"", "fixedAddresses":"", "numDynamicAddresses":1, "addressRange":{ "minAddress":"", "maxAddress":"" }, "subnetId":"" } } } } ], "addpnfData":[ { "pnfId":"", "pnfName":"", "pnfdId":"", "pnfProfileId":"", "cpData":[ { "cpInstanceI16":"", "cpdId":"", "cpProtocolData":{ "layerProtocol":"IP_OVER_ETHERNET", "ipOverEthernet":{ "macAddress":{ }, "ipAddresses":{ "type":"", "fixedAddresses":"", "numDynamicAddresses":1, "addressRange":{ "minAddress":"", "maxAddress":"" }, "subnetId":"" } } } } ] } ], "vnfInstanceData":[ { "vnfInstanceId":"", "vnfProfileId":"" } ], "nestedNsInstanceId":[ ], "localizationLanguage":[ { "vnfProfileId":"", "locationConstraints":{ "countryCode":"", "civicAddressElement":{ "caType":1, "caValue":"" } } } ], "additionalParamsForNs":{ }, "additionalParamsForVnf":[ { "vnfProfileId":"", "additionalParams":{ } } ], "startTime":"", "nsInstantiationLevelId":"", "additionalAffinityOrAntiAffiniityRule":[ { "vnfdId":[ ], "vnfProfileId":[ ], "vnfInstanceId":[ ], "affinityOrAntiAffiinty":"", "Scope":"" } ] }


Response

Model

No Response.

CallersOSS/BSS, SO Sol005 Adapter


WhatFind the details of created NS
PathGET {apiRoot}/nslcm/v1/ns_instances/{nsInstanceId}
WhenCalling from SO Sol005/VFC Adapter

Request

Model

NA

Response

Model


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
   "id":"",
   "nsInstanceName":"",
   "nsInstanceDescription":"",
   "nsdId":"",
   "nsdInfoId":"",
   "flavourId":"",
   "sapInfo":[
      {
         "id":"",
         "sapdId":"",
         "sapName":"",
         "description":"",
         "sapProtocolInfo":{
            "layerProtocol":"IP_OVER_ETHERNET",
            "ipOverEthernet":{
               "macAddress":"",
               "ipAddresses":{
                  "type":"",
                  "fixedAddresses":"",
                  "numDynamicAddresses":1,
                  "addressRange":{
                     "minAddress":"",
                     "maxAddress":""
                  },
                  "subnetId":""
               }
            }
         }
      }
   ],
   "pnfInfo":[
      {
         "pnfId":"",
         "pnfName":"",
         "pnfdId":"",
         "pnfdInfoId":"",
         "pnfProfileId":"",
         "cpInfo":[
            {
               "cpInstanceId":"",
               "cpdId":"",
               "cpProtocolData":{
                  "layerProtocol":"IP_OVER_ETHERNET",
                  "ipOverEthernet":{
                     "macAddress":{

                     },
                     "ipAddresses":{
                        "type":"",
                        "fixedAddresses":"",
                        "numDynamicAddresses":1,
                        "addressRange":{
                           "minAddress":"",
                           "maxAddress":""
                        },
                        "subnetId":""
                     }
                  }
               }
            }
         ]
      }
   ],
   "vnfInstance":[
      {
         "vnfInstanceId":"",
         "vnfProfileId":""
      }
   ],
   "virtualLinkInfo":[
      {
         "id":"",
         "nsVirtualLinkDescId":"",
         "resourceHandle":[
            {
               "vimId":"",
               "resourceProviderId":"",
               "resourceId":"",
               "vimLevelResourceType":""
            }
         ],
         "linkPort":[
            {
               "id":"",
               "resourceHandle":{
                  "vimId":"",
                  "resourceProviderId":"",
                  "resourceId":"",
                  "vimLevelResourceType":""
               }
            }
         ]
      }
   ],
   "vnffgInfo":[
      {
         "id":"",
         "vnffgdId":"",
         "vnfInstanceId":[

         ],
         "pnfInfoId":[

         ],
         "nsVirtualLinkInfoId":[

         ],
         "nsCpHandle":[
            {
               "vnfInstanceId":"",
               "vnfExtCpInstanceId":"",
               "pnfInfoId":"",
               "pnfExtCpInstanceId":"",
               "nsInstanceId":"",
               "nsSapInstanceId":""
            }
         ],
         "nfpInfo":[
            {
               "id":"",
               "nfpdId":"",
               "nfpName":"",
               "description":"",
               "nscpHandle":[
                  {
                     "vnfInstanceId":"",
                     "vnfExtCpInstanceId":"",
                     "pnfInfoId":"",
                     "pnfExtCpInstanceId":"",
                     "nsInstanceId":"",
                     "nsSapInstanceId":""
                  }
               ],
               "totalCp":1,
               "nfpRule":{
                  "etherDestinationAddress":"",
                  "etherSourceAddress":"",
                  "etherType":"",
                  "vlanTag":[

                  ],
                  "protocol":"",
                  "dscp":"",
                  "sourcePortRange":"",
                  "destinationPortRange":"",
                  "sourceIpAddressPrefix":"",
                  "destinationIpAddressPrefix":"",
                  "extendedCriteria":[
                     {
                        "startingPoint":1,
                        "length":1,
                        "value":""
                     }
                  ]
               },
               "nfpState":""
            }
         ]
      }
   ],
   "nestedNsInstanceId":[

   ],
   "nsState":"",
   "nsScaleStatus":[
      {
         "nsScalingAspectId":"",
         "nsScaleLevelId":""
      }
   ],
   "additionalAffinityOrAntiAffiniityRule":[
      {
         "vnfdId":[

         ],
         "vnfProfileId":[

         ],
         "vnfInstanceId":[

         ],
         "affinityOrAntiAffiinty":"",
         "Scope":""
      }
   ],
   "_links":{
      "self":{
         "href":""
      },
      "nestedNsInstances":{
         "href":""
      },
      "instantiate":{
         "href":""
      },
      "terminate":{
         "href":""
      },
      "update":{
         "href":""
      },
      "scale":{
         "href":""
      },
      "heal":{
         "href":""
      }
   }
}


CallersOSS/BSS, SO Sol005 Adapter


WhatTerminate already created NS
PathPOST {apiRoot}/nslcm/v1/ns_instances/{nsInstanceId}/terminate
WhenCalling from SO Sol005/VFC Adapter

Request

Model


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
"terminationTime":""
}


Response

Model

No Response

CallersOSS/BSS, SO Sol005 Adapter



GAP Analysis SO E2E Service Instance NBI Vs SOL 005 API.


1.    Parameter Analysis for InstantiateNS

Parameter

SO NBI

Not Present(NP)/Present(P)

Mandatory(M)

/Optional(O)

Significance

nsFlavourId

NP

M

Identifier of the NS deployment flavour to be instantiated

sapData

NP

O

Create data concerning the SAPs of this NS

addpnfData

NP

O

Information on the PNF(s) that are part of this NS.

vnfInstanceData

NP

O

Specify an existing VNF instance to be used in the NS. If needed, the VNF Profile to be used for this VNF instance is also provided.

nestedNsInstanceId

NP

O

Specify an existing NS instance to be used as a nested NS within the NS.

localizationLanguage

Structure

{

"vnfProfileId":"",

    "locationConstraints":{

     "countryCode":"",

        "civicAddressElement":{

               "caType":1,

               "caValue":""

       }

   }

}

Partially Provided. Only vnfProfileId is provided. More details are in following rows


O

Defines the location constraints for the VNF to be instantiated as part of the NS instantiation. An example can be a constraint for the VNF to be in a specific geographic location.

localizationLanguage.vnfProfileId

P

M


localizationLanguage.locationConstraints

P

O


localizationLanguage.locationConstraints.countryCode

NP

M


localizationLanguage.locationConstraints.civicAddressElement

NP

M


additionalParamsForNs

P

"requestInputs"

Note:

Present under

service.parameters.requestInputs


O

Allows the OSS/BSS to provide additional parameter(s) at the NS level (as opposed to the VNF level, which is covered in additionalParamsForVnf).

additionalParamsForVnf

P

requestInputs

Note:

Present under

service.parameters.resources.requestInputs


O

Allows the OSS/BSS to provide additional parameter(s) per VNF instance (as opposed to the NS level, which is covered in additionalParamsForNs). This is for VNFs that are to be created by the NFVO as part of the NS instantiation and not for existing VNF that are referenced for reuse.

startTime

NP

O

Timestamp indicating the earliest time to instantiate the NS.

nsInstantiationLevelId

NP

O

Identifies one of the NS instantiation levels declared in the DF applicable to this NS instance. If not present, the default NS instantiation level as declared in the NSD shall be used.

additionalAffinityOrAntiAffiniityRule

NP

O

Specifies additional affinity or anti-affinity constraint for the VNF instances to be instantiated as part of the NS instantiation. Shall not conflict with rules already specified in the NSD.

       

2.       Parameter Analysis for createNS

Parameter

SO NBI

Not Present(NP)

/Present(P)

Mandatory(M)

/Optional(O)

Significance

nsdId

P (serviceUuid)

M

Identifier of the NSD that defines the NS instance to be created.

nsName

P (name)

M

Human-readable name of the NS instance to be created

nsDescription

P (description)

M

Human-readable description of the NS instance to be created.


3.       Parameter Analysis for terminateNS

Parameter

SO NBI

Not Present(NP)

/Present(P)

Mandatory(M)

/Optional(O)

Significance

terminationTime

NP

O

Timestamp indicating the end time of the NS, i.e. the NS will be terminated automatically at this timestamp. Cardinality "0" indicates the NS termination takes place immediately.



API Mapping table ( SO NBI & ETSI NFV-SOL 005 )


#

SO NBI API

SO NBI Payload

SOL API

SOL 005 Payload

Identified GAPs

1.

Create NS and Instance NS
(Create NS call to SO do both create and Instantiate)


/onap/so/infra/e2eServiceInstances/{version}



Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
   "service":{
      "name":"test2",
      "description":"test2",
      "serviceInvariantUuid":"b412dbf3-d410-4124-8a5b-7076e6708ee6",
      "serviceUuid":"af392bf6-be0d-4ba4-921f-a83255b439a9",
      "globalSubscriberId":"Demonstration",
      "serviceType":"vCPE",
      "parameters":{
         "locationConstraints":[
         ],
         "resources":[
            {
               "resourceName":"vcpe_e2e_vnf",
               "resourceInvariantUuid":"a5028cc1-7316-48ea-b623-f7190e509905",
               "resourceUuid":"3cb66f1e-3127-4d5d-8e9d-208758137154",
               "resourceCustomizationUuid":"4d3a835c-29c8-4a63-83a4-50de5f7ffe16",
               "parameters":{
                  "locationConstraints":[
                     {
                        "vnfProfileId":"9c1a95db-a620-4a78-bb59-96b34a828ba2",
                        "locationConstraints":{
                           "vimId":"CloudOwner_regionOne"
                        }
                     },
                     {
                        "vnfProfileId":"4e9c2017-5dad-487a-976b-999a34f8291f",
                        "locationConstraints":{
                           "vimId":"CloudOwner_regionOne"
                        }
                     },
                     {
                        "vnfProfileId":"237429bb-a4e7-45c4-ba93-75235e45b004",
                        "locationConstraints":{
                           "vimId":"CloudOwner_regionOne"
                        }
                     },
                     {
                        "vnfProfileId":"e78d6821-1498-4853-8fae-ebd6b5975d68",
                        "locationConstraints":{
                           "vimId":"CloudOwner_regionOne"
                        }
                     },
                     {
                        "vnfProfileId":"fd29e0fd-8766-4000-a1c8-e340ae0ee2fa",
                        "locationConstraints":{
                           "vimId":"CloudOwner_regionOne"
                        }
                     }
                  ],
                  "resources":[
                  ],
                  "requestInputs":{
                  }
               }
            }
         ],
         "requestInputs":{
            "nsd0_providing_service_uuid":"5791dbeb-19d4-43e8-bf44-5b327ccf6bca",
            "max_instances":"1"
         }
      }
   }
}



/ns_instances

Create NS Payload

Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
  "nsdId": "",
  "nsName": "",
  "nsDescription": ""
}



  • There is sufficient data for create NS call in SOL005.

2.

Query NS details

/onap/so/infra/e2eServiceInstances/{version}/{serviceId}/operations/{operationId}

No Payload


/ns_instances/{nsInstanceId}No PayloadNo Gap identified
3.

Terminate NS

/onap/so/infra/e2eServiceInstances/{version}/{serviceId}


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
   "globalSubscriberId":"Demonstration",
   "serviceType":"vCPE"
}


/ns_instances/{nsInstanceId}/terminate


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
"terminationTime":""
}


No Gap Identified
4.

InstantiateNS

/onap/so/infra/e2eServiceInstances/{version}

Same API for Create and Instantiate/ns_instances/{nsInstanceId}/instantiate


Code Block
themeMidnight
firstline1
titleModel
linenumberstrue
collapsetrue
{
   "nsFlavourId":"",
   "sapData":[
      {
         "sapdId":"",
         "sapName":"",
         "description":"",
         "sapProtocolData":{
            "layerProtocol":"IP_OVER_ETHERNET",
            "ipOverEthernet":{
               "macAddress":"",
               "ipAddresses":{
                  "type":"",
                  "fixedAddresses":"",
                  "numDynamicAddresses":1,
                  "addressRange":{
                     "minAddress":"",
                     "maxAddress":""
                  },
                  "subnetId":""
               }
            }
         }
      }
   ],
   "addpnfData":[
      {
         "pnfId":"",
         "pnfName":"",
         "pnfdId":"",
         "pnfProfileId":"",
         "cpData":[
            {
               "cpInstanceI16":"",
               "cpdId":"",
               "cpProtocolData":{
                  "layerProtocol":"IP_OVER_ETHERNET",
                  "ipOverEthernet":{
                     "macAddress":{

                     },
                     "ipAddresses":{
                        "type":"",
                        "fixedAddresses":"",
                        "numDynamicAddresses":1,
                        "addressRange":{
                           "minAddress":"",
                           "maxAddress":""
                        },
                        "subnetId":""
                     }
                  }
               }
            }
         ]
      }
   ],
   "vnfInstanceData":[
      {
         "vnfInstanceId":"",
         "vnfProfileId":""
      }
   ],
   "nestedNsInstanceId":[

   ],
   "localizationLanguage":[
      {
         "vnfProfileId":"",
         "locationConstraints":{
            "countryCode":"",
            "civicAddressElement":{
               "caType":1,
               "caValue":""
            }
         }
      }
   ],
   "additionalParamsForNs":{

   },
   "additionalParamsForVnf":[
      {
         "vnfProfileId":"",
         "additionalParams":{

         }
      }
   ],
   "startTime":"",
   "nsInstantiationLevelId":"",
   "additionalAffinityOrAntiAffiniityRule":[
      {
         "vnfdId":[

         ],
         "vnfProfileId":[

         ],
         "vnfInstanceId":[

         ],
         "affinityOrAntiAffiinty":"",
         "Scope":""
      }
   ]
}


For instantiate NS the following are the data that is missing in SO NBI
  • nsFlavorId
  • sapData
  • pnfDetails