Versions Compared

Key

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

...

CM Event Specification Outline

{

Code Block
titleCM Event Specification Outline
collapsetrue
{

  

...

"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”           : “org.onap.ncmp:cm-network-avc-event.rfc8641",   # event schema for async request

...

 response events 
  ”eventSchemaVersion”    : “1.0",                                       

...

   # event schema version

  "event":  {

...


              <RFC 8641-yang-datastore-notification-payload>                                   # See following sections for example

...


   }

...



}


RFC 8641 : yang-datastore notification definition

notifications:


Code Block
titleYang-Datastore Notification Definition
collapsetrue
        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?

...

             |        +--ro value?       <anydata>

...

       enumeration
             |        +--ro value?       <anydata>
             +--ro incomplete-update?    empty

'operation' Type Definitions

OperationDescription
create

create a new data resource if it does not already exist. If it already exists, return an error

delete

delete a data resource if it already exists. If it does not exists, return an error

insertDelete a data resource if it already exists. If it does not exists,
mergeMerge the edit value with the target data resource; create if it does not already exist
move
Reorder the target data resource
replace

Replace the target data resource with the edit value

removeRemove a data resource if it already exists

Event Payload Example


Code Block
languagexml
titleProposed CM Event (paylaod example)
{
  "eventId"                : "9999",                                         # some generic event uuid generated by DMI Plugin
  “eventCorrelationId”     : “cmhandleId-001”,                               # cmhandleId used for event correlation
  "eventTime"              : 

'operation' type definition

Image Removed

Event Payload Example

...

{

...

"2021-11-16T16:42:25-04:00",

...


  "eventSource"            

...

: "ncmp-datastore:passthrough-operational",    

...

   # eventSource always specifies the datastore where the event is

...

 emanating from                                      
  "eventType"             

...

 : "org.onap.ncmp.cm-network-avc-event",     

...

      # event type 
  ”eventSchema”            : “org.onap.ncmp:cm-network-avc-event.rfc8641",   # event schema   

...


  ”eventSchemaVersion”     : “1.0",           

...

                               # 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"

...


            }

...


        ]

...


     }

...


   }

...


 }

...



    }
}
}
 Proposed CM event


CM AVC Event Subscription 

A client app may subscribe on change notification on different datastores.  From a client app perspective each client subscription will be treated independently BUT internally the subscriptions will be merged and published on one or more collective CM topics based on target groups.  The CM ALL target group is the default and ALL CM notifications are directed to the associated cm-events topic.  
iiii
mmmm

Create Subscription

The Create Subscription flow is as follows : 

...

The subscription may be different on the device if setting up a subscription toward different datastores.  If the device only supports running datastore (non-NMDA) then all subscriptions are directed toward the running datastore regardless of whether passthrough-running or passthrough-operational is specified in the subscription.  It would mean that the same notification would be sent twice but the eventSource would differ (passthrough-operational and passthrough-running).  However, this is a concern for the dmi plugin only - not for NCMP.

Code Block
titleYang-datastore Notification Definition
collapsetrue