...
ONAP SO Refactoring for NFVO Function Extraction
ONAP SO | NFVO |
---|---|
Asdc-controller (scope: Service, NS, VNF, VF-Module) | Asdc-controller for NS, leveraging ETSI Catalog Manager |
API Handler | SOL005 API Handler |
BPMN Infra (scope: Service, NS, VNF, VF-Module) including Workflows with embedded Camunda Workflow engine | NS LCM + Default NS Workflows (with business logic) + Custom NS Workflows (with business logic) Stand-Alone/Clustered Camunda Workflow Engine |
VFC / SOL005 Adapter | Not Applicable |
SOL003 Adapter in SO | SOL003 Adapter in NFVO (move its home) |
Catalog DB Adapter | Leverage ETSI Catalog Manager |
Request DB Adapter (scope: service, NS, VNF, VF-Module) | Request DB Adapter for NS scope |
APPC Orchestrator | Configuration Manager Client |
ve-vnfm-adapter (SOL002 Adapter) | TBD |
sdnc-adapter | TBD |
nssmf-adapter | TBD |
Openstack adapter / MultiCloud adapter | Resource Manager |
VNF Adapter | Not Applicable (SOL003 Adapter delegates VNF operations to SVNFM) |
K8S Client (PoC) | K8S Client |
SO-monitoring | SO-monitoring for NS and VNF |
Common (beans and utils common for all the projects) | Leverage Common as needed |
Close Loop Handling | FM/PM Event Handler |
Communication Security
- ONAP SO NFVO NBI supports HTTPs and Authentication/Authorization towards SO/SOL005 Adapter.
- ONAP SO NFVO SBI (through SOL003 Adapter) supports HTTPs and Authentication/Authorization towards SVNFMs.
- TBD
...
PlantUML Macro | ||
---|---|---|
| ||
@startuml participant SO participant SOL005_Adapter participant SOL005_NBI participant NS_LCMGR participant Resource_Mgr participant OOF participant Catalog_DB_Adapter participant ETSI_Catalog_Mgr participant Inventory_DB_Adapter participant AAI participant SOL003_Adapter participant VIM participant VNFM autonumber group Create NS SO -> SOL005_Adapter : Create NS SOL005_Adapter -> SOL005_NBI : Create NS SOL005_NBI -> NS_LCMGR : Create NS NS_LCMGR -> Resource_Mgr : Create NS record Resource_Mgr -> Inventory_DB_Adapter : Create NS record Inventory_DB_Adapter -> AAI : Create NS record AAI --> AAI : Create NS record AAI -> Inventory_DB_Adapter : Response for Create NS record Inventory_DB_Adapter -> Resource_Mgr: Response for Create NS record Resource_Mgr -> NS_LCMGR : Response for Create NS record NS_LCMGR -> SOL005_NBI : Response for Create NS record SOL005_NBI -> SOL005_Adapter : Response with NS Instance Id SOL005_Adapter -> SO : Response with NsInstance\n(including NS Instance Id) NS_LCMGR -> SOL005_NBI : Send\nNsIdentifierCreationNotification SOL005_NBI -> SOL005_Adapter : Send\nNsIdentifierCreationNotification SOL005_Adapter -> SO : Send\nNsIdentifierCreationNotification end group Instantiate NS NS_LCMGR -> Catalog_DB_Adapter : Read NS descriptor Catalog_DB_Adapter -> ETSI_Catalog_Mgr : Read NS descriptor ETSI_Catalog_Mgr -> Catalog_DB_Adapter : Return NS descriptor Catalog_DB_Adapter -> NS_LCMGR : Return NS descriptor NS_LCMGR --> NS_LCMGR : Parse & Decompose NS descriptor NS_LCMGR --> NS_LCMGR : Instantiate NS NS_LCMGR --> NS_LCMGR : Instantiate VLs between VNFs NS_LCMGR -> Resource_Mgr : Create Network Resource_Mgr -> VIM : Create Network VIM -> Resource_Mgr : Response for Create Network Resource_Mgr -> NS_LCMGR : Response for Create Network NS_LCMGR -> Resource_Mgr : Create VL record Resource_Mgr -> Inventory_DB_Adapter : Create VL record Inventory_DB_Adapter -> AAI : Create VL record AAI --> AAI : Create VL record AAI -> Inventory_DB_Adapter : Response for Create VL record Inventory_DB_Adapter -> Resource_Mgr : Response for Create VL record Resource_Mgr -> NS_LCMGR : Response for Create VL record NS_LCMGR -> Resource_Mgr : Request Homing Information\nfor Network Service Resource_Mgr -> OOF : Requests Homing Information\nfor Network Service OOF -> Resource_Mgr : Response with Homing Information\nfor Network Service Resource_Mgr --> Resource_Mgr : Persist Homing Information\nfor Network Service loop Go through each VNF NS_LCMGR -> SOL003_Adapter : Request for Instantiate VNF SOL003_Adapter -> VNFM : Request for Instantiate VNF VNFM -> SOL003_Adapter : Request Grant VNF resource SOL003_Adapter -> NS_LCMGR : Request Grant VNF resource NS_LCMGR -> Resource_Mgr : Request Homing Information Resource_Mgr -> NS_LCMGR : Return with Homing Information\nfor the VNF NS_LCMGR --> NS_LCMGR : Make a Grant decision NS_LCMGR -> SOL003_Adapter : Return with a Grant decision SOL003_Adapter -> VNFM: Return with a Grant decision VNFM --> VNFM : Instantiate VNF VNFM -> SOL003_Adapter : Notify the changes\nof VNF/VDUs/CPs SOL003_Adapter -> NS_LCMGR : Notify the changes\nof VNF/VUD/CPs end NS_LCMGR -> SOL005_NBI : Send\nnsLcmOperationOccurrenceNotification SOL005_NBI -> SOL005_Adapter : Send\nnsLcmOperationOccurrenceNotification SOL005_Adapter -> SO : Send\nnsLcmOperationOccurrenceNotification end @enduml |
Create NS
Request
CreateNsRequest
- nsdId
- nsName
- nsDescription
Response
NsInstance
- see NsInstance from ETSI GS NFV-SOL 005 v2.7.1
Design
- get nsdId, nsName and nsDescription parameter
- get a ns package by the given nsdId from ETSI Catalog Manager
- check if ns instance exists from the NFVO_NSINST database table
- if it exists, log it exists
- create an ns instance id (uuid) and store it with other nsd info, status (NOT_INSTANTIATED) to NFVO_NSINST database table
- create an ns instance record (service-instance-id, service-instance-name, service-type, service-role) in AAI
- return 201 Created with the NsInstance
- Send NsIdentifierCreationNotification
Instantiate NS
Request
InstantiateRequest
Response
201 Accepted
NsLcmOperationOccurrenceNotification (Start/Processing/Completed)
Design
- Get an ns instance id from the parameter
- create a job for the ns instance id
- create an occ id for the ns instance id
- Update the ns instance id row of the NFVO_NSINST database table for status (= INSTANTIATING)
- get a ns instance data from the NFVO_NSINST for the ns instance id
- get and store additional Parameters for NS
- get an VIM id from the cloud owner and cloud region parameters
- get an VNF VIM from he location constraints
- set the job status with 'Start Query NSD'
- get and parse a nsd for the ns package id
- modify nsd state
- get VNF list from the nsd
- for each VNF,
- get vnfd_id, vnfm_type, vimId, s_vimId (with "cloud_owner"_"cloud_regionid")
- select VNFM by leveraging AAI ESR
- store VNF pararms in collection, with vnf info including vnfmInstanceId
- set vl vim id
- for each VNF
- if VNF has dependencies, for each dependency
- add VNF properties and id into vl_vnf array
- if VNF has dependencies, for each dependency
- for each VLs
- get vnfdId and vimId
- add vimId into VL array
- for each VNF
- update NFVO_NSINST with the nsd model
- get PNF parameters
- get VNF parameters (from VNF params above)
- set up Plan Input with job_id, ns_inst_id, tosca plan, additional NS params, VNF params, PNF params)
- start workflows with the job_id, ns_inst, plan_input, occ_id)
- get service template id from ETSI Catalog Manager
- get process id from ETSI Catalog Manager
- workflow run with data (process id, params = plan input)
- createVL
- createVNF
- createSFC (Service Function Chain)
Terminate / Delete NS
The following diagram depicts the Terminate / Delete NS.
...