...
Subscription Creation Events Handling
Assumptions
# | Assumption | Notes |
---|---|---|
1 | Forwarded Subscription Event Responses communicates asynchronously. ( |
from DMI Plugins to NCMP) |
Once off timer would be responsible to |
consume messages |
into NCMP. Then, the NCMP would wait a response(s) within the timeframe agreed on. (30 seconds) TBD: A single step response |
will be provided in the solution. Since, |
ACK is not feasible as of now. | ||
2 | The NCMP component should create Subscription Create Outcome message and publish it into topic (cm-avc-subscription-response) in which Client Apps consumed from. | The Outcome Response schema need to be decided on. |
Issues & Decisions
# | Issue | Notes | Decision |
---|---|---|---|
1 | Possible 'timeframe' period for timeout | DMI to NCMP response timeout | 30 sec (Configurable param/property) |
2 | Response in two steps or in a single step should be discussed with shareholders. | from DMI to NCMP responses | Is the ACK would be required? |
3 | Response schema should be decided | from DMI to NCMP response schemas should be decided for both two steps response and single step response
| |
4 | Subscription event outcome schema should be decided | from DMI to Client Apps
|
...
Client apps e.g. DME would publish Subscription Create Event to the topic cm-avc-subscription.
Message Format (Client → NCMP):Code Block language text title Create Event from Clients collapse true { "version": "1.0", "eventType": "subscriptionCreated", "event": { "subscription": { "clientID": "SCO-9989752", "name": "cm-subscription-001" }, "dataType": { "dataspace": "ALL", "dataCategory": "CM", "dataProvider": "CM-SERVICE" "schemaName": "org.onap.ncmp:cm-network-avc-event.rfc8641" "schemaVersion": "1.0" }, "predicates": { “targets” : [“sdsd”, “slada”, “ccde3”] # cmhandle targets "datastore": “passthrough-operational", "datastore-xpath-filter": "//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/ _3gpp-nr-nrm-nrcelldu:NRCellDU/ | //_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction// | //_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU// | //_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier//” } }
The NCMP would consume the messages from cm-avc-subscription topic, and create Forwareded Forwarded Subscription Event.
Message Format (NCMP→ DMI Plugin):
Code Block language text title NCMP to DMI Message Format collapse true { "version": "1.0", "eventType": "subscriptionCreated", "event": { "subscription": { "clientID": "SCO-9989752", "name": "cm-subscription-001" }, "dataType": { "dataspace": "ALL", "dataCategory": "CM", "dataProvider": "CM-SERVICE", "schemaName": "org.onap.dmi:cm-network-avc-event.rfc8641", "schemaVersion": "1.0" }, "predicates": { "targets": [{ “targets” : [ { cmhandle : “sdsd”"cmhandle": "sdsd", cmhandle-properties” "cmhandle - properties": { “prop1” : “prop-value” "prop1": "prop - value" } }, { { cmhandle : “slada”"cmhandle": "slada", cmhandle-properties” "cmhandle - properties": { “prop-x” : “prop-valuex” "prop - x": "prop - valuex" } }, { { cmhandle : “ccde3”"cmhandle": "ccde3", cmhandle-properties” "cmhandle - properties": { “prop-y” : “prop-valuey” "prop - y": "prop - valuey" } } ]], # cmhandle targets "datastore": “passthrough"passthrough-operational", "datastore-xpath-filter": "//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/", "_3gpp-nr-nrm-nrcelldu":NRCellDU/ | //_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction// | "NRCellDU", //"_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU// |gnbcuupfunction": "GNBCUUPFunction", //"_3gpp-nr-nrm-nrsectorcarrier": "NRSectorCarrier//”" } } }
TBD Further with external team: Putting predicates back to NCMP does not sense. Since, the predicates and CM Handles are clashing.
- The communication between NCMP and DMI-Plugin would publish messages (Forwarded Subscription Event) to the topic ncmp-dmi-cm-avc-subscription via once-off timer. be synchronously.
- The DMI-Plugin would publish responses in a single step. ACK feature is not feasible as of now.
- Then, the NCMP would wait a response(s) within the timeframe (timeout) agreed on e.g. 30 seconds via once-off timer.
- Response in two stepsAck (response with DMI plugin detais e.g. DMI X and Y has started to processing)a single step
- Process result response: 2 out of 3 DMI has responedresponded. (The percentage is %66.)
- Process result response: 2 out of 3 DMI has responed. (The percentage is %66.)In order to calculate the response ratio, CPS inventory CmHandleQueries could be used.
- Response in two stepsAck (response with DMI plugin detais e.g. DMI X and Y has started to processing)a single step
Finally, the NCMP
plugincreate outcome message, and publish it to the topic cm-avc-subscription-response.
The outcome message format could be like:Code Block language text collapse true Possible options for initial response and further updates Status only: COMPLETED / PARTIALLY_COMPLETED Status and % -completed based on # Participating DMI-plugins Status and %-completed based on #cm-handle-ids registered (and participating) per Plugin Status and list of m-handle ids for which NCMP got a response