Versions Compared

Key

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

...

ONAP SO Refactoring for NFVO Function Extraction


ONAP SONFVO

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
typedot
@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

Image Added

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

Image Added

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
    • for each VLs
      • get vnfdId and vimId
      • add vimId into VL array
  • 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.

...