This proposal conforms to the following ETSI v2.7.1 specifications.
ONAP SO NFVO provides ETSI NFV-compliant NFVO functions.
Epic | User Story | Description | In Guilin Plan? | JIRA | Size |
---|---|---|---|---|---|
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 | |||
The following diagram depicts the NFVO component architecture
Support NS Performance Management APIs (stretch goal)
Allows hot deployment of custom workflow packages while ONAP NFVO is running
TBD
Collects Homing information from OOF and provides the information to other NFVO components
Container Image Management (stretch goal)
Virtualized Resources Capacity Management
Virtualized Resources Change Management
Virtualized Resource Quota Management
Virtualized Resource Fault Management
TBD
Descriptions | |
---|---|
Existing SO E2E Business Logic for VFC/SOL005 Adapter |
|
New ONAP SO NFVO Path |
|
Note: to analyze the following further (extracting NS-related operations)
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 |
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 |
CreateNsRequest
NsInstance
VFC design
get nsdId, nsName and nsDescription, context (globalCustomerId, serivceType) parameters
Proposal
The following diagram depicts the Create NS procedure.
InstantiateRequest
201 Accepted
NsLcmOperationOccurrenceNotification (Start/Processing/Completed)
VFC Design
Proposal
The following diagram depicts the Instantiate 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 |
TerminateNsRequest
201 Accepted
NsLcmOperationOccurrenceNotification (Start/Processing/Completed)
VFC Design
Proposal
The following diagram depicts the Terminate NS.
VFC_Design
Proposal
The following diagram depicts the Delete 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 |
The following table describes the Subscription filter request.
attribute name | data type | cardinality | description |
---|---|---|---|
nsdIds | Identifier | 0..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 | Identifier | 0..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. |
pnfdIds | Identifier | 0..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. |
nsInstanceId | Identifier | 0..N | If present, match NS instances with an instance identifier listed in this attribute. See note 2. |
nsInstanceNames | String | 0..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. |
VFC Design
Proposal
The following diagram depicts the Subscription NS.