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

Compare with Current View Page History

« Previous Version 11 Next »

References

CPS-1065 - Getting issue details... STATUS

Open Issues & Decisions

#IssueNotesDecision
1List scenariosNeed to clarify scenariosRefer to Internal study
2Topicswhat topics are used in what scenario (topic for each Datastore ?)

See Topics section below.


All NCMP notifications to be published on the public cm-events topic by default regardless of data type, notification type or datastore the change came from.  This topics acts as the TBAC_ALL topic.

cm-events topic name should be configurable in deployment settings.


Future : In future NCMP shall publish the notification based on TBAC where the notification is published on the appropriate target group topic cm-events[-<target-group-name>] matching the target group(s) the data type(s) is associated with.  Not in scope of this story.

3Handle unknown event schemasWrap event?Yes - see below.












Event Flow Sketch


CM Event Specification Outline

{

  "eventId"                           : "9999",                                                                        # some generic event uuid generated by DMI Plugin
  “eventCorrelationId”      : “cmhandleId-001”,                                                   # cmhandleId used for event correlation
  "eventTime"                     : "2021-11-16T16:42:25-04:00",
  "eventSource"                  : "org.onap.ncmp",                                                  
  "eventType"                      : "org.onap.ncmp.cm-network-avc-event",           # event type for async request response events 
  ”eventSchema”                 : “rfc8641",           # event schema for async request response events 
  ”eventSchemaVersion”    : “v1",                                                                        # event schema version

  "event":  {
              <RFC 8641-yang-datastore-notification-payload>                               # See next slide for example
   }

}

RFC 8641 : yang-datastore notification definition

notifications:

          +---n push-update

          |  +--ro id?                   sn:subscription-id

          |  +--ro datastore-contents?   <anydata>

          |  +--ro incomplete-update?    empty

          +---n push-change-update {on-change}?

             +--ro id?                   sn:subscription-id

             +--ro datastore-changes

             |  +--ro yang-patch

             |     +--ro patch-id    string

             |     +--ro comment?    string

             |     +--ro edit* [edit-id]

             |        +--ro edit-id      string

             |        +--ro operation    enumeration

             |        +--ro target       target-resource-offset

             |        +--ro point?       target-resource-offset

             |        +--ro where?       enumeration

             |        +--ro value?       <anydata>

             +--ro incomplete-update?    empty


'operation' type definition

Event Payload Example

 Proposed CM event

{

  "eventId"                      : "9999",                                                                      # some generic event uuid generated by DMI Plugin
  “eventCorrelationId”     : “cmhandleId-001”,                                                   # cmhandleId used for event correlation
  "eventTime"                  : "2021-11-16T16:42:25-04:00",
  "eventSource"               : "org.onap.ncmp",                                                  
  "eventType"                  : "org.onap.ncmp.cm-notification-event",                 # event type 
  ”eventSchema”             : “org.onap.ncmp:cm-notification-event",                 # event schema   
  ”eventSchemaVersion” : “v1",                                                                         # event schema version

  "event": {

"push-change-update" : {

    "datastore-changes" : {
      "ietf-yang-patch:yang-patch" : {
          "patch-id" : "34534ffd98",  # Some unreadable patch id generated by the machine 
          "edit" : [
               {
                  "edit-id" : "ded43434-1",
                  "operation" : "create",
                   "target" : "/_3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrcelldu:NRCellDU=1",
                   "value" : {
                          "_3gpp-nr-nrm-nrcelldu:NRCellDU" :  [
                               {

                                 "id" : 1,
                              }
                           ]

                      }
              },

               {
                  "edit-id" : "ded43434-1-1",
                  "operation" : "create",
                   "target" : "/_3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrcelldu:NRCellDU=1/attributes",
                   "value" : {
                          "attributes" :  {
                                  "cId" : 511,
                                  "userLabel" : "some-cell-label",
                                  ...
                              }

                      }
              },


              {
                  "edit-id" : "ded43434-2",
                  "operation" : "create",
                   "target" : "/_3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrcelldu:NRCellDU=1/attributes/pLMNIdList=35301",
                   "value" : {
                         "_3gpp-nr-nrm-nrcelldu:pLMNIdList" : [
                               {

                                      "mcc" : 353,
                                      "mnc" : "01",
                                      ...

                                 }

                              }
                         ]
                      }
              },
              {
                  "edit-id" : "ded43434-3",
                  "operation" : "merge",
                   "target" : "/_3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrcelldu:NRCellDU=3/attributes",
                   "value" : {
                         "attributes" : 
                               {               

                                  "cId" : 412,
                                  "userLabel" : "yet-another-cell-label",
                                   ...
                              }
                    }
              },
              {
                  "edit-id" : "ded43434-4",
                  "operation" : "delete",
                   "target" : "/_3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrcelldu:NRCellDU=4"
            }
        ]
     }
   }
 }

    }
}

Topics 

Topic types

    - cm-events[-<targetgroup>] : topic for publication of events from NCMP to clients (suggest to rename existing topic from 'ncmp-events' to cm-events).  In preparation to future needs the there may be separate topics for different security groups.  NCMP solution should consider this upfront.  By default cm-events is the default topic where ALL events are published.  Different client may subscribe to different topics.  It is their responsibility to subscribe to the appropriate topics as new security groups come into existance.  Again, for now the only topic in scope is the cm-events topic.
    - cm-avc-subscription : topic for avc event subscriptions.  This topic may be defined externally to NCMP.  If external then it should be possible to tell NCMP the topic name and where to find it.
     - ncmp-dmi-cm-avc-events : internal topic for comms between dmi-plugin ↔ ncmp for avc and subscription events

Topic partitioning

All events for the same cmhandleId should be sent to the same partition.  This will guarantee ordering.  Ordering is only guaranteed per topic, not across topic (future consideration).

Subscription Proposal

TBD



  • No labels