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, terminate/, delete, LCN subscription and LCN

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

      • VNF-level Building Block workflows, leveraging VNFM Adapter 

      • Passing VNF LCM requests to VNFM using VNFM Adapter

  • Note: the followings are candidates for the El Alto release.
    • Provide VNF package management for VNFM

    • Policy-based VNF scaling thru VNFM Adapter

    • Support of remaining SOL003 APIs
    • VNF Package 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 identified as future release work

...

Gliffy Diagram
nameSO VNFM Adapter Architecture Dublin
pagePin617


  • SOL001/SOL004 Standard Conformance

    • VNF Package

      • A VNF Package is a compressed file that contains the following:
        • One VNF descriptor (VNFD)
        • One or more Software Image files
        • Zero or more manifest files
        • Other files
      • Package structure is SOL004 2.5.1 compliant.

      • Note: SDC in Dublin has limitations and restrictions on SOL004 support:
        • SDC does not allow custom directories such as Images, Scripts, Licenses and HOT in the root directory.
        • SDC requires MainServiceTemplate.mf and MainServiceTemplate.yaml in the root directory
        • As a result, in Dublin, the vendor VNF package should follow SDC onboarding rules. These SDC restrictions and limitations plan to be removed in the El Alto release. 
    • Cloud Service Archive (CSAR) format

      • It is a packaging construct defined in SOL004 2.5.1, identified by a .csar suffix on the package file. In SOL004, there are two package options; one with TOSCA-Metadata, one without TOSCA-Metadata directories: 

        • The CSAR file does not contain TOSCA-Metadata directory, the descriptor yaml file is in the root directory of the CSAR.

        • The CSAR file contains TOSCA-Metadata directory, the TOSCA meta file in this directory contains the location and name of the descriptor file denoted by Entry-Definitions

      • In ONAP, the second option (with TOSCA-Metadata) is supported.
      • Note: in SDC El Alto, if the VNF package with certificate and/or signature will be packaged as a zip file. The csar format continues to be used for the package without certificate and/or signature. The zip file without certificate and/or signature will be considered as an HEAT-based package.
    • VNFD

      • It is specified by the SOL001 2.5.1.

      • Note 1: that the input and get_input function would be used by a TOSCA orchestrator at run time to access the selected input parameter. If the deployment is not done by a TOSCA orchestrator, the inputs and get_input function may not be needed. The VNFD design should follow the vendor SVNFM orchestration capabilities. 
      • Note 2: in Dublin, SDC will convert SOL001 VNFD to SDC AID DM, but it is not complete. More mapping design discussions are necessary in El Alto.

...

    • Epic and Use Stories
    • 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 (Not part of Dublin)
    • SDNC Assignment Management
    • VNFM Adapter Locating SVNFM
    • VNF Life-cycle Granting
    • VNFM Adapter Homing Decision for VNF Granting (TBD)
    • SVNFM Simulator


  • Epic


EpicFeatureDescription

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1508

ETSI Alignment - SO SOL003 plugin support to connect to external VNFMs


ETSI Alignment - SO SOL003 plugin support to connect to an external VNFM. 

  • 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/delete, LCN subscription, LCN and VNF package management
    • 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
  •  Provide VNF package management for VNFM (Stretch Goal; under investigation)


  • User Stories


User StoriesFeatureDescription

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1538

Create the Functional test case to validate VNFM Adapter NBI and SOL003-based SBIValidate VNFM Adapter NBI and SOL003-based SBI

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1618

SVNFM Simulator

For integration testing in ONAP, vendor-neutral SVNFM is needed, 

This SVNFM Simulator supports SOL003-based interfaces and message exchange sequences for interface verification.

  • vCPE VNF packages plan to be used for this validation testing.

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1619

Create SO VNFM Adapter Northbound Interface using SwaggerCreate SO VNFM Adapter Northbound Interface using Swagger

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1620

Create Shell Adapter
  • Deployable VNFM Adapter container in ONAP (including docker image and helm chart)
  • Register VNFM Adapter with MSB

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1621

Create placeholder implementation for create VNF (without SVNFM interaction)
  • Create Override YAML in OOM project
  • Define Create/instantiate VNF interface which log the request in SVNFM adapter
  • Create request to VNFM adapter for VNF creation

Note: manual database update to trigger new BB flow and no pre-load

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1622

Check for existing VNF (with SVNFM Interaction)
  • Update Override YAML to add A&AI basic auth and URL
  • Generate 003 APIs using swagger
  • Get the generic-vnf from A&AI
  • Select a VNFM from A&AI (if not already associated with a VNFM)
  • Check for existing VNF

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1623

Handle Create VNF request in VNFM adapter
  • Get VNFD Id from original csar
  • Send create request to the SVNFM
  • Set self-link based on result of create operation

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1624

Instantiate VNF (with SVNFM Interaction)
  • With pre-load data from SDNC based on model name and VNF-type
  • Get the flavor Id from the CSAR
  • Get the VIM info from A&AI
  • Send request to SVNFM
  • Update generic-vnf orchestration status A&AI

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1625

Handle Grant Request (Without Homing/OOF)Reply to grant request based on given VIM info in request

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1626

Monitor Job Status

Monitor Job Status

  • Adapter Store and return job Id ( job ids stored in cache)
  • Introduce Job monitoring handling in flow
  • Handle time out for Job monitoring ( hard coded/configure in yaml timeout)
  • Identify the VNFM and operation Id for the job
  • Send get operation status request to VNFM
  • Return status

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1627

Create relationship between esr-vnfm and generic-vnf in AAI

Create relationship between esr-vnfm and generic-vnf in AAI

  • add a rule to AAI DBEdgeRule ESR
{ "from": "generic-vnf", "to": "esr-vnfm", "label": "tosca.relationships.DependsOn", "direction": "OUT", "multiplicity": "MANY2ONE", "contains-other-v": "NONE", "delete-other-v": "NONE", "prevent-delete": "NONE", "default": "true", "description":"" }
  • read the relationship in the SO VNFM Adapter Adapter

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1628

Handle Notification Subscription

Notification Subscription

  • Update generic-vnf status
  • Create vServers
  • Set OAM IP address - source of which needs to be configurable
  • Update Orch status in A&AI to completed

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1629

Notification Handling - Instantiate

Notification Handling - Instantiate

  • Update generic-vnf status
  • Create vServers
  • Set OAM IP address - source of which needs to be configurable
  • Update Orch status in A&AI to completed

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1630

Monitor Node Status

Monitor Node Status

  • Introduce Node monitoring handling in flow which periodically check orchestration status in A&AI
  • Handle time out for node status handling (hard coded/configurable timeout)

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1631

Handling Homing in FlowHandling Homing in Flow

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1632

Handle VNF delete and termination (without SVNFM integration)

Deleting/Terminating VNF (without SVNFM integration)

  • Define Terminate/Delete VNF interface in VNFM adapter
  • Update or introduce new building block which invoke VNFM adapter for termination

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1633

Terminate VNF (with SVNFM interaction)

Terminate VNF (with SVNFM interaction)

  • Identify the SVNFM to use from A&AI
  • Send terminate request to SVNFM
  • Send delete request to SVNFM
  • Return a job Id
  • Check termination job status in flow

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1634

Notification Handling - Terminate

Notification Handling - Terminate

  • Delete vServers
  • Update generic-vnf orchestration status
  • Check node termination status in flow

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1635

Remove SDNC pre-load and introduce user_param handling

Remove SDNC pre-load and introduce user_param handling

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1636

Handle Failure case where notification is missed (Query VNF)

Handle Failure case where notification is missed (Query VNF)

  • VNFM Adapter expose interface to get of VNF info
  • Flow use VNF info to check status at timeout

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-1637

Spike - investigate OAM IP address handling for generic-vnf

Investigate OAM IP Address handling for generic-vnf

...

Gliffy Diagram
nameVNFM_Adapter_Components
pagePin37


    • SO VNFM Adapter component is a sub component of SO; utilizing docker image and container managed.
      • North Bound Interface (NBI)
        • RESTful APIs that support createVnf (invokes both createVnf and instantiateVnf), grantVnf, TerminateVnf/DeleteVnf
        • Its APIs are SO specific; i.e., not SOL003-based ones; for the NB API details, see the SO VNFM Adapter APIs page.
      • Business Logic layer
        • It is invoked by the NBI and provides business logic for createVnf, instantiateVnf, terminateVnf/DeleteVnf
        • SDNC and A&AI access to collect assignment and VimConnectionInfo
        • Accesses SdcPackageProvider for getting SOL004 package(s) and parameters
        • SdcPackageProvider
          • Supports SOL001/SOL004 package management
          • Provides getPackage, getVnfdId, getFlavorId, getVnfNodeProperty
          • Provides getPackage(s), getVnfd, getArtifactFile for SVNFM
          • Uses SDC Tosca Parser
        • GrantManager
          • Provides requestGrantForInstantiate REST API for SVNFM
          • Invokes OOF for homing decision; HPA support, and/or non-OOF decision
        • SOL003Lcn APIs
          • Supports VnfIdentifierCreationNotification, VnfIdentifierDeletionNotification, VnfLcmOperationOccurrenceNotification
      • SOL003 Communication Layer
        • It is a thin REST client layer, which sends SOL003-compliant requests to SVNFMs and receives responses/notifications from SVNFM.
        • For Grant, it provides the Grant REST endpoint for SVNFM
        • For the SOL003 Southbound API details, see the  SO VNFM Adapter APIs page.

...

Gliffy Diagram
nameSO VNFM Adapter High Level Flow Design
pagePin14


    1. SO BPMN Service workflows dispatch new resource-level workflows based on VNF request parameters (e.g., type, others).
      1. Once a Service workflow chooses a new workflow path for VNFM Adapter, the subsequent requests for the same VNF will follow the new path.
      2. an association between VNF and VNFM will be made in A&AI.
    2. SO BPMN VNF-level resource workflows handle:
      1. Assign VNF to SDNC
      2. Retrieve the VNF Assignment from SDNC
      3. Invoke VNFM Adapter Client with required parameters
    3. VNFM Adapter Client manages:
      1. Populate parameter structures based on data from SO workflows
      2. Invoke VNFM Adapter NBI with required parameters
    4. VNFM Adapter gets GenericVNF from A&AI
    5. VNFM Adapter locates the corresponding VNF and VNFM registration info form A&AI (ESR). Two methods are suggested
      1. Current one: based on VNF NF Type and VNFM Type in A&AI
      2. Could use VNFD vnfm_info:type, VNFM registration values: VNFM type, Cloud Region, vendor - logic is being designed
    6. VNFM Adapter gets VimConnectionInfo from A&AI
      1. Queries A&AI based on the cloud region and tenant id
      2. Builds the VimConnectionInfo based on the type, service-url, user-name, password, cloud-domain, etc.
    7. VNFM Adapter uses network assignment (e.g., IP Address) from SO (thru SDNC) and builds the extVirtualLinks and other parameters.

...