Versions Compared

Key

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

...

  1. NCMP is configured at startup with the cm subscription topic information (cm topic name, kafka addressing info).
  2. Some app sends a 'CreateSubscription' event to the public cm subscription topic (cm-event-subscription).

    UsecaseParticipantsProtocolSchemaExample
    Create Subscriptionclient app → ncmp

    Protocol : Kafka Event
    Topic : cm-avc-subscription

    Code Block
    languagexml
    titleEvent Schema
    collapsetrue
    {
      "version": "<event type version>",
      "eventType": "subscriptionCreated",
      "event": {
        "subscription": {
          "clientID": "<unique identifier for the client >",
          "name": "<unique subscription name per client>",
          "isTagged": "<yes|no>, optional parameter, default is no"
        },
        "dataType": {
          "dataspace": "<data space>",
          "dataCategory": "<data category type>",
          "dataProvider": "<data provider type>"
          "schemaName": "<schema name>"
          "schemaVersion": "<schema version>"
        },
        "predicates": {
          "<parameter>": "<value>",
          "param2": [
            "value21",
            "value22"
          ]
    
        }
      }
    }



    Code Block
    languagexml
    titleCreate Example
    collapsetrue
    {
      "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": {
            "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//”  
    
        }
      }
    }


                   Table 1 : Create Subscription request from App

  3. NCMP receives consumes the create cm subscription event and processes it as follows : 
    1. Persist the subscription and cm-subscription-filter information to db
    2. Read all CM handles that match the cm-filter-subscription (model matching, cmhandleId matching)
    3. If a subscription is already ongoing for the same cmhandle datastore then separate them from the list for later processing (after the existing ongoing cmhandle subscription has completed - See table 3 below, administrativeState : running->active).
      Use the administrativeState of cmhandle 'subscriptions' as shown in table 3 below.  This can be used to know if a cmhandle subscription update is ongoing.
    4. Merge the existing cmhandle filter (if one exists from a previous subscription) with the new cm-filter-subscription
    5. Record the cmhandles whose existing cm subscription filter has been modified after filter merging in step c)
  4. For the cmhandle(s) with a new or modified subscription filter, group them according to their controlling dmi-plugin and send one or more bulk subscription request(s) to the appropriate dmi-plugin(s).
             - Change the subscription administrativeState to 'updating' for the associated datastore.  Do not modify the other subscription attributes (e.g. datastore-xpath-filter) until after successful response received from dmi.
             -  send the a bulk subscription REST request to each dmi-plugin containing either a 'create' (where no previous subscription exists on the cmhandle) or an 'update' subscription info for each cmhandle as per table 2 below
             - the REST request to the dmi-plugin is asynchronous.  The dmi-plugin shall process the each of the subscription requests per cmhandle and send an event response on the dmi-cm-avc-subscription-events topic for each cmhandle. 
UsecaseParticipants Request SchemaRequest Example
Register Subscriptionsncmp → dmi

Protocol : REST
Method : POST
URI : /ncmpInventory/v1/subscriptions
Async : true

Code Block
languagexml
titleRequest
 
Body
:
collapsetrue
{


  "subscriptions" : [


      {  


          "cmhandleId" : "<cmhandle-id>",


          "subscriptionType": "subscriptionCreated | subscriptionUpdated | subscriptionDeleted",


          "existingSubscriptionId" : "<existing subscription-id on remote device>,


                                                      optional, required for subscriptionUpdated | subscriptionDeleted",


          "schemaName": "<schema name>, default is org.onap.ncmp.cm-notification-event",


          "schemaVersion": "<schema version>, default is latest",


          "isTagged": "<yes|no>, optional parameter, default is no",


          "predicates": {


               "<parameter>": "<value>",


               "param2": [


                      "value21",


                      "value22"


                ]


          },


          "cmhandleProperties"  : 


                  <all-cmhandle-properties-as-per-normal-crud-request>


          ]


      }


  ]


}

Response :

202 Accepted 

{ }

Protocol : REST
Method :
POST
URI :
/ncmpInventory/v1/subscriptions
Async : true

Code Block
languagexml
titleRequest
 
Body
:
collapsetrue
{


  "subscriptions" : [


      {  


          "cmhandleId" : "e34553",              (M)


          "subscriptionType": "create",        (M)


          "schemaName": "org.onap.ncmp:cm-network-avc-event.rfc8641",    (O)


          "schemaVersion": "1.0"    (O)


          "isTagged": "yes",             (O)


          "predicates"    {              (M)


                "datastore": “passthrough-operational",  (O)


                "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//”  


          },


          "cmhandleProperties"  : [


                  <all the cmhandle properties>


           ]


      },


      {  


          "cmhandleId" : "gg8769",             (M)


          "subscriptionType": "update",        (M)


          "existingSubscriptionId" : "6738462g3494hw9",   (O)


          "schemaName": "org.onap.ncmp:cm-network-avc-event.rfc8641",    (O)


          "schemaVersion": "1.0"    (O)


          "isTagged": "yes",             (O)


          "predicates"    {              (M)


                "datastore": “passthrough-operational",  (O)


                "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//”  


          },


          "cmhandleProperties"  : [


                  <all the cmhandle properties>


           ]


      }


  ]


}

Response :

202 Accepted 

{ }

                Table 2 : Register Subscriptions with DMI plugin

...