Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introduction

This page given an high level overview of Notifications used by CPS/NCMP for communication wit system outside CPS/NCMP about data changes.
There are also notifications used for asynchronous  method calls but there are kept out this overview for the sake of simplicity.

Issues and Decisions

Issue

Notes

Decision

Topic names

  • for now, between [#13b, #2 and #12] only #12 is/can be changed that won’t impact clients

  • #12 is a starting point to be changed as part of ‘inventory-events’ topic as it was requested and not used by any client at the moment

  • ‘inventory-events’ relates to all events that is related to the meta-data of a cm handle

Topic env naming convention

  • Current topic envs cannot be change and needs agreement with topic

  • from here on, spring default naming convention will be used based on the application.yaml hierarchy structure

Schema names

  • to be proposed and agreed with stakeholders

Schema File names

Schema file names will be based on schema names

Producer vs Consumer

Consumer overpowers Producers

No use of term Publisher no more - use Producer instead

Schema folder structure


See also: CPS-1489: Overview of Kafka Topics in CPS Components

Component Diagram

Gliffy
macroId968c4ebd-26d8-425e-b89d-e858df3851f3
displayNameUpdated CPS Notifications Overview
nameCPS Notifications Overview
pagePin27
version36


Event Descriptions

#

Description

Source

Topic

Destination

Trigger

R12 Work Item

Cloud
Event

Notes

1(a)

DmiAsyncRequestResponseEvent

(NCMP-Async Event)

DMI

ncmp-async-m2m

NCMP

DMI async request response

No

1(b)

NcmpAsyncRequestResponseEvent

(NCMP-Async Event)

NCMP

Client target topic

External (NCMP) Clients

DMI async request response

No

1(c)

DataOperationEvent

(NCMP-Async Event)

DMI

ncmp-async-m2m

NCMP

Batch data operation

Yes

1

CPS Temporal, Removed

(d)

DataOperationEvent

(NCMP-Async Event)

NCMP

Client target topic

External (NCMP) Clients

Yes

2

NCMP CM-Handle LCM (LifeCycle Management) events

NCMP

ncmp-events

External (NCMP) Clients

NCMP CM-Handle State Change
(registration use-case)

N/A

No*

  1. See also CM-Handle State Changes and Notifications Overview

  2. On by default, can be disabled using notification.enabled

  3. AlternateId has been added (Spring 2024)

  4. *Cloud Version Pending (blocked by Ericsson as it is backward incompatible) see https://gerrit.onap.org/r/c/cps/+/137080

3

NCMP Data AVC (forwarding #5)NCMP
  • determined by ncmp-subscription(s) 
  • 0-n topics possible*
External (NCMP) ClientsDMI Data AVC on passthrough datastore & NCMP Subscription#6a
No

The notifications should be on the set of topics specified by the union of all relevant subscriptions. This is why there is a difference between the subscription model (visible to a client/subscriber) and the subscription model used internally – The notification should not need to calculate, only look up the set of topics to emit on.
One cm-handle can have 0-many topics
The 'predicate' information is only to be forwarded to the DMI Plugin does not need to be stored (TBC with kieran mccarthy )

4

CPS-Core Data AVC

CPS-Core

  • determined by cps-core-subscription(s) 
  • 0-n topics possible*

Priyank Maheshwari to update

External Clients

Data Change & CPS-Core Subscription

#7

No

Any client can subscribe to CPS-Core for any data subscription. The subscription wil include the topic to be used

5DMI Data AVC (Attribute Value Change)DMI-PluginTBDNCMPDepends on DMI-Plugin
  • ONAP: VES Events from Device
#6a
#7Yes
  • Format (schema) of the Event is defined by (in) NCMP
  • Topic names is defined by NCMP
  • For passthrough datastore NCMP will emit a NCMP Data AVC (#3). Do we need to check tHE Datastore or just the cache enabled flag?
  • If data is cached this event should lead to a CPS-Core(Cache) update and a CPS-Core Data AVC (#4)

    6

    VES Event

    ONAP Devices


    ONAP DMI Plugin

    Change on Device

    #7

    No

    1. Open issue: how to translate an ONAP device ID to a CM Handle ID?!

    In-Progress

    Not implemented

    7(a)

    Subscription Notification

    Subscription 10BatchOperationNCMPClient Provided TopicExternal ClientsYes

    Event

    Suggestion: ‘subscription maintenance’

    DME
    (Data Mgmt and Exposure)

    subscription

    NCMP

    User driven? CRUD operation Notification Subscriptions

    #6b

    Yes

    See also

    The source can be anything that is authorized and knows the subscription event schema. It will be up to the encapsulating 'product' e.g. ONAP to decide if applications should use this interface directly. 

    From NCMP perspective this is an access control challenge – If you are authorized to write to the cm-avc-subscription topic, NCMP will react

    7(b)

    NCMP

    ncmp-dmi-cm-avc-subscription

    DMI

    7(c)

    DMI

    dmi-ncmp-cm-avc-subscription

    NCMP

    7(d)

    NCMP

    subscription-response

    DME

    8

    Proprietary AVC

    Proprietary Devices

    N/A

    Proprietary DMI Plugin

    Change on Device

    N/A

    No

    Irrelevant to ONAP Solution might not even by an 'event'. As long as it can be converted into a DMI Data AVC (#5)

    9

    VES Event

    ORAN Devices


    Proprietary DMI Plugin

    Change on Device


    No

    Similar to #6 above. Main fields:

    • href → can be mapped to cm-handle by plugin (without additional information from other fields)

    • path → can be mapped to xpath by plugin 

    In-Progress

    Not implemented

    11

    TrustLevel Changes

    DMI

    dmi-device-heartbeat

    NCMP



    Yes


    12

    NCMP-AVC

    Inventory Event

    NCMP

    cm

    ncmp-inventory-events

    External Clients



    Yes

    April 2024,: Only used to forward TrustLevel Changes

    13(a)

    DMI-CM Event

    DMI/Devices

    dmi-cm-events

    NCMP

    Any change in the configuration in the devices


    Yes

    This is to notify NCMP about any CM change that happened in the network.

    This event is also supposed to be used together with the Cm Subscriptions( to route to the defined topic - future work )

    13(b)

    Cm Data Change

    NCMP

    cm-events

    *tbd

    External Clients

    Any change in the configuration in the devices and NCMP forwards to this topic


    Yes

    Whatever event is received from 13a is been forwarded by NCMP to external clients.

    BatchOperation

    NCMP

    Client Provided Topic

    External Clients



    Yes


    previously #10 (see old diagram)

    NCMP Data AVC (forwarding #5)

    NCMP

    • determined by ncmp-subscription(s) 

    • 0-n topics possible*

    External (NCMP) Clients

    DMI Data AVC on passthrough datastore & NCMP Subscription

    #6a

    No

    The notifications should be on the set of topics specified by the union of all relevant subscriptions. This is why there is a difference between the subscription model (visible to a client/subscriber) and the subscription model used internally – The notification should not need to calculate, only look up the set of topics to emit on.
    One cm-handle can have 0-many topics
    The 'predicate' information is only to be forwarded to the DMI Plugin does not need to be stored (TBC with kieran mccarthy )

    previously #3 (see old diagram)

    DMI Data AVC (Attribute Value Change)

    DMI-Plugin

    TBD

    NCMP

    Depends on DMI-Plugin

    • ONAP: VES Events from Device

    #6a
    #7

    Yes

    1. Format (schema) of the Event is defined by (in) NCMP

    2. Topic names is defined by NCMP

    3. For passthrough datastore NCMP will emit a NCMP Data AVC (#3). Do we need to check tHE Datastore or just the cache enabled flag?

    4. If data is cached this event should lead to a CPS-Core(Cache) update and a CPS-Core Data AVC (#4)

    previoulsy #5 (see old diagram)


    NCMP (Northbound)

    event #

    1(b)

    1(d)

    2

    12

    13(b)

    7(d)

    topic name

    client provided topic

    client provided topic

    ncmp-events

    ncmp-inventory-events

    cm-events

    subscription-response

    topic env

    -

    -

    LCM_EVENTS_TOPIC

    • use spring default naming convention

    NCMP_CM_EVENTS_TOPIC

    CM_SUBSCRIPTION_NCMP_OUT_TOPIC

    topic yaml

    -

    -

    app.lcm.events.topic

    app.ncmp.avc.inventory-events-topic

    app.ncmp.avc.cm-events-topic

    app.ncmp.avc.cm-subscription-ncmp-out

    event name

    NcmpAsyncRequestResponseEvent

    DataOperationEvent

    CM handle LCM Event

    Inventory Event

    CM Data Change

    Subscription Notification Event?

    schema id

    urn:cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1

    urn:cps:org.onap.cps.ncmp.events.async:data-operation-event-schema:1.0.0

    urn:cps:org.onap.ncmp.cmhandle.lcm-event:v1

    urn:cps:org.onap.cps.ncmp.events:inventory-event-schema:1.0.0

    urn:cps:org.onap.cps.ncmp.events:avc-event-schema:1.0.0

    urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-ncmp-out-event-schema:1.0.0

    schema folder

    schemas/

    schemas/async/

    schemas/ncmp/avc/

    /schemas/dmi/cm-events/

    schemas/ncmp/avc/

    schema file name

    ncmp-async-request-response-event-schema-v1.json

    data-operation-event-schema-1.0.0.json

    lcm/lcm-event-schema-v1.json

    inventory-event-schema-1.0.0.json

    avc-event-schema-1.0.0.json

    ncmp-out-event-schema-1.0.0.json

    Producer package

    org.onap.cps.ncmp.impl.data.async

    org.onap.cps.ncmp.impl.data.async

    org.onap.cps.ncmp.impl.inventory.sync.lcm.

    org.onap.cps.ncmp.utils.events.

    org.onap.cps.ncmp.impl.cmnotificationsubscription.cmavc.

    org.onap.cps.ncmp.impl.cmnotificationsubscription.ncmp.

    Producer

    AsyncRestRequestResponseEventConsumer

    Forwarded by

    DmiAsyncRequestResponseEventConsumer

    DataOperationEventConsumer

    Forwarded by

    DataOperationEventConsumer

    LcmEventsService(calls Events publisher)

    new: call it producer

    CmAvcEventPublisher

    new: call it

    inventoryEventProducer

    Forwarded by

    CmAvcEventConsumer

    NcmpOutEventProducer

    <TBD>Producer

    CPS → Client Apps

    event #

    3

    topic name

    cps-data-updated-events

    topic env

    CPS_CHANGE_EVENT_TOPIC

    topic yaml

    app.cps.data-updated.topic

    event name

    CPS Data AVC (Other DS)

    schema id

    urn:cps:org.onap.cps:data-updated-event-schema:1.0.0

    schema folder

    /schemas/cps.dataupdated/

    schema file name

    cps-data-updated-event-schema-1.0.0.json

    Producer

    org.onap.cps.events.CpsDataUpdateEventsService

    DME → NCMP

    event #

    7

    topic name

    subscription

    topic env

    CM_SUBSCRIPTION_NCMP_IN_TOPIC

    topic yaml

    app.ncmp.avc.cm-subscription-ncmp-in

    event name

    Subscription Notification

    schema id

    urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-ncmp-in-event:1.0.0

    schema folder

    schemas/ncmp/avc/

    schema file name

    ncmp-in-event-schema-1.0.0.json

    Consumer

    org.onap.cps.ncmp.impl.cmnotificationsubscription.ncmp.NcmpInEventConsumer

    NCMP → DMI(s)

    event #

    7(b)

    topic name

    ncmp-dmi-cm-avc-subscription

    topic env

    CM_SUBSCRIPTION_DMI_IN_TOPIC

    topic yaml

    app.ncmp.avc.cm-subscription-dmi-in

    event name

    Subscription Notification Event?

    schema id

    urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-dmi-in-event-schema:1.0.0

    schema folder

    schemas/ncmp/avc/

    schema file name

    dmi-in-event-schema-1.0.0.json

    Consumer

    org.onap.cps.ncmp.impl.cmnotificationsubscription.dmi.DmiInEventProducer

    DMI(s) → NCMP

    event #

    1(a)

    1(c)

    7(c)

    11

    13(a)

    topic name

    ncmp-async-m2m

    ncmp-async-m2m

    dmi-ncmp-cm-avc-subscription

    dmi-device-heartbeat

    dmi-cm-events

    topic env

    NCMP_ASYNC_M2M_TOPIC

    NCMP_ASYNC_M2M_TOPIC

    CM_SUBSCRIPTION_DMI_OUT_TOPIC

    DMI_DEVICE_HEARTBEAT_TOPIC

    DMI_CM_EVENTS_TOPIC

    topic yaml

    app.ncmp.async-m2m

    app.ncmp.async-m2m

    app.ncmp.avc.cm-subscription-dmi-out

    app.dmi.device-heartbeat.topic

    app.dmi.cm-events.topic

    event name

    NCMP-Async Event

    DmiAsyncRequestResponseEvent

    NCMP-Async Event

    DataOperationEvent

    Subscription Notification Event?

    TrustLevel

    CM Data Change

    schema id

    urn:cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1

    urn:cps:org.onap.cps.ncmp.events.async:data-operation-event-schema:1.0.0

    urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-dmi-out-event-schema:1.0.0

    urn:cps:org.onap.cps.ncmp.events:device-trust-level-event-schema:1.0.0

    urn:cps:org.onap.cps.ncmp.events:avc-event-schema:1.0.0

    schema folder

    schemas/

    schemas/async/

    schemas/ncmp/avc/

    schemas/dmi/device-heartbeat/

    /schemas/dmi/cm-events/

    schema file name

    dmi-async-request-response-event-schema-v1.json

    data-operation-event-schema-1.0.0.json

    dmi-out-event-schema-1.0.0.json

    device-trust-level-event-schema-1.0.0.json

    avc-event-schema-1.0.0.json

    *event is consumed as is

    Consumer

    org.onap.cps.ncmp.impl.data.async.AsyncRestRequestResponseEventConsumer

    org.onap.cps.ncmp.impl.data.async.DataOperationEventConsumer (consumes and forwards)

    org.onap.cps.ncmp.impl.cmnotificationsubscription.dmi.DmiOutEventConsumer

    org.onap.cps.ncmp.impl.inventory.trustlevel.DeviceTrustLevelMessageConsumer

    org.onap.cps.ncmp.impl.cmnotificationsubscription.cmavc.CmAvcEventConsumer

    **Old diagram
    Old Component DiagramImage Added