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 | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2840 |
---|
|
|
|
Support for NFVO Microservice Plugin Framework (P1) |
| Provides the NFVO function Microservice plugin framework for supporting: (P1)- Default function plugins support (following default plugins will be registered to the Framework; routing will be configured)
- SOL005 NBI (API Handler)
- NS LCM Manager
- ETSI Catalog Manager Adapter
- Camunda Workflow Engine
- NS Workflows and Logic
- Resource Manager
- SOL003 Adapter
- K8S Client
- Configuration Manager
- MultiCloud Adapter
- Inventory DB Adapter
- Notification Manager
- FM/PM Event Manager
- Substitution of existing function plugins
- Registration of a new substitution Microservice with version control (leverage a mechanism like AAI ESR/MSR/API Fabric/MSB/Kubernetes - TBD)
- Plug-in a substitution Microservice
- Dynamic dispatching/launching a new plugin instance based on configuration/policy
- Extension of existing function plugins
- Default function plugin extension with version control
- Dynamic dispatching/launching an extended plugin instance based on configuration/policy
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2841 |
---|
|
|
|
Support for SOL005 NBI API Handler (P1) |
| Provides SOL005-compliant Restful Northbound APIs for SO/SOL005 Adapter (P1) | Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2842 |
---|
|
|
|
| Create NS NBI | - Supports Create NS: POST /api/nslcm/v1/ns_instances (CreateNsRequest)
- Responses with NsInstance with 201 (for success) or an error
- Sends NsIdentifierCreationNotification to the NFVO subscriber(s) (e.g., ONAP SO SOL005 Adapter)
- Postcondition: NS Instance is NOT_INSTANTIATED state
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2858 |
---|
|
|
|
| Instantiate NS NBI | - Precondition: NS instance is NOT_INSTNANTIATED state
- Supports Instantiate NS: POST /api/nslcm/v1/ns_instances/{nsInstanceId}/instantiate (InstantiateNsRequest)
- Responses 202 Accepted with an empty payload body
- a Location HTTP header that points to the new individual NS Lifecycle Operation Occurrence resource; i.e. the URI of that resource (.../ns_lcm_op_occs/{nsLcmOpOccId}
- Sends nsLcmOperationOccurrenceNotifiation (start, result)
- Postcondition: NS Instance is INSTANTIATED state
- Error handling: if the operation is failed, error information is provided in the notification message
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2859 |
---|
|
|
|
| Terminate NS NBI | - Precondition: NS instance is INSTANTIATED state
- Support Terminate NS: POST /api/nslcm/v1/ns_instances/{nsInstanceId}/terminate (TerminateNsRequest)
- Responses 202 Accepted with an empty payload body
- a Location HTTP header that points to the new individual NS Lifecycle Operation Occurrence resource; i.e. the URI of that resource (.../ns_lcm_op_occs/{nsLcmOpOccId}
- Sends nsLcmOperationOccurrenceNotifiation with nsLcmOpOccId, notificationStatus (start, result), subscriptionId, etc.
- Postcondition: NS Instance is TERMINATED state
- Error handling: if the operation is failed, error information is provided in the notification message
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2860 |
---|
|
|
|
| Delete NS NBI | - Precondition: NS instance in NOT_INSTANTIATED state
- Supports Delete NS: DELETE /api/nslcm/v1/ns_instances/{nsInstanceId}
- Sends 204 No Content with an empty payload body
- Sends NsIdentifierDeletionNotification to the NFVO subscriber(s) (e.g., ONAP SO SOL005 Adapter)
- Postcondition: the resource representing the NS instance has been removed from the list of NS instance resources
- Error handling: if the individual NS instance is not in NOT_INSTANTIATED state, it rejects the deletion request
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2861 |
---|
|
|
|
| Get NS Operation Status NBI | - Support multiple NS LCM operation occurrences: GET / api/nslcm/v1/ns_lcm_op_occs
- Response with 200 OK (NsLcmOpOcc[])
- Support individual NS LCM operation occurrence: GET /api/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}
- nsLcmOpOccId is an attribute in the NsLcmOperationOccurrenceNotification
- Response with 200 OK (NsLcmOpOcc), where its opeationStatus=PROCESSING, COMPLETED)
Note: Instantiate NS and Terminate NS use the individual NS LCM operation occurrence | Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2862 |
---|
|
|
|
| Create NS Subscription NBI | - Supports subscription: POST /api/nslcm/v1/subscriptions (LccnSubscriptionRequest)
- Tests the callback notification endpoint
- GET <<callback uri>>
- expects 204 No Content response from the subscriber (e.g., SO SOL005 Adapter)
- Responses with 201 Created (LccnSubscription)
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2864 |
---|
|
|
|
| Get NS Subscription NBI | - Supports Get all subscriptions: GET /api/nslcm/v1/subscriptions/
- Responses with 200 OK (LccnSubscription[])
- Supports Get individual subscription: GET /api/nslcm/v1/subscriptions/{subscriptionId}
- Responses with 200 OK (LccnSubscription)
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2863 |
---|
|
|
|
| Delete NS Subscription NBI | - Supports Delete subscription: DELETE /api/nslcm/v1/subscriptions/{subscriptionId}
- Responses with 204 No Content
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2865 |
---|
|
|
|
| Send NS Notifications NBI | - Sends notifications to the subscriber(s) for NS LCM: POST <<callback URI>> (<<Notification>>)
- <<Notification>> follows NsLcmOperationOccurrenceNotification, NsIdentifierCreationNotification, NsIdentifierDeletionNotification or NsChangeNotification (see, SOL005 v2.7.1 specification 6.5.2.5 - 6.5.2.8)
- Gets response: 204 No Content from the subscriber (e.g, SO SOL005 Adapter)
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2866 |
---|
|
|
|
|
|
|
|
|
|
Supports for NS LCM and Workflows (P1) |
| Support for NS LCM and Workflows (P1) - Provides Workflow engines (stand-along/clustered Camunda engine) for the NS workflow management
- Provides NS LCM and workflows
- Provides default NS workflows (part of ONAP NFVO deployment)
- CreateNS bpmn files with business logic
- InstantiateNS bpmn files with business logic
- TerminateNS bpmn files with business logic
- DeleteNS bpmn files with business logic
- Allows custom NS workflows deployment (Hot deployment)
- The Operators build their own workflows and business logic as war files
- The Operators drop off custom workflows war files into the Camunda deployment directory
- UI for the custom workflow war deployment would be supported
- Provides business logic for NS LCM
- Invokes SOL003 Adapter
- Invokes Resource Adapter
- Invokes Catalog DB Adapter
- Invokes NS Inventory Adapter
- Invokes MultiCloud Adapter
- Invokes Configuration Manager
![(question)](/s/z10khv/8804/xgjkrn/_/images/icons/emoticons/help_16.svg) - Invokes Policy Adapter
- Invokes OOF Adapter
- Invokes Notification Manager (TBD)
- Invokes FM/PM Event Manager (TBD)
- Invoke K8S Client (TBD)
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2843 |
---|
|
|
|
| Create NS | SOL005 NBI Handler invokes the Create NS workflows which do the following: <Create NS> ![](/download/attachments/68545094/image2020-5-2_15-51-24.png?version=1&modificationDate=1588449084000&api=v2)
- Initialize Parameters: set csar_id, ns_name, description, global_customer_id, service_type from the parameters to the execution variables
- Get NS Package from ETSI Catalog Manager: query ETSI Catalog Manager for an NS package with the given csar_id
- Check NSD Validation: check if the NSD package exists in the ETSI Catalog Manager DB; otherwise generates errors
- Check if an NS Instance (with the ns_name as the key) exists in the NS Instance DB (NFVO_NSINST DB table)
- Create NS Instance in NS Instance DB: stores the NS instance data into the NS Instance DB with the status= 'NOT_INSTANTIATED'
- create an ns instance id (uuid)
- store ns_instance_id, ns_name, ns_package_id, nsd_id, nsd_invariant_id, description, lastuptime, global_customer_id, service_type
- Create NS instance in AAI: store an NS instance data to AAI as follows:
- service-instance-id = ns_inst_id
- service-instance-name = ns-name
- service-type = SERVICE_TYPE (NetworkService)
- service-role = SERVICE_ROLE (NetworkService)
- get nsInstance from GetNSInfoService
- return 201 Created with the NsInstance
- Send NsIdentifierCreationNotification
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2867 |
---|
|
|
|
| Instantiate NS | SOL005 NBI Handler invokes the Instantiate NS workflows which do the following: <Instantiate NS> ![](/download/attachments/68545094/image2020-4-8_14-35-11.png?version=1&modificationDate=1586370912000&api=v2)
- Initialize Parameters: set ns_inst_id, plan_input
- plan_input = job_id, ns_inst_id, dst_plan, additionalParamsForNs, additionalParamsForVnf, additionalParamsForPnf
- dst_plan = get nsd with the given nspackage_id, input parameters
- Get an ns instance id from the parameter
- Create a Job: create a job for the ns instance id and return a job_id
- create a job object with job_type = NS, job_action= NS_INST, ns_inst_id
- store it to NFVO_JOB database table
- create an occ id for the ns instance id
- Update the status of ns_instance record in DB: update the ns instance id row of the NFVO_NSINST db for status (= INSTANTIATING)
- get a ns instance data from DB for the given ns_inst_id: get an NS records from the NFVO_NSINST db for the ns instance id
- collect parameters for NS: get and store additional Parameters for NS
- Get an VIM id: get an VIM id from the cloud owner and cloud region parameters
- Get VNF VIM: get an VNF VIM from the location constraints
- set the job status with 'Start Query NSD'
- get NSD from ETSI Catalog Manager & Parse NSD: get and parse a nsd for the ns package id
- Update NFVO_INST db to modify nsd model (dst_plan)
- Prepare each VNF request: 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: 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 db: 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 NSDelete NS | SOL005 NBI Handler invokes the Terminate NS workflows which do the following: <Terminate NS> Image Added
- Get an ns_inst_d, job_id and request_data from the parameters
- if there no matching ns_inst_id from the NFVO_NSINT database table, consider there is nothing to terminate, and return
- set job status as "Starting terminate..."
- update the ns_inst_id row from the NFVO_NSINST database table with the status = TERMINATING
- cancel SFC list
- get sfc inst array
- for each sfc inst
- DELETE /api/nslcm/v1/ns/sfcs/{instId}
- cancel VNF list
- get vnf inst list array from NFVO_NFINST
- for each vnf inst
- delete_vnf (nf_instid)
- POST /api/nslcm/v1/ns/terminateVnf/{instId}
- cancel VL list
- get VL Inst array
- for each VL inst
- DELETE /api/nslcm/v1/ns/vls/{instId}
- cancel PNF list
- get pnf inst array
- for each pnf inst
- DELETE /api/nslcm/v1/pnfs/{instId}
- modify the ns_inst_id row state from the NFVO_NSINST database table
- modify NFVO_NSINST status = NOT_INSTANTIATED
- set job status = NS terminate ends
- Update NsLcmOpOCC to COMPLETED
- Send nsLcmOperationOccurrenceNotification
|
|
|
|
| Delete NS | SOL005 NBI Handler invokes the Delete NS workflows which do the following: <Delete NS> Image Added
- get ns_inst_id
- delete ns instance in AAI
- get ns_instances from NFVO_NSINST database table
- invoke delete_ns_aai with global_customer_id, service_type, ns_inst_id, resource_version
- formulate the resource url with parameters
- call_aaI (resource, "DELETE")
- delete ns_inst_id row from the NFVO_NSINST database table
- delete ns_inst_id row from the NFVO_INPutParamMapping database table
- delete ns_inst_id row from the DefPkgMapping database table
- delete ns_inst_id row from the ServiceBaseInfo database table
- return 204 No Content
- Send NsIdentifierDeletionNotification
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Support for NS Resource Manager (P1 partial) |
| - Provides Resource Granting Information through OOF (Policy, MultiCloud, A&AI) (P1)
- Supports Or-Vi Interfaces that provided by VIM, Infrastructure Manager, VIM or CaaS manager (note: for Guilin, many of them would be stretch goals) (P1 Partial)
- Software Image Management (P1)
Container Image Management (stretch goal) - Virtualized Resources Information Management
Virtualized Resources Capacity Management - Virtualized Resources Management
Virtualized Resources Change Management - Virtualized Resources Reservation Management
Virtualized Resource Quota Management - Virtualized Resource Performance Management
Virtualized Resource Fault Management - Network Forwarding Path (NFP) Management
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2844 |
---|
|
|
|
Support for NS Catalog DB Adapter (P1) |
| - Provides access for ETSI Catalog Manager
- Get notifications from ETSI Catalog Manager
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2845 |
---|
|
|
|
Support for NS Inventory Adapter (P1) |
| - Provides access for AAI for NS LCM
- Refactoring of the current AAI Adapter
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2846 |
---|
|
|
|
Support for MultiCloud Adapter (P1) |
| - Provides MultiCloud Access
- Refactoring of the current SO MultiCloud Adapter
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2847 |
---|
|
|
|
Support for Configuration Mgr (P2) |
| - Provides APPC and or CDS access
- Refactoring of the current APPC and CDS connection
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2848 |
---|
|
|
|
Support for Policy Adapter (P2) |
| - Provides Policy access
- Refactoring of the current Policy access
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2849 |
---|
|
|
|
Support for OOF Adapter (P1?) |
| - Provides OOF access for homing
- Refactoring of the current OOF access
- Need to discuss further
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2850 |
---|
|
|
|
Supports for Notification Manager (P1) |
| - Provides notifications to SO E2E
- depends on the SOL003 notification endpoint
| ? | TBD |
|
Support for FM/PM Event Manager (P3) |
| | ? | TBD |
|
Support for K8S client (P3) |
| - Provides access to K8S
- When we support CNF, it will be done, not for Guilin
| ? | TBD |
|
Support for SOL005 Adapter to interface to/from ONAP SO NFVO (P1) |
| SOL005 Adapter supports interfaces to/from ONAP SO NFVO - SOL005 Adapter sends SOL005 requests to the ONAP SO NFVO, as one of the choices (SO NFVO, VFC, External NFVO)
- SOL005 Adapter subscribes (CREATE and DELETE) to ONAP SO NFVO for notifications
- SOL005 Adapter provides notification endpoint(s) to receive notifications (P1)
- Swagger will be provided to the SOL005 Adapter development
| Yes | Jira |
---|
server | ONAP JIRA |
---|
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
---|
key | SO-2857 |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|