Versions Compared

Key

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

...

Gliffy Diagram
nameONAP ETSI Alignment SOL002 VNF LCM
pagePin6
Gliffy Diagram
size600
nameONAP ETSI Alignment SOL002 VNF LCM Notifications
pagePin910

VNF Indicator Interface (Ve-Vnfm-em)

External VNFM can subscribe to SOL002 VNF Indicator notifications.

SOL002 Adapter reads VNF spesific specific VES events from DMaaP according to subscriptions and converts events to SOL002 interface format and sends as Notify events to external VNFM.

...

Epic

User Story

Description

Is Frankfurt?JIRA
SOL002
Adapter




Epic: SOL002 Adapter will support EM-triggered VNF/VNFC ManagementPartially

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

SOL002 Adapter executes VNF LCM operations towards VNFM

SOL002 Adapter utilizes VNFM exposed SOL002 VNF LCM interface:

  • ONAP DCAE/Policy executes Close Loop based on VNF or VNFC level events
  • ONAP Controller or SOL002 Adapter directly can react to Policy trigger as Policy actor to perform LCM operation for VNF
  • SOL002 Adapter is used to translate LCM action to SOL002 interface format towards external VNFM
  • External VNFM performs VNF resource changes (VNFC or VNF level)
No
SOL002 Adapter subscribes and consumes VNF LCM notifications from VNFM

SOL002 Adapter utilizes VNFM exposed SOL002 VNF LCM interface to subscribe LCM Notifications:

  • SOL002 Adapter subscribes LCM notifications at startup (e.g. listen all notifications)
  • SOL002 Adapter receives LCM notification and emits event to DMaaP e.g. for Policy to consume
  • User should model action Policy to react to these events on ONAP side
  • Based on modeled action some operation can be done. E.g. with ONAP Controller to configure VNF. Clean Close loop etc.
Yes

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

SOL002 Adapter receives subscription and sends VNF Indicator notifications to VNFM

SOL002 Adapter exposes VNF Indicator subscription endpoint and sends Indicator notifications to external VNFM:

  • VNFM calls SOL002 Adapter to subscribe VNF Indicator notifications
  • SOL002 Adapter stores subscriptions according to standard
  • SOL002 Adapter starts to listen DMaaP events based on subscription
  • SOL002 Adapter consumes any matching events and translates events to SOL002 Indicator notification and sends to subscriber
No
SOL002 Adapter receives VNF configuration request from VNFM

SOL002 Adapter exposes VNF configuration endpoint for external VNFM:

  • SOL002 Adapter performs EM role (Ve-Vnfm-em)
  • VNFM calls SOL002 Adapter VNF configuration interface
  • SOL002 Adapter translates the configuration request into APPC/CDS/GNFC - specific API-call
  • APPC/CDS/GNFC configures specific VNF or VNFC accordingly
No
Documentation for SOL002 Adapter featuresDocumentation for SOL002 Adapter featuresYesNo

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









...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameSOL002 adapter architecture
simpleViewerfalse
diagramWidth879877
revision1016

  1. SOL002Adapter will be the SO microservice component

  2. SOL002Adapter will be registered in the Microservice Bus (via helm chart)
  3. SOL002Adapter will be registered manually in the External System Register
  4. SOL002Adapter on startup will use MSB ESR to get external VNFM data
  5. SOL002Adapter on startup will register in VNFM for all LCM notifications
  6. BPMN will trigger LCM operation which will go to SOL003Adapter
  7. SOL003Adapter triggers the LCM flow in VNFM
  8. ETSI LCM notification is sent from VNFM and goes to SOL002Adapter
  9. SOL002Adapter will query A&AI to get VNF data
  10. SOL002Adapter will construct and publish DMaaP ONAP event via DCAE/DMaaP. At the current phase it will be in proprietary format DMaaP event t but later on it will evolve to VES event.
  11. Policy will consume DMaaP event
  12. Policy will call configuration component to configure VNF
  13. For the integration testing, the VNFM Simulator in the CSIT container will be used

...

The following SOL002 operations will be supported:

API ActionActorMethodURIDescription
Subscribe for LCM notificationsSOL002 Adapter → VNFM POST
/vnflcm/v1/subscriptions (LccnSubscriptionRequest)
To create subscription for LCM notification
Notify on VNF lifecycle changesVNFM → SOL002 AdapterPOST
/lcm/v1/vnf/instances/notifications (VnfLcmOperationOccurrenceNotification)
To notifify SOL002 adapter on VNF lifecycle changes





SOL002 Operation Sequence Flows

...

Initially (for Frankfurt) SOL002_Adapter will be located in SO. Later on it has to be moved to other component (e.g. GNFC).

Development

The Ve-Vnfm-Adapter (SOL002Adapter) application is built using spring-boot with the web starter.

Subscription

Several times it tries to connect to AAI and get the list of resources with the type VNFM:

GET: https://aai.onap:8443/aai/v15/external-system/esr-vnfm-list

GET: https://aai.onap:8443/aai/v15/external-system/esr-vnfm-list/esr-vnfm/{name}?depth=1

Then the adapter connects to the URLs of all VNFMs in the list. It sends them its URL address and receives the subscription id.

Later, from time to time, it connects again to the VNFMs and checks if the subscription id is valid. 

When it stops to be valid, it tries to re-subscribe for this VNFM again.

Notification

Whenever a VNFM receives an LCM Action message, the VNFM sends the information to the URL of the Ve-Vnfm-Adapter application that had subscribed to this VNFM.

When a Ve-Vnfm-Adapter application receives the Notification it sends a message about it to the Policy through the DMaaP.


DMaaP Message Format


Below is a message (the values are sample) sent over to DMaaP.


Code Block
{
  "closedLoopControlName": "ClosedLoopControlName",
  "closedLoopAlarmStart": 1589825445,
  "closedLoopEventClient": "microservice.stringmatcher",
  "closedLoopEventStatus": "ONSET",
  "requestID": "8478ff7d-409d-4b7d-b932-f09ab54765ab",
  "target_type": "VNF",
  "target": "generic-vnf.vnf-id",
  "AAI": {
    "vserver.is-closed-loop-disabled": false,
    "generic-vnf.vnf-id": "<etsiLcmEventId>"
  },
  "from": "ETSI",
  "version": "1.0.2",
  "etsiLcmEvent": {
    "id": "<etsiLcmEventId>",
    "notificationType": "VnfLcmOperationOccurrenceNotification",
    "subscriptionId": null,
    "timeStamp": null,
    "notificationStatus": "RESULT",
    "operationState": "COMPLETED",
    "vnfInstanceId": "2124DEPF",
    "operation": "INSTANTIATE",
    "isAutomaticInvocation": null,
    "vnfLcmOpOccId": "86d3de41-a7f7-48eb-9868-5b103dc36d26",
    "affectedVnfcs": [
      {
        "id": "abc123",
        "vduId": "vdu987",
        "changeType": "ADDED",
        "computeResource": {
          "vimConnectionId": "vim001"
        }
      }
    ],
    "affectedVirtualLinks": null,
    "affectedVirtualStorages": null,
    "changedInfo": null,
    "changedExtConnectivity": null,
    "error": null,
    "_links": {
      "vnfInstance": {
        "href": "https://so-vnfm-simulator.onap:9093/vnflcm/v1/vnf_instances/2124DEPF"
      },
      "subscription": null,
      "vnfLcmOpOcc": {
        "href": "https://so-vnfm-simulator.onap:9093/vnflcm/v1/vnf_lcm_op_occs/86d3de41-a7f7-48eb-9868-5b103dc36d26"
      }
    }
  }
}