You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 104 Next »


ETSI Standard Conformation

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



ONAP SO Hierarchical Orchestration Architecture

ONAP SO ETSI Hierarchical Orchestration


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

P1: Phase 1 (for Guilin)

P2: Phase 2 (post Guilin)

P3: Phase 3 (future release)

ONAP SO NFVO Requirements

ONAP SO NFVO provides ETSI NFV-compliant NFVO functions in ONAP, such as ETSI NFVO MANO 1) SOL007, SOL004 and SOL001 Modeling and Package, 2) SOL005-compliant NBI, 3) SOL005-compliant NS LCM and 4) SOL003-compliant SBI.

  • NFVO-R1: Supports the SOL005-compliant lifecycle management (LCM) of Network Service (NS) - NS LCM (P1)
    • Create NS
    • Instantiate NS
    • Terminate NS
    • Delete NS 
    • Subscription
  • NFVO-R2: Exposes NS lifecycle management (LCM) interfaces (Os-Ma-Nfvo) to its client such as ONAP SO or SOL005-compliant clients - SOL005 NBI (P1)
    • Create NS
    • Instantiate NS
    • Terminate NS
    • Delete NS
    • Subscription
  • NFVO-R3: Sends NS lifecycle management notifications (Os-Ma-Nfvo) to its client such as ONAP SO or SOL005-compliant clients (P1)
    • Notification (as a client), based on the SOL005 notification
  • NFVO-R4: Manages (as a client) virtualized resources via interfaces (Or-Vi) exposed by the VIM (P1)
    • Software Image (P1)
    • Container Image Management (P2)
    • Resource Management, validation and authorization of NFVI resource requests (P2)
  • NFVO-R5: Supports Virtual Links, CPs and VNF-FG
    • VLs (P1)
    • CPs (P1)
    • VNF-FGs (P2)
  • NFVO-R6: Manages (as a client) virtualized resource management interfaces (Or-Vnfm) to the VNFM (P1)
    • Leverages the existing SOL003 Adapter to support:
      • Create VNF
      • Instantiate VNF
      • Terminate VNF
      • Delete VNF
      • Subscription
  • NFVO-R7: Supports virtualized resource management interfaces (Or-Vnfm) to the VNFM (P1)
    • Granting VNF with HPA, leveraging OOF (question)
  • NFVO-R8: Supports VNF lifecycle management (LCM) notifications (Or-Vnfm) from the VNFM (P1)
    • Notification
  • NFVO-R9: Manages (as a client) SOL004 VNF/PNF and SOL007 NS package management leveraging ETSI Catalog Manager (P1)
    • Queries packages (VNF/PNF/NS)
    • Queries descriptions (VNFD/PNFD/NSD)
    • Subscription
  • NFVO-R10: Supports package notification interfaces (Os-Ma-Nfvo and Or-Vnfm) to ETSI Catalog Manager (P1)
    • Provides notification endpoints based on the ETSI Catalog Manager package management interfaces (SOL005 and SOL003)
  • NFVO-R11: Supports Communication Security, conforming SOL005 specification (P1)
    • 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


SOL005 Adapter Requirements 

  • SOL005-A-R1: Sends SOL005 requests to the ONAP SO NFVO, as one of the choices (SO NFVO, VFC, External NFVO) (P1)
  • SOL005-A-R2: Subscribes (CREATE and DELETE) to ONAP SO NFVO for notifications (P1)
  • SOL005-A-R3: Provides notification endpoint(s) to receive notifications (P1)


Out of Scope Features from Guilin

The following features are out of scope from Guilin:

  • Container Image Management (P2)
  • Resource Management, validation and authorization of NFVI resource requests (P2)
  • VNF-FGs (P2)
  • Container Image Management (P2)

  • Virtualized Resources Information Management (P2)
  • Virtualized Resources Capacity Management (P2)

  • Virtualized Resources Management (P2)
  • Virtualized Resources Change Management (P2)

  • Virtualized Resources Reservation Management (P2)
  • Virtualized Resource Quota Management (P2)

  • Virtualized Resource Performance Management (P2)
  • Virtualized Resource Fault Management (P2)

  • Network Forwarding Path (NFP) Management (P2)
  • Scale NS (POST “/api/nslcm/v1/ns_instances/{nsInstanceId}/scale”) – (P2)
  • Heal NS (“POST ”/api/nslcm/v1/ns_instances/{nsInstanceId}/heal”) – (P2)
  • VNF Modify (ModifyVnfInfo) (P2)
  • VNF Heal (P2)
  • VNF Query (P2)
  • SOL003 NBI enhancements for GNFC-ready (P2)


Use Cases

  • As a start, vCPE NS use cases plan to be used
    • vCPE NS use cases do not have nested NSDs
  • Network Slicing use cases will be defined 

Epic and User Story

Epic

User Story

Task

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 

SO-2840 - Getting issue details... STATUS


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

SO-2841 - Getting issue details... STATUS


Support for SOL005 NBI API Handler (P1)
Provides SOL005-compliant Restful Northbound APIs for SO/SOL005 Adapter (P1)
  • Supports NS Lifecycle Management (LCM) APIs
    • Create NS  (POST “/api/nslcm/v1/ns_instances”)
    •  Instantiate NS (POST “/api/nslcm/v1/ns_instances/{nsInstanceId}/instantiate”)
    • Terminate NS (“/api/nslcm/v1/ns_instances/{nsInstanceId}/terminate”)
    • Delete NS (DELETE “/api/nslcm/v1/ns_instances/{nsInstanceId}”)
    • Get Operation Status ( GET / api/nslcm/v1/ns_lcm_op_occs, 
    • / api/nslcm/v1/ns_lcm_op_occs
    • Scale NS (POST “/api/nslcm/v1/ns_instances/{nsInstanceId}/scale”) – (P2)
    • Heal NS (“POST ”/api/nslcm/v1/ns_instances/{nsInstanceId}/heal”) – (P2)
    • Query NS (GET “/api/nslcm/v1/ns_instances”, “/api/nslcm/v1/ns_instances/{nsInstanceId}”)
    • Subscription (POST ”/subscriptions”)
    • Notification (SO SOL005 Adapter client-provided; POST notification based on the callbackUrl from the subscription) 
  • Support NS Fault Management API (stretch goal)
  • Support NS Performance Management APIs (stretch goal)

  • Leverages SOL005 Swagger Files
Yes

SO-2842 - Getting issue details... STATUS



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

SO-2858 - Getting issue details... STATUS



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

SO-2859 - Getting issue details... STATUS



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

SO-2860 - Getting issue details... STATUS



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

SO-2861 - Getting issue details... STATUS



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

SO-2862 - Getting issue details... STATUS



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

SO-2864 - Getting issue details... STATUS



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

SO-2863 - Getting issue details... STATUS



Delete NS Subscription NBI
  • Supports Delete subscription: DELETE /api/nslcm/v1/subscriptions/{subscriptionId}
    • Responses with 204 No Content
Yes

SO-2865 - Getting issue details... STATUS



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

SO-2866 - Getting issue details... STATUS








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
    • Supports Stand-Alone/clustered Camunda engine(s) deployment
    • Allows hot deployment of custom workflow packages  while ONAP NFVO is running

  • 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)
    • Invokes Policy Adapter
    • Invokes OOF Adapter
    • Invokes Notification Manager (TBD)
    • Invokes FM/PM Event Manager (TBD)
    • Invoke K8S Client (TBD)
Yes

SO-2843 - Getting issue details... STATUS



Create NS 

SOL005 NBI Handler invokes the Create NS workflows which do the following:

<Create NS>

  • 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

SO-2867 - Getting issue details... STATUS



Instantiate NS

SOL005 NBI Handler invokes the Instantiate NS workflows which do the following:

  • 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
    • get ns model (dst_plan)
  • 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 NS




Delete NS





















Support for NS Resource Manager (P1 partial)
  • Provides Resource Granting Information through OOF (Policy, MultiCloud, A&AI) (P1)
    • Supports interfaces with OOF to collect Granting information
    • Collects Homing information from OOF and provides the information to other NFVO components

  • 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

SO-2844 - Getting issue details... STATUS


Support for NS Catalog DB Adapter (P1)
  • Provides access for ETSI Catalog Manager
  • Get notifications from ETSI Catalog Manager
Yes

SO-2845 - Getting issue details... STATUS


Support for NS Inventory Adapter (P1)
  • Provides access for AAI for NS LCM
  • Refactoring of the current AAI Adapter
Yes

SO-2846 - Getting issue details... STATUS


Support for MultiCloud Adapter (P1)
  • Provides MultiCloud Access
  • Refactoring of the current SO MultiCloud Adapter
Yes

SO-2847 - Getting issue details... STATUS


Support for Configuration Mgr (P2)
  • Provides APPC and or CDS access
  • Refactoring of the current APPC and CDS connection
Yes

SO-2848 - Getting issue details... STATUS


Support for Policy Adapter (P2)
  • Provides Policy access
  • Refactoring of the current Policy access
Yes

SO-2849 - Getting issue details... STATUS


Support for OOF Adapter (P1?)
  • Provides OOF access for homing
  • Refactoring of the current OOF access
  • Need to discuss further
Yes

SO-2850 - Getting issue details... STATUS


Supports for Notification Manager (P1)
  • Provides notifications to SO E2E
  • depends on the SOL003 notification endpoint
?TBD
Support for FM/PM Event Manager (P3)
  • Provides access to DCAE
?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

SO-2857 - Getting issue details... STATUS














NFVO Architecture & Functions

The following diagram depicts the NFVO component architecture


ONAP NFVO component architecture


NFVO Microservice Plugin Framework - high priority

  • Provides the NFVO function Microservice plugin framework for supporting:
    • 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
      • 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

SOL005 NBI (API Handler)- high priority

  • Provides SOL005-compliant Restful Northbound APIs for SO/SOL005 Adapter
    • Supports NS Lifecycle Management (LCM) APIs
      • Create NS  (POST “/api/nslcm/v1/ns_instances”)
      •  Instantiate NS (POST “/api/nslcm/v1/ns_instances/{nsInstanceId}/instantiate”)
      • Terminate NS (“/api/nslcm/v1/ns_instances/{nsInstanceId}/terminate”)
      • Delete NS (DELETE “/api/nslcm/v1/ns_instances/{nsInstanceId}”)
      • Scale NS (POST “/api/nslcm/v1/ns_instances/{nsInstanceId}/scale”) – stretch goal
      • Heal NS (“POST ”/api/nslcm/v1/ns_instances/{nsInstanceId}/heal”) – stretch goal
      • Query NS (GET “/api/nslcm/v1/ns_instances”, “/api/nslcm/v1/ns_instances/{nsInstanceId}”)
      • Subscription (POST ”/subscriptions”)
      • Notification (SO SOL005 Adapter client-provided; POST notification based on the callbackUrl from the subscription) 
    • Support NS Fault Management API (stretch goal)
    • Support NS Performance Management APIs (stretch goal)

    • Leverages SOL005 Swagger Files

NS Workflows - high priority

  • Provides Workflow engines (stand-along/clustered Camunda engine) for the NS workflow management
    • Supports Stand-Alone/clustered Camunda engine(s) deployment
    • Allows hot deployment of custom workflow packages  while ONAP NFVO is running

  • Provides NS 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 


ETSI Package Onboarding for NFVO - enhancements of current capabilities

  • ONAP NFVO leverages the ETSI Catalog Manager as the run-time Catalog Database service provider.
    • ETSI NS/VNF/PNF Packages are onboarded and distributed from SDC Ă  ETSI Catalog Manager (note: this is NOT part of NFVO; it is a separate effort)
    • ONAP NFVO queries ETSI NS/VNF/PNF Packages from the ETSI Catalog Manager



NS LCM Database  - high priority

TBD


SOL003 Adapter for SVNFMs - leveraging existing capabilities

  • Provides SOL003-compliant (Or-Vnfm) Southbound APIs towards SVNFMs
    • Supports VNF Lifecycle Management (LCM)
      • Create VNF
      • Instantiate VNF
      • Terminate VNF
      • Delete VNF
      • Scale VNF
      • Heal VNF
      • Query VNF
      • ModifyInfo VNF
      • Subscription
      • Notification
      • Granting with HPA
    • It is a Microservice and part of ONAP SO NFVO
    • It is launched by NS Workflows for VNF LCM
    • It locates the VNFM instance by leveraging AAI ESR


Resource Manager - high priority

  • Provides Resource Granting Information through OOF (Policy, MultiCloud, A&AI)
    • Supports interfaces with OOF to collect Granting information
    • Collects Homing information from OOF and provides the information to other NFVO components

  • Supports Or-Vi Interfaces that provided by VIM, Infrastructure Manager, VIM or CaaS manager (note: for Guilin, many of them would be stretch goals)
    • Software Image Management (P1)
    • Container Image Management (P2)

    • Virtualized Resources Information Management (P2)
    • Virtualized Resources Capacity Management (P2)

    • Virtualized Resources Management (P2)
    • Virtualized Resources Change Management (P2)

    • Virtualized Resources Reservation Management (P2)
    • Virtualized Resource Quota Management (P2)

    • Virtualized Resource Performance Management (P2)
    • Virtualized Resource Fault Management (P2)

    • Network Forwarding Path (NFP) Management (P2)

Notification Manager (stretch goal)

  • Supports NS lifecycle management notification to its clients such as ONAP SO or SOL005 compliant clients
  • TBD


FM/PM Manager (not for Guilin)

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

  • 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



Standard Interfaces


ONAP NFVO component interfaces


Create / Instantiate NS

The following diagram depicts the Create/Instantiate NS.


SO SO SOL005_Adapter SOL005_Adapter SOL005_NBI SOL005_NBI NS_LCMGR NS_LCMGR Resource_Mgr Resource_Mgr OOF OOF Catalog_DB_Adapter Catalog_DB_Adapter ETSI_Catalog_Mgr ETSI_Catalog_Mgr Inventory_DB_Adapter Inventory_DB_Adapter AAI AAI SOL003_Adapter SOL003_Adapter VIM VIM VNFM VNFM Create NS 1Create NS 2Create NS 3Create NS 4Create NS record 5Create NS record 6Create NS record 7Create NS record 8Response for Create NS record 9Response for Create NS record 10Response for Create NS record 11Response for Create NS record 12Response with NS Instance Id 13Response with NsInstance(including NS Instance Id) 14SendNsIdentifierCreationNotification 15SendNsIdentifierCreationNotification 16SendNsIdentifierCreationNotification Instantiate NS 17Read NS descriptor 18Read NS descriptor 19Return NS descriptor 20Return NS descriptor 21Parse & Decompose NS descriptor 22Instantiate NS 23Instantiate VLs between VNFs 24Create Network 25Create Network 26Response for Create Network 27Response for Create Network 28Create VL record 29Create VL record 30Create VL record 31Create VL record 32Response for Create VL record 33Response for Create VL record 34Response for Create VL record 35Request Homing Informationfor Network Service 36Requests Homing Informationfor Network Service 37Response with Homing Informationfor Network Service 38Persist Homing Informationfor Network Service loop[Go through each VNF] 39Request for Instantiate VNF 40Request for Instantiate VNF 41Request Grant VNF resource 42Request Grant VNF resource 43Request Homing Information 44Return with Homing Informationfor the VNF 45Make a Grant decision 46Return with a Grant decision 47Return with a Grant decision 48Instantiate VNF 49Notify the changesof VNF/VDUs/CPs 50Notify the changesof VNF/VUD/CPs 51SendnsLcmOperationOccurrenceNotification 52SendnsLcmOperationOccurrenceNotification 53SendnsLcmOperationOccurrenceNotification

Create NS

Request

CreateNsRequest

  • nsdId
  • nsName
  • nsDescription

Response

NsInstance

  • see NsInstance from ETSI GS NFV-SOL 005 v2.7.1

NS LCM Manager Design

VFC design 

  • get nsdId, nsName and nsDescription, context (globalCustomerId, serivceType) parameters

  • 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
  • get nsInstance from GetNSInfoService
  • return 201 Created with the NsInstance
  • Send NsIdentifierCreationNotification

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

  • 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)

Proposal

The following diagram depicts the Instantiate NS.


Terminate / Delete NS

The following diagram depicts the Terminate / Delete NS.


SO SO SOL005_Adapter SOL005_Adapter SOL005_NBI SOL005_NBI NS_LCMGR NS_LCMGR Resource_Mgr Resource_Mgr OOF OOF Catalog_DB_Adapter Catalog_DB_Adapter ETSI_Catalog_Mgr ETSI_Catalog_Mgr Inventory_DB_Adapter Inventory_DB_Adapter AAI AAI SOL003_Adapter SOL003_Adapter VIM VIM VNFM VNFM Terminate NS 1Terminate NS 2Terminate NS 3Terminate NS 4Query all instances related to NS 5Query all instances related to NS 6Query all instances related to NS 7Return all instances for NS 8Return all instances for NS 9Return all instances for NS 10Start Delete NS instances 11Request Homing Informationfor Network Service 12Requests Homing Informationfor Network Service 13Response with Homing Informationfor Network Service 14Persist Homing Informationfor Network Service loop[Go thru each VNF] 15Delete VNF 16Delete VNF 17Request Grant resource for deletion 18Request Grant resource for deletion 19Request Grant VNF resource 20Request Grant VNF resource 21Request Homing Information 22Return with Homing Informationfor the VNF 23Make a Grant decision 24Return with a Grant decision 25Return with a Grant decision 26Delete Resources 27Notify changes of VNF/VDUs/CPs 28Notify changes of VNF/VDUs/CPs 29Update records for Delete VNF/VDUs/CPs 30Update records for Delete VNF/VDUs/CPs 31Update records for Delete VNF/VDUs/CPs 32Update records for Delete VNF/VDUs/CPs 33Return with Delete VNF/VDUs/CPs 34Return with Delete VNF/VDUs/CPs 35Return with Delete VNF/VDUs/CPs 36Request for Delete VLs (if needed) 37Request for Delete VLs 38Delete VLs 39Update records for Delete VLs 40Update records for Delete VLs 41Update records for Delete VLs 42Update records for Delete VLs 43Return with Delete VLs 44Return with Delete VLs 45Return with Delete VLs 46SendnsLcmOperationOccurrenceNotification 47SendnsLcmOperationOccurrenceNotification 48SendnsLcmOperationOccurrenceNotification

Terminate NS


Request

TerminateNsRequest

  • terminateTime

Response

201 Accepted

NsLcmOperationOccurrenceNotification (Start/Processing/Completed)


NS LCM Manager Design

VFC Design

  • 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

Proposal

The following diagram depicts the Terminate NS.

Delete NS



Request

  • No; just parameter nsInstanceId


Response

  • 204 No Content

Notification

  • Send NsIdentifierDeletionNotification


NS LCM Manager Design

VFC_Design

  • 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

Proposal

The following diagram depicts the Delete NS.

Subscription NS


SO SO SOL005_Adapter SOL005_Adapter SOL005_NBI SOL005_NBI NS_LCMGR NS_LCMGR Create Subscription NS 1Create Subscription NS 2Create Subscription NS 3Create Subscription NS 4Check Subscription Filter 5Test subscriptionnotification (callbackUrl) endpoint 6Save Subscription to Database 7Response with LccnSubscription Delete Subscription NS 8Delete Subscription NS 9Delete Subscription NS 10Delete Subscription NS 11Delete Subscription NS 12Response with 204 No Content 13Response for Delete Subscription NS 14Response for Delete Subscription NS

Subscription NS

Request

  • LccnSubscriptionRequest
  • subscriptionId. for GET and DELETE

Response

  • 204 No Content
  • 201 Created (LccnSubscription)
  • 200 OK (LccnSubscription[])
  • 200 OK (LccnSubscription)


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

  • create subscription id
  • check callback Uri
  • check filter types
  • save subscription request to database
  • return response with subscription


Proposal

The following diagram depicts the Subscription NS.


  • No labels