Table of Contents |
---|
References
...
CM Event Specification Outline
{
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "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:
+---n push-update
...
Code Block | ||||
---|---|---|---|---|
| ||||
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>
...
'operation' type definition
Event Payload Example
...
{
...
enumeration
| +--ro value? <anydata>
+--ro incomplete-update? empty |
'operation' Type Definitions
Operation | Description |
---|---|
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 |
insert | Delete a data resource if it already exists. If it does not exists, |
merge | Merge 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 |
remove | Remove a data resource if it already exists |
Event Payload Example
Code Block | ||||
---|---|---|---|---|
| ||||
{ "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" |
...
: "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 | ||||
---|---|---|---|---|
| ||||