CPS stores the yang model of the mounted devices in CPS-Core database. It is handled by CPS-DMI Plugin which fetches the yang models of the devices registered at AAI and stores in CPS.

As the VNF/PNF registry in AAI is not supported for Slicing use case, the mounted nodes will be directly published to the CPS-DMI Plugin by SDN-C.

A new karaf feature is needed to communicate the node-id to CPS-DMI plugin. This will be achieved by registering a cm-handle with DMI-Plugin.

RPC Details

RPC Name: addCMHandle


  1. This RPC makes use of the onDataTreeChanged event from DataTreeChangeListener to detect, if any node is added to network-topology https://localhost:8086/restconf/config/network-topology:network-topology
  2. If the ModificationType is 'WRITE', a new notification is published to dmaap to add the cmhandle.

  3. If the ModificationType is 'DELETE', the notification to remove the cmhandle will be published. - TBC with CPS Team

       cmhandle format:


       Reference: CPS-352 : Create yang-model for DMI-registry data


       cm-handle-id is node id

       dmi-service-name is Kubernetes service name of the DMI Plugin

RPC Yang: CMHandle-API.yang

yang tree:

Yang-model Discovery  


  1. Mount Request to SDN-R
<node xmlns="urn:TBD:params:xml:ns:yang:network-topology"> 
<node-id>new-netconf-device id</node-id> 
<host xmlns="urn:opendaylight:netconf-node-topology"></host> 
<port xmlns="urn:opendaylight:netconf-node-topology">17830</port> 
<username xmlns="urn:opendaylight:netconf-node-topology">admin</username> 
<password xmlns="urn:opendaylight:netconf-node-topology">admin</password> 
<tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only> 

     2. New Feature at SDN-R to publish the cm-handle

      feature: addCMHandle

      Dmaap Topic: CM_HANDLE (TBC)

    3. Receive the DMaap notification

      curl -k --header "Content-Type: application/json" --request GET https://<ip>:30226/events/CM_HANDLE

    4 & 5. Fetch the module sets and yang model from SDN-R using RESTConf API (CPS-DMI Plugin takes care of it)

       Yang model: https://<ip>:<port>/restconf/operations/network-topology:network-topology/topology/topology-netconf/node/{node-id}/yang-ext:mount/ietf-netconf-monitoring:get-schema

    6.  Initial-config data: This is not currently supported (as on 01-10-2021). Use the CPS Data APIs to store the initial config data to CPS.

       DMI Plugin should be able to fetch the initial RAN Configuration data as well (not shown in the sequence diagram).


Discussion with CPS Team on 28-09-2021:

CM-handle registration with DMI-Plugin-20210928_160437-Meeting Recording.mp4

  • No labels


  1. Yang-model Discovery

    I think step 4 is triggered from cps-ncmp, after the registration.

    1. Thank you Rahul Tyagi. Made the correction.

  2. HI,

    How can I see my newly added attribute in the yang file in "OpenDaylight RestConfig Swagger API Documentation" ?

    I did the following steps-

    1. Added a new attribute in the gnbsim "ran-network" yang file.

    2. Performed "mvn clean install" from  "/ran-sim/hcsim-content/gnbsim/gnbsim-api"  and "/ran-sim/hcsim-content/gnbsim/gnbsim-impl"  and the build went successfully.

    3. From the directory,  /ran-sim/hcsim-content/gnbsim/gnbsim-distribution/target/gnbsim-distribution1.19.08-SNAPSHOT-hc/gnbsim-distribution-1.19.08-SNAPSHOT
    performed "docker build -t gnbsim ."

    4. Performed "docker-compose up –d" from /ran-sim/hcsim-content/gnbsim/hc

    6.  Successfully created the image " gnbsim:latest" and the status is UP.

    Any step I missed? 

    1. Hi Ramesh Narayana Iyer,

      Please refer Core & RAN Simulators - Section 2b.


      Ahila P.