Versions Compared

Key

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

...

    • Leverage ETSI standards for VNF LCM in SO

    • Build SO VNFM Adapter

      • Use SOL003 APIs (2.5.1) for VNF LCM

      • Support operations such as create, instantiate, grant, query, terminate, LCN subscription and LCN

      • Support of Delete VNF is a stretch goal in Dublin
    • Enhance SO BPMN workflows & recipes

      • VNF-level and VF-Module workflows, leveraging VNFM Adapter 

      • Passing VNF LCM requests to VNFM using VNFM Adapter

    • Policy based VNF scale out thru VNFM Adapter (Stretch Goal)

      • VNFM Adapter interfaces for VES event

      • Policy Framework for scaling decisions

      • SO workflows for VNF Scale out

  • Note: the following is candidates for the El Alto release.
    • Provide VNF package management for VNFM

  • (Stretch Goal; under investigation)
  • VNF-level and VF Module-level Assignment modeling in SDNC and A&AI (open issue)

  • VNF Application Configuration thru VNFM Adapter and VNFM (open issue & not for Dublin)
    • Policy-based VNF scaling thru VNFM Adapter


  • SO VNFM Adapter Requirements for Dublin

    • A new SO sub-component, following ONAP Microservice Architecture

    • A Generic VNFM Adapter, supporting SOL003-compliant SVNFMs

    • Support of SOL003 APIs for VNFM LCM
      • VNF Package management handling (Download & Parse VNF Package)
        • Get package files from the SDC repository thru SO
        • Provide VNF package(s), VNFDs and Artifacts to VNFM
        • SO Catalog DB enhancement for SOL001/SOL004 is under discussion, for identified as future release work
      • Invoking SVNFM based on SOL003 VNF LCM APIs as a client
      • Granting, based on ETSI VNFLifecycleOperationGranting
      • Subscription to SVNFM for getting notifications
        • STARTING, PROCESSING, COMPLETED
    • SVNFM selection based on configuration values that are configured during VNF on-boarding and VNFM registration. Two methods are considered:
      • Correlation between VNF NF Type and VNFM Type (Nokia method)
      • Utilizing VNFD vnfm_info:type, VNFM registration values: VNFM type, Cloud region, vendor

...

    • Use Cases
    • VNFM Adapter Design
    • SOL001/SOL004 Support & Design
    • SO BPMN Infra & VNFM Adapter Run-time Scenario
    • SOL003 API Support
    • SO VNFM Adapter SOL003 API Support Design
    • VNFM Adapter VNF Package Management (Stretch Goal; under investigation)
    • SDNC Assignment Management
    • VNFM Adapter Locating SVNFM
    • VNF Life-cycle Granting
    • VNFM Adapter Homing Decision for VNF Granting
    • VNF and VF-Module Deduction


  • EPICs


EPICFeatureDescriptionStatus
1Create VNFCreate a VNF IdOpen
2

Instantiate VNF, including subscription, LCN and Granting

  • validate input
  • transform between ONAP internal VNFD and SOL001-based VNFD
  • new database table for asynchronous job management
Instantiate a VNFOpen
3Query VNFQuery VNF InfoOpen
4TOSCA Parser for SOL001 VNFDParse SOL001-based VNFDOpen
5SVNFM SimulatorFor integration testing, vendor-neutral SVNFM Simulator is necessaryOpen
6VNF Package ManagementProvide VNF Package Management for SVNFMOpen
7Terminate VNFTerminate VNFOpen


  • User Stories

    • TBD


  • Use Cases

    • Choose a use case for demonstrating the VNFM Adapter capabilities
    • Under investigation (will determine soon)

...

    • There is an assumption that SDC transforms the vendor provided VNF package into ONAP-compliant one; i.e., deducing VF Modules based on VNFD ScalingAspects and Delta.
    • If SDC supports the transformation in Dublin time-frame, the transformed CSAR will be imported to SO, and SO VNF- and VF-Module-level workflows will manage VNF and VF Module topology towards SDNC with the following changes - Input from Gil Bullard (AT&T)
      • Today the VNF-level workflow has an embedded per-VF Module loop that a) retrieves the SDNC assignments for that VF Module, and then b) sends those VF Module-level assignments down to the VIM (e.g., OpenStack); the loop then moves to repeat "a" with the next VF Module. 
      • The new VNF-level flow will have the following sequences:
        1. an embedded per-VF Module loop that only retrieves the SDNC assignments for each VF Module; because the VIM is hidden from SO's sight, beneath the VNFM Adapter/VNFM.
        2. After finishing the loop, the SO workflows will send a structure  to the VNFM Adapter that includes the aggregate assignments at the VNF level.
        3. The VNFM Adapter aggregates all the VF-Module level assignments and transforms the assignment data into SOL003 API parameters before sending them to SVNFM
          1. The VNFM Adapter would need to be able to parse the VNF-level assignments structure received from SO to obtain the per-VDU connection VDUconnection point assignments information and any per-VDU parameter information (e.g., hostnames)
          2. In doing so, the VNFM Adapter would need to know to ignore the VF Module groupings of these assignments
          3. Further know how to map the ONAP data structure and parameter names into the ETSI (e.g., VM=VDU, VNFC=VNFC, vNIC=vNIC, etc.). Note that the above assumes that in ONAP, as in ETSI, there will be a one-to-one correspondence between VM/VDU and VNFC.

...

        • Design

          • VNFM Adapter sends a POST request to the "VNF Instances" resource including in the payload body a data structure of type "CreateVnfRequest" (VNFM Adapter → VNFM); POST ../vnf_instances (CreateVnfRequest)

          • VNFM creates a new VNF instance resource in NOT_INSTANTIATED state, and the associated VNF instance identifier (VNFM → VNFM Adapter); 

          • VNFM returns a 201 Created response containing a representation of the VNF Instance resource just created by the VNFM, and provides the URI of the newly-created resource in the "Location" HTTP header (VNFM → VNFM Adapter); 202 Created (VnfInstnace)

          • VNFM sends a VNF Identifier Creation Notification to the VNFM Adapter to indicate the creation of the VNF instance resource and the associated VNF instance identifier (VNFM → VNFM Adapter); Send VnfIdentifierCreationNotification
          • Parameters and data source


ParametersRequired?Data SourceNote
vnfdIdRequireddescriptor_id from VNFD
vnfInstanceNameOptionalUser Input
vnfInstanceDescriptionOptionalUser Input


      • Instantiate VNF

        • HTTP Method Type: POST

        • VNFM Endpoint: /vnf_instances/{vnfInstanceId}/instantiate

        • Request Payload: InstantiateVNFRequest

        • Response Header: 202 success

        • Response Body: not applicable


        • Design
          • VNFM Adapter sends a POST request to the Task resource that represents the lifecycle operation to be executed on the VNF instance, and includes in the payload body a data structure of type InstantiateVNFRequest (VNFM Adapter → VNFM); POST ../vnf_instances/{vnfInstanceId}/instantiate
          • VNFM Creates a "VNF LCM operation occurrence" resource for the request (VNFM → VNFM Adapter)
          • VNFM returns a "202 Accepted" response with an empty payload body and a "Location" HTTP header that points to the new "VNF LCM operation occurrence" resource (VNFM → VNFM Adapter); .../vnf_lcm_op_occs/{vnfLcmOpOccId}
          • VNFM sends to the VNFM Adapter a VNF lifecycle management operation occurrence notification to indicate the start of the lifecycle management operation occurrence with the "STARTING" state
          • VNFM and VNFM Adapter exchange granting information (see Granting section)
          • VNFM sends to the VNFM Adapter a VNF lifecycle management operation occurrence notification to indicate that the VNF LCM operation occurrence enters the "PROCESSING" state
          • VNFM Adapter polls the "VNF LCM operation occurrence" resource to obtain information about the ongoing operation by sending a GET request to the resource that represents the VNF LCM operation occurrence.
          • VNFM returns to the VNFM Adapter information of the operation, such as the operation status, by providing in the payload body a data structure of type "VnfLcmOpOcc"
          • VNFM has finished the operation <<Operation>>
          • VNFM sends a VNF lifecycle management operation occurrence notification to VNFM Adapter to indicate the completion of the lifecycle management operation occurrence with the success state "COMPLETED"
          • Parameters and data source

            ParameterRequired?Data SourceNote
            flavorIdOptionalFrom user input or from the VNFDThis parameter is optional for NBI but it is mandatory for southbound. The value from the user; otherwise it takes the default value from VNFD
            instantiationLevelIdOptionalFrom VNFD
            extVirtualLinksOptionalFrom preload data or user inputThe user input requires UI enhancement - See below for design proposal If the external connection point ip_address_assignment is set to false, extVirtualLink is not necessary since the ip address is set by VIM dynamically.
            extManagedVirtualLinksOptionalfrom user inputExternally-managed internal VL; Not supported in Dublin
            vimConnectionInfoOptionalFrom AAIIn Dublin, the direct resource mode is supported, that means all the VIM resources are created directly by VNFM
            localizationLanguageOptional
            Not supported in Dublin
            additonalParamsOptionalFrom VNFDIt is a mechanism to pass vendor-specific parameters


          • extVirtualLinks data population
            • VNFD does not define external virtual links, but it lists the external virtual links as requirements for the VNF.
            • If the connection point ip_address_assignment is set to false, no extVirtualLinks ip address assignment is necessary.
            • In this case, VIM will assign IP addresses dynamically.
            • This could be an option for the Dublin release for simplifying the solution.

...


      • Terminate VNF

        • HTTP Method Type: POST

        • VNFM Endpoint: /vnf_instances/{vnfInstanceId}/terminate

        • Request Payload: TerminateVnfRequest

        • Response Header: 202 success

        • Response Body: not applicable

        • Design
          • VNF precondition = INSTANTIATED state
          • After the operation, VNF state = NOT_INSTANTIATED 
          • VNFM Adapter sends a POST request to the Task resource that represents the lifecycle operation to be executed on the VNF instance, and includes in the payload body a data structure of type TerminateVNFRequest (VNFM Adapter → VNFM); POST ../vnf_instances/{vnfInstanceId}/terminate
          • VNFM Creates a "VNF LCM operation occurrence" resource for the request (VNFM → VNFM Adapter)
          • VNFM returns a "202 Accepted" response with an empty payload body and a "Location" HTTP header that points to the new "VNF LCM operation occurrence" resource (VNFM → VNFM Adapter); .../vnf_lcm_op_occs/{vnfLcmOpOccId}
          • VNFM sends to the VNFM Adapter a VNF lifecycle management operation occurrence notification to indicate the start of the lifecycle management operation occurrence with the "STARTING" state
          • VNFM and VNFM Adapter exchange granting information (see Granting section)
          • VNFM sends to the VNFM Adapter a VNF lifecycle management operation occurrence notification to indicate that the VNF LCM operation occurrence enters the "PROCESSING" state
          • VNFM Adapter polls the "VNF LCM operation occurrence" resource to obtain information about the ongoing operation by sending a GET request to the resource that represents the VNF LCM operation occurrence.
          • VNFM returns to the VNFM Adapter information of the operation, such as the operation status, by providing in the payload body a data structure of type "VnfLcmOpOcc"
          • VNFM has finished the operation <<Operation>>
          • VNFM sends a VNF lifecycle management operation occurrence notification to VNFM Adapter to indicate the completion of the lifecycle management operation occurrence with the success state "COMPLETED"
          • Note: its communication exchange pattern is the same as the Instantiate VNF.
          • Parameters and Data source

            ParameterRequired?Data SourceNote
            terminationTypeYesfrom user input
            gracefulTerminationTimeoutOptionalfrom user inputThis attribute is only applicable in case of graceful termination. The unit is seconds
            additionalParamsOptionfrom VNFD




      • Delete VNF (Stretch Goal in Dublin)

        • HTTP Method Type: DELETE

        • VNFM Endpoint: /vnf_instances/{vnfInstanceId}

        • Request Payload: not applicable

        • Response Header: 204 success

        • Response Body: not applicable

...