ETSI Standard Conformation

This proposal conforms to the following ETSI v2.7.1 specifications.



ONAP SO Hierarchical Orchestration Architecture


Requirements

Support for ETSI NFV NFVO  Orchestrator in ONAP SO (ONAP SO ETSI-Aligned Hierarchical Orchestration)

Executive Summary - Enable E2E workflows by orchestrating ETSI NFV compliant Network Services and VNFs. This NFVO should provide an ETSI NFV SOL005 v2.7.1 NBI which can onboard ETSI NFV SOL004 and ETSI NFV  SOL007 v2.7.1 compliant packages which then can be Life Cycle Managed and monitored. This NFVO should use an ETSI SOL003 v2.7.1 SBI to invoke an external VNF Manager. 

Business Impact - Enables operators and service providers to use Industry standard Orchestration to deploy, manage and monitor network services. Industry compatibility.

Business Markets - All operators and service providers that are developing ETSI compatible Network Services especially for 5G Slicing where each Slice Subnet is associated with a Network Service 

Funding/Financial Impacts - Reduction in operations expense from using industry standard ETSI Orchestration.

Organization Mgmt, Sales Strategies -There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider. 

Requirements For Guilin

ONAP SO NFVO

ONAP SO NFVO provides ETSI NFV-compliant NFVO functions.


Epic and User Story

Epic

User Story

Description

In Guilin Plan?JIRASize

Support for ETSI NFV NFVO  Orchestrator in ONAP SO (ONAP SO ETSI-Aligned Hierarchical Orchestration)












Executive Summary - Enable E2E workflows by orchestrating ETSI NFV compliant Network Services and VNFs. This NFVO should provide an ETSI NFV SOL005 v2.7.1 NBI which can onboard ETSI NFV SOL004 and ETSI NFV  SOL007 v2.7.1 compliant packages which then can be Life Cycle Managed and monitored. This NFVO should use an ETSI SOL003 v2.7.1 SBI to invoke an external VNF Manager. 

Business Impact - Enables operators and service providers to use Industry standard Orchestration to deploy, manage and monitor network services. Industry compatibility.

Business Markets - All operators and service providers that are developing ETSI compatible Network Services especially for 5G Slicing where each Slice Subnet is associated with a Network Service 

Funding/Financial Impacts - Reduction in operations expense from using industry standard ETSI Orchestration.

Organization Mgmt, Sales Strategies -There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider. 

Yes 













































































































































NFVO Architecture & Functions

The following diagram depicts the NFVO component architecture



NFVO Microservice Plugin Framework

SOL005 NBI (API Handler)

NS Workflows


ETSI Package Onboarding for NFVO



NS LCM Database 

TBD


SOL003 Adapter for SVNFMs


Resource Manager

Notification Manager


FM/PM Manager

TBD


ONAP SO, SOL005 Adapter and NFVO Interaction


Descriptions
Existing SO E2E Business Logic for VFC/SOL005 Adapter
  • ONAP SO leverages the existing E2E service instance management logic
  • SO receives Create E2E Service Instance Request
  • SO runs E2E Service BPMNs
    • Decomposes E2E service requests for network resources
    • Checks resource subcategory is “Network Service”
    • Invokes Create Network Service Request through SOL005 Adapter
  • SOL005 Adapter fetches NFVO endpoint details from AAI ESR
    • Collects NFVO endpoint details from AAI ESR
    • Sends SOL005 Create NS request to NFVO
New ONAP SO NFVO Path
  • NFVO creates NS LCM
    • Returns NS ID
  • NFVO instantiates NS LCM


ONAP SO Refactoring for NFVO Function Extraction

Note: to analyze the following further (extracting NS-related operations)

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



Standard Interfaces



Create / Instantiate NS

The following diagram depicts the Create/Instantiate NS.


@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

Response

NsInstance

NS LCM Manager Design

VFC design 

Proposal

The following diagram depicts the Create NS procedure.


Instantiate NS

Request

InstantiateRequest

Response

201 Accepted

NsLcmOperationOccurrenceNotification (Start/Processing/Completed)


NS LCM Manager Design

VFC Design

Proposal

The following diagram depicts the Instantiate NS.


Terminate / Delete NS

The following diagram depicts the Terminate / Delete NS.


@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 Terminate NS
	SO -> SOL005_Adapter : Terminate NS
    SOL005_Adapter -> SOL005_NBI : Terminate NS
    SOL005_NBI -> NS_LCMGR : Terminate NS
    NS_LCMGR -> Resource_Mgr : Query all instances related to NS
    Resource_Mgr -> Inventory_DB_Adapter : Query all instances related to NS
    Inventory_DB_Adapter -> AAI : Query all instances related to NS
    AAI -> Inventory_DB_Adapter : Return all instances for NS
    Inventory_DB_Adapter -> Resource_Mgr : Return all instances for NS
    Resource_Mgr -> NS_LCMGR : Return all instances for NS
    NS_LCMGR --> NS_LCMGR : Start Delete NS instances
    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 thru each VNF
    NS_LCMGR -> SOL003_Adapter : Delete VNF
    SOL003_Adapter -> VNFM : Delete VNF
    VNFM -> SOL003_Adapter : Request Grant resource for deletion
    SOL003_Adapter -> NS_LCMGR : Request Grant resource for deletion
    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 : Delete Resources
    VNFM -> SOL003_Adapter : Notify changes of VNF/VDUs/CPs
    SOL003_Adapter -> NS_LCMGR : Notify changes of VNF/VDUs/CPs
    NS_LCMGR -> Resource_Mgr : Update records for Delete VNF/VDUs/CPs
    Resource_Mgr -> Inventory_DB_Adapter : Update records for Delete VNF/VDUs/CPs
    Inventory_DB_Adapter -> AAI : Update records for Delete VNF/VDUs/CPs
    AAI --> AAI : Update records for Delete VNF/VDUs/CPs
    AAI -> Inventory_DB_Adapter : Return with Delete VNF/VDUs/CPs
    Inventory_DB_Adapter -> Resource_Mgr : Return with Delete VNF/VDUs/CPs
    Resource_Mgr -> NS_LCMGR : Return with Delete VNF/VDUs/CPs
end
    NS_LCMGR -> Resource_Mgr : Request for Delete VLs (if needed)
    Resource_Mgr -> VIM : Request for Delete VLs
    VIM --> VIM : Delete VLs
    NS_LCMGR -> Resource_Mgr : Update records for Delete VLs
    Resource_Mgr -> Inventory_DB_Adapter : Update records for Delete VLs
    Inventory_DB_Adapter -> AAI : Update records for Delete VLs
    AAI --> AAI : Update records for Delete VLs
    AAI -> Inventory_DB_Adapter : Return with Delete VLs
    Inventory_DB_Adapter -> Resource_Mgr : Return with Delete VLs
    Resource_Mgr -> NS_LCMGR : Return with Delete VLs

    NS_LCMGR -> SOL005_NBI : Send\nnsLcmOperationOccurrenceNotification
    SOL005_NBI -> SOL005_Adapter : Send\nnsLcmOperationOccurrenceNotification
    SOL005_Adapter -> SO : Send\nnsLcmOperationOccurrenceNotification
end    



@enduml


Terminate NS


Request

TerminateNsRequest

Response

201 Accepted

NsLcmOperationOccurrenceNotification (Start/Processing/Completed)


NS LCM Manager Design

VFC Design

Proposal

The following diagram depicts the Terminate NS.

Delete NS



Request


Response

Notification


NS LCM Manager Design

VFC_Design

Proposal

The following diagram depicts the Delete NS.


Subscription NS


@startuml
participant SO
participant SOL005_Adapter
participant SOL005_NBI
participant NS_LCMGR

autonumber 

group Create Subscription NS
	SO -> SOL005_Adapter : Create Subscription NS
    SOL005_Adapter -> SOL005_NBI : Create Subscription NS
    SOL005_NBI -> NS_LCMGR : Create Subscription NS
    NS_LCMGR --> NS_LCMGR : Check Subscription Filter
	NS_LCMGR -> NS_LCMGR : Test subscription\nnotification (callbackUrl) endpoint
    NS_LCMGR --> NS_LCMGR : Save Subscription to Database
    NS_LCMGR -> SOL005_NBI : Response with LccnSubscription
end

group Delete Subscription NS
	SO -> SOL005_Adapter : Delete Subscription NS
    SOL005_Adapter -> SOL005_NBI : Delete Subscription NS
    SOL005_NBI -> NS_LCMGR : Delete Subscription NS
    NS_LCMGR --> NS_LCMGR : Delete Subscription NS 
    NS_LCMGR -> SOL005_NBI : Response with 204 No Content
    SOL005_NBI -> SOL005_Adapter : Response for Delete Subscription NS
    SOL005_Adapter -> SO : Response for Delete Subscription NS 
	
end

@enduml

Subscription NS

Request

Response


Subscription Filter Request

The following table describes the Subscription filter request.

attribute namedata typecardinalitydescription

nsdIds

Identifier0..N

If present, match NS instances that were

created based on an NSD identified by one of

the nsdId values listed in this attribute.

See note 1.

vnfdIds

Identifier0..N

If present, match NS instances that contain

VNF instances that were created based on a

VNFD identified by one of the vnfdId values

listed in this attribute.

See note 1.

pnfdIdsIdentifier0..N

If present, match NS instances that contain

PNFs that are represented by a PNFD

identified by one of the pnfdId values listed in

this attribute.

See note 1.

nsInstanceIdIdentifier0..N

If present, match NS instances with an

instance identifier listed in this attribute.

See note 2.

nsInstanceNamesString0..N

If present, match NS instances with an NS

Instance Name listed in this attribute.

See note 2.

NOTE 1: The attributes "nsdIds", "vnfdIds" and "pnfdIds" are alternatives to reference to NS instances that are

created based on certain NSDs, or contain VNF instances that are based on certain VNFDs, or contain

PNFs that are based on certain PNFDs in a filter. They should not be used together in the same filter

instance, but one alternative should be chosen.

NOTE 2: The attributes "nsInstanceIds" and "nsInstanceNames" are alternatives to reference to particular NS

Instances in a filter. They should not be used both in the same filter instance, but one alternative should be

chosen.


NS LCM Manager Design

VFC Design


Proposal

The following diagram depicts the Subscription NS.