Versions Compared

Key

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

...

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


Sequence Diagram of the flow:

...

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

Saving of orchestrator details in nfvo mapping table in so request db correspond to each instance/job.


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

...

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",
            "orchestrator": "VFC"
         }
      }
   }
}



/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