Versions Compared

Key

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

...

The Data Synchronization watchdog updates the cps database with RAN CM Handle data. The Synchronization uses DMI passthrough service and SDNC to get the data from RAN. Refer here for more information.

The steps involved in this process,

...

Code Block
languagexml
titleCPS Path
//state[@cm-handle-state="READY"]/ancestor::cm-handles | //state/datastore/operational[@sync-state="UNSYNCHRONIZED"]/ancestor::cm-handles

Step 2: 

Get the CM Handle data from RAN through DMI passthrough service.

Note: At the moment the DMI passthrough service requires resource Identifier eg: stores:bookstore. The SDNC has the capability to get all the resources from the Mounted device but how to identify the resource for cm handle data?

A PNF Simulator is used with YANG Model,

...

languagexml
titleBookstore YANG Model

...

CPS do not support AND operation in the query. Create a new user story to introduce this feature. 

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1055

The agreed solution is to split the query to get the CM Handles where the operational sync state in UNSYNCHRONIZED and select a random CM Handle and check the status of the CM Handle in READY state.

Code Block
languagexml
titleCPS Path
Query 1:
//state/datastore/operational[@sync-state="UNSYNCHRONIZED"]/ancestor::cm-handles

Query 2:
//cm-handles[@id='some-cm-handle']/state[@cm-handle-state="READY"]

Step 2: 

Get the CM Handle data from RAN through DMI passthrough service.

Note: At the moment the DMI passthrough service requires resource Identifier eg: stores:bookstore. The SDNC has the capability to get all the resources from the Mounted device but how to identify the resource for cm handle data?

A PNF Simulator is used with YANG Model.

Code Block
languagexml
titleBookstore YANG Model
module stores {

    yang-version 1.1;

    namespace "org:onap:ccsdk:sample";

    prefix book-store;

	import ietf-yang-types { prefix yang; }
	import ietf-inet-types { prefix inet; }

    revision "2020-09-15" {
        description
        "Sample Model";
    }

    typedef year {
        type uint16 {
            range "1000..9999";
        }
    }

    container bookstore {

        leaf bookstore-name {
            type string;
        }

        list categories {

            key "code";

            leaf code {
                type string;
            }

            leaf name {
                type string;
            }

            list books {
                key title;

                leaf title {
                    type string;
                }
                leaf lang {
                    type string;
                }
                leaf-list authors {
                    type string;
                }
                leaf pub_year {
                     type year;
                }
                leaf price {
                     type uint64;
                }
            }
        }
   }
}


This PNF Simulator is mounted in SDNC and the response from SDNC to get all the resources from RAN,

Code Block
languagexml
titleSDNC Url
http://<ip>:8282/rests/data/network-topology:network-topology/topology=topology-netconf/node=Bookstore/yang-ext:mount


The DMI passthrough service is used to write the data to the RAN Simulator and the response from it through SDNC is shown below,

Code Block
languagexml
titleSDNC Response
{
  "ietf-netconf-monitoring:netconf-state": {
    "schemas": {
      "schema": [
        {
          "identifier": "ietf-tls-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-tls-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "nc-notifications",
          "version": "2008-07-14",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:netmod:notification",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-ssh-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-ssh-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "turing-machine",
          "version": "2013-12-27",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "http://example.net/turing-machine",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-metadata",
          "version": "2016-08-05",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-metadata",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "iana-crypt-hash",
          "version": "2014-08-06",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:iana-crypt-hash",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-datastores",
          "version": "2017-08-17",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-with-defaults",
          "version": "2011-06-01",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-x509-cert-to-name",
          "version": "2014-12-10",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf",
          "version": "2011-06-01",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:netconf:base:1.0",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-keystore",
          "version": "2016-10-31",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-keystore",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-with-defaults",
          "version": "2011-06-01",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-inet-types",
          "version": "2013-07-15",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-keystore",
          "version": "2016-10-31",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-keystore",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "turing-machine",
          "version": "2013-12-27",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "http://example.net/turing-machine",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-acm",
          "version": "2018-02-14",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-acm",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "yang",
          "version": "2017-02-20",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:1",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-types",
          "version": "2013-07-15",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-system",
          "version": "2014-08-06",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-system",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "nc-notifications",
          "version": "2008-07-14",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:netmod:notification",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "stores",
          "version": "2020-09-15",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "org:onap:ccsdk:sample",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-metadata",
          "version": "2016-08-05",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-metadata",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-notifications",
          "version": "2012-02-06",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-monitoring",
          "version": "2010-10-04",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "stores",
          "version": "2020-09-15",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "org:onap:ccsdk:sample",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-types",
          "version": "2013-07-15",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-library",
          "version": "2019-01-04",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-notifications",
          "version": "2012-02-06",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-yang-library",
          "version": "2019-01-04",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "notifications",
          "version": "2008-07-14",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:netconf:notification:1.0",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-tls-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-tls-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "iana-crypt-hash",
          "version": "2014-08-06",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:iana-crypt-hash",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf",
          "version": "2011-06-01",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:netconf:base:1.0",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "notifications",
          "version": "2008-07-14",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:netconf:notification:1.0",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-monitoring",
          "version": "2010-10-04",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "yang",
          "version": "2017-02-20",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:1",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-x509-cert-to-name",
          "version": "2014-12-10",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-inet-types",
          "version": "2013-07-15",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-ssh-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yang",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-ssh-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-datastores",
          "version": "2017-08-17",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-server",
          "version": "2016-11-02",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-server",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-netconf-acm",
          "version": "2018-02-14",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-acm",
          "location": [
            "NETCONF"
          ]
        },
        {
          "identifier": "ietf-system",
          "version": "2014-08-06",
          "format": "ietf-netconf-monitoring:yin",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-system",
          "location": [
            "NETCONF"
          ]
        }
      ]
    },
    "statistics": {
      "out-rpc-errors": 0,
      "out-notifications": 0,
      "in-bad-hellos": 0,
      "dropped-sessions": 0,
      "in-sessions": 1,
      "in-rpcs": 78,
      "netconf-start-time": "2022-05-19T14:23:27Z",
      "in-bad-rpcs": 0
    },
    "sessions": {
      "session": [
        {
          "session-id": 1,
          "source-host": "172.21.0.3",
          "username": "netconf",
          "login-time": "2022-05-19T14:32:39Z",
          "out-rpc-errors": 0,
          "transport": "ietf-netconf-monitoring:netconf-tls",
          "out-notifications": 0,
          "in-rpcs": 78,
          "in-bad-rpcs": 0
        }
      ]
    },
    "capabilities": {
      "capability": [
        "urn:ietf:params:netconf:capability:xpath:1.0",
        "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name?module=ietf-x509-cert-to-name&revision=2014-12-10",
        "urn:ietf:params:netconf:base:1.1",
        "urn:ietf:params:netconf:capability:startup:1.0",
        "urn:ietf:params:netconf:capability:yang-library:1.0?revision=2019-01-04&module-set-id=23",
        "urn:ietf:params:netconf:base:1.0",
        "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?module=ietf-netconf-notifications&revision=2012-02-06",
        "urn:ietf:params:xml:ns:yang:ietf-netconf-acm?module=ietf-netconf-acm&revision=2018-02-14",
        "urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&revision=2011-06-01&features=writable-running,candidate,rollback-on-error,validate,startup,url,xpath",
        "urn:ietf:params:xml:ns:netmod:notification?module=nc-notifications&revision=2008-07-14",
        "urn:ietf:params:xml:ns:yang:ietf-yang-metadata?module=ietf-yang-metadata&revision=2016-08-05",
        "urn:ietf:params:netconf:capability:writable-running:1.0",
        "urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&revision=2013-07-15",
        "urn:ietf:params:netconf:capability:notification:1.0",
        "http://example.net/turing-machine?module=turing-machine&revision=2013-12-27",
        "urn:ietf:params:xml:ns:yang:1?module=yang&revision=2017-02-20",
        "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
        "urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit&also-supported=report-all,report-all-tagged,trim,explicit",
        "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?module=ietf-netconf-with-defaults&revision=2011-06-01",
        "urn:ietf:params:netconf:capability:candidate:1.0",
        "urn:ietf:params:xml:ns:netconf:notification:1.0?module=notifications&revision=2008-07-14",
        "urn:ietf:params:netconf:capability:interleave:1.0",
        "urn:ietf:params:xml:ns:yang:iana-crypt-hash?module=iana-crypt-hash&revision=2014-08-06",
        "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04",
        "urn:ietf:params:netconf:capability:validate:1.1",
        "urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2013-07-15",
        "urn:ietf:params:netconf:capability:url:1.0",
        "urn:ietf:params:xml:ns:yang:ietf-system?module=ietf-system&revision=2014-08-06&features=authentication,local-users"
      ]
    }
  },
  "turing-machine:turing-machine": {
    "transition-function": {
      "delta": [
        {
          "label": "separator",
          "output": {
            "state": 1,
            "symbol": "1"
          },
          "input": {
            "state": 0,
            "symbol": "0"
          }
        },
        {
          "label": "right end",
          "output": {
            "state": 2,
            "head-move": "left"
          },
          "input": {
            "state": 1,
            "symbol": ""
          }
        },
        {
          "label": "write separator",
          "output": {
            "state": 3,
            "head-move": "left",
            "symbol": "0"
          },
          "input": {
            "state": 2,
            "symbol": "1"
          }
        },
        {
          "label": "right summand",
          "input": {
            "state": 1,
            "symbol": "1"
          }
        },
        {
          "label": "go home",
          "output": {
            "head-move": "left"
          },
          "input": {
            "state": 3,
            "symbol": "1"
          }
        },
        {
          "label": "final step",
          "output": {
            "state": 4
          },
          "input": {
            "state": 3,
            "symbol": ""
          }
        },
        {
          "label": "left summand",
          "input": {
            "state": 0,
            "symbol": "1"
          }
        }
      ]
    }
  },
  "stores:bookstore": {
    "categories": [
      {
        "code": "05",
        "books": [
          {
            "title": "A Romance Book",
            "price": "2000",
            "pub_year": 2002,
            "lang": "English",
            "authors": [
              "Lathish"
            ]
          }
        ],
        "name": "Romance"
      }
    ]
  },
  "ietf-keystore:keystore": {
    "private-keys": {
      "private-key": [
        {
          "name": "server_key",
          "certificate-chains": {
            "certificate-chain": [
              {
                "name": "server_cert",
                "certificate": [
                  "MIIECTCCAvGgAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMCQ1oxFjAUBgNVBAgMDVNvdXRoIE1vcmF2aWExDTALBgNVBAcMBEJybm8xDzANBgNVBAoMBkNFU05FVDEMMAoGA1UECwwDVE1DMRMwEQYDVQQDDApleGFtcGxlIENBMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlY2FAbG9jYWxob3N0MB4XDTE1MDczMDA3MjU1MFoXDTM1MDcyNTA3MjU1MFowgYUxCzAJBgNVBAYTAkNaMRYwFAYDVQQIDA1Tb3V0aCBNb3JhdmlhMQ8wDQYDVQQKDAZDRVNORVQxDDAKBgNVBAsMA1RNQzEXMBUGA1UEAwwOZXhhbXBsZSBzZXJ2ZXIxJjAkBgkqhkiG9w0BCQEWF2V4YW1wbGVzZXJ2ZXJAbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdI1TBjzX1PgQXFuPCw5/kQwU7qkrhirMcFAXhI8EoXepPa9fKAVuMjHW32P6nNzDpnhFe0YGdNloIEN3hJJ87cVOqj4o7zZMbq3zVG2L8As7MTA8tYXm2fSC/0rIxxRRemcGUXM0q+4LEACjZj2pOKonaivF5VbhgNjPCO1Jj/TamUc0aViE577C9L9EiObGM+bGbabWk/KWKLsvxUc+sKZXaJ7psTVgpggJAkUszlmwOQgFiMSR53E9/CAkQYhzGVCmH44Vs6Hzs3RZjOTbce4wr4ongiA5LbPeSNSCFjy9loKpaE1rtOjkNBVdiNPCQTmLuODXUTKgkeL+9v/OwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU83qEtQDFzDvLoaIIvqiU6k7j1uswHwYDVR0jBBgwFoAUc1YQIqjZsHVwlea0AB4N+ilNI2gwDQYJKoZIhvcNAQELBQADggEBAJ+QOLi4gPWGofMkLTqSsbv5xRvTw0xa/sJnEeiejtygAu3oMcAsyevSH9EYVPCANxzISPzd9SFaO56HxWgcxLn9vi8ZNvo2wIp9zucNu285ced1K/2nDZfBmvBxXnj/n7spwqOyuoIc8sR7P7YyI806Qsfhk3ybNZE5UHJFZKDRQKvRJ1t4nk9saeo87kIuNEDfYNdwYZzRfXoGJ5qIJQK+uJJv9noaIhfFowDW/G14Ji5pVh/YtvnOPh7aBjOj8jmzk8MqzK+TZgT7GWu48Nd/NaV8g/DNg9hlN047LaNsJly3NX3+VBlpMnA4rKwl1OnmYSirIVh9RJqNwqe6k/k="
                ]
              }
            ]
          }
        },
        {
          "name": "ssh_host_rsa_key",
          "algorithm": "ietf-keystore:rsa"
        }
      ]
    },
    "trusted-certificates": [
      {
        "name": "trusted_ca_list",
        "trusted-certificate": [
          {
            "name": "ca",
            "certificate": "MIID7TCCAtWgAwIBAgIJAMtE1NGAR5KoMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJDWjEWMBQGA1UECAwNU291dGggTW9yYXZpYTENMAsGA1UEBwwEQnJubzEPMA0GA1UECgwGQ0VTTkVUMQwwCgYDVQQLDANUTUMxEzARBgNVBAMMCmV4YW1wbGUgQ0ExIjAgBgkqhkiG9w0BCQEWE2V4YW1wbGVjYUBsb2NhbGhvc3QwHhcNMTQwNzI0MTQxOTAyWhcNMjQwNzIxMTQxOTAyWjCBjDELMAkGA1UEBhMCQ1oxFjAUBgNVBAgMDVNvdXRoIE1vcmF2aWExDTALBgNVBAcMBEJybm8xDzANBgNVBAoMBkNFU05FVDEMMAoGA1UECwwDVE1DMRMwEQYDVQQDDApleGFtcGxlIENBMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlY2FAbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArD3TDHPAMT2Z84orK4lMlarbgooIUCcRZyLe+QM+8KY8Hn+mGaxPEOTSL3ywszqefB/Utm2hPKLHX684iRC14ID9WDGHxPjvoPArhgFhfV+qnPfxKTgxZC12uOj4u1V9y+SkTCocFbRfXVBGpojrBuDHXkDMDEWNvr8/52YCv7bGaiBwUHolcLCUbmtKILCG0RNJyTaJpXQdAeq5Z1SJotpbfYFFtAXB32hVoLug1dzl2tjG9sb1wq3QaDExcbC5w6P65qOkNoyym9ne6QlQagCqVDyFn3vcqkRaTjvZmxauCeUxXgJoXkyWcm0lM1KMHdoTArmchw2Dz0yHHSyDAQIDAQABo1AwTjAdBgNVHQ4EFgQUc1YQIqjZsHVwlea0AB4N+ilNI2gwHwYDVR0jBBgwFoAUc1YQIqjZsHVwlea0AB4N+ilNI2gwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAI/1KH60qnw9Xs2RGfi0/IKf5EynXt4bQX8EIyVKwSkYKe04zZxYfLIl/Q2HOPYoFmm3daj5ddr0ZS1i4p4fTUhstjsYWvXs3W/HhVmFUslakkn3PrswhP77fCk6eEJLxdfyJ1C7Uudq2m1isZbKih+XF0mG1LxJaDMocSz4eAya7M5brwjy8DoOmA1TnLQFCVcpn+sCr7VC4wE/JqxyVhBCk/MuGqqM3B1j90bGFZ112ZOecyE0EDSr6IbiRBtmeNbEwOFjKXhNLYdxpBZ9D8A/368OckZkCrVLGuJNxK9UwCVTe8IhotHUqU9EqFDmxdV8oIdU/OzUwwNPA/Bd/9g=="
          }
        ]
      }
    ]
  },
  "ietf-yang-library:modules-state": {
    "module-set-id": "23",
    "module": [
      {
        "name": "ietf-ssh-server",
        "revision": "2016-11-02",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-ssh-server"
      },
      {
        "name": "ietf-netconf-acm",
        "revision": "2018-02-14",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-acm"
      },
      {
        "name": "ietf-tls-server",
        "revision": "2016-11-02",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-tls-server"
      },
      {
        "name": "ietf-yang-metadata",
        "revision": "2016-08-05",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-metadata"
      },
      {
        "name": "nc-notifications",
        "revision": "2008-07-14",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:netmod:notification"
      },
      {
        "name": "iana-crypt-hash",
        "revision": "2014-08-06",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:iana-crypt-hash"
      },
      {
        "name": "ietf-netconf-server",
        "revision": "2016-11-02",
        "feature": [
          "tls-call-home",
          "ssh-listen",
          "tls-listen",
          "ssh-call-home",
          "listen",
          "call-home"
        ],
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-server"
      },
      {
        "name": "stores",
        "revision": "2020-09-15",
        "conformance-type": "implement",
        "namespace": "org:onap:ccsdk:sample"
      },
      {
        "name": "ietf-yang-types",
        "revision": "2013-07-15",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"
      },
      {
        "name": "yang",
        "revision": "2017-02-20",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:1"
      },
      {
        "name": "ietf-system",
        "revision": "2014-08-06",
        "feature": [
          "local-users",
          "authentication"
        ],
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-system"
      },
      {
        "name": "ietf-inet-types",
        "revision": "2013-07-15",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types"
      },
      {
        "name": "ietf-keystore",
        "revision": "2016-10-31",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-keystore"
      },
      {
        "name": "ietf-datastores",
        "revision": "2017-08-17",
        "conformance-type": "import",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores"
      },
      {
        "name": "ietf-yang-library",
        "revision": "2019-01-04",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library"
      },
      {
        "name": "ietf-netconf-notifications",
        "revision": "2012-02-06",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"
      },
      {
        "name": "ietf-netconf",
        "revision": "2011-06-01",
        "feature": [
          "writable-running",
          "candidate",
          "startup",
          "url",
          "rollback-on-error",
          "validate",
          "xpath"
        ],
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:netconf:base:1.0"
      },
      {
        "name": "ietf-netconf-monitoring",
        "revision": "2010-10-04",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"
      },
      {
        "name": "turing-machine",
        "revision": "2013-12-27",
        "conformance-type": "implement",
        "namespace": "http://example.net/turing-machine"
      },
      {
        "name": "notifications",
        "revision": "2008-07-14",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:netconf:notification:1.0"
      },
      {
        "name": "ietf-x509-cert-to-name",
        "revision": "2014-12-10",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name"
      },
      {
        "name": "ietf-netconf-with-defaults",
        "revision": "2011-06-01",
        "conformance-type": "implement",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults"
      }
    ]
  },
  "nc-notifications:netconf": {
    "streams": {
      "stream": [
        {
          "name": "nc-notifications",
          "replaySupport": true
        },
        {
          "name": "ietf-keystore",
          "replaySupport": true
        },
        {
          "name": "ietf-yang-library",
          "replaySupport": false
        },
        {
          "name": "NETCONF",
          "description": "Default NETCONF stream containing all the Event Notifications.",
          "replaySupport": true
        },
        {
          "name": "ietf-netconf-notifications",
          "replaySupport": true
        },
        {
          "name": "turing-machine",
          "replaySupport": true
        }
      ]
    }
  },
  "ietf-system:system": {
    "authentication": {
      "user": [
        {
          "name": "netconf",
          "authorized-key": [
            {
              "name": "id_rsa",
              "algorithm": "ssh-rsa",
              "key-data": "AAAAB3NzaC1yc2EAAAADAQABAAABAQD4pCY/jetSrsN3ToQwSIopEwDEFps7l327brjqp8a0vXmGuNztvnNDuQyGD5lKLDeK+dGSz+aHdCnD/10rIVSVxnw/TCyGWGHsYHpXqK0ZdiJ6HXX8FqGylTJZWTiSLSDrUwk8Mq8uIk3Sdy5E9yGgKcmA5GInBQuqMhZbzt1KhLhyp67+dIJ+D3b/JzSyPRHt9XMBpGTYMEuhjBM2aH5C9pltrmRq2NIF/cST1eidhTV2wMSqGm9jwDG7CwxAeYvan1cazZIrIfY7a/rD3sbxSPlzH92nUhw8m0qneKjDWO+kzCJVlWQ/q9c6hg69N2tBctYel3WTFw1usbbG/ZCF"
            }
          ]
        }
      ]
    }
  },
  "ietf-netconf-server:netconf-server": {
    "listen": {
      "endpoint": [
        {
          "name": "all-interfaces",
          "ssh": {
            "address": "0.0.0.0",
            "port": 830,
            "host-keys": {
              "host-key": [
                {
                  "name": "imported SSH key",
                  "public-key": "ssh_host_rsa_key"
                }
              ]
            }
          }
        },
        {
          "name": "tls_listen_endpt",
          "tls": {
            "address": "0.0.0.0",
            "client-auth": {
              "trusted-ca-certs": "trusted_ca_list",
              "cert-maps": {
                "cert-to-name": [
                  {
                    "id": 1,
                    "name": "netconf",
                    "map-type": "ietf-x509-cert-to-name:specified",
              range "1000..9999";     "fingerprint": "02:E9:38:1F:F6:8B:62:DE:0A:0B:C5:03:81:A8:03:49:A0:00:7F:8B:F3"
  }     }      container bookstore {   }
      leaf bookstore-name {        ]
    type string;         }
         list categories { },
            key "codeport";: 6513,
            leaf code"certificates": {
                type string;
            }"certificate": [
              leaf name {

               type string;
            }

            list books {  "name": "server_cert"
                key}
title;              ]
   leaf title {       }
          }
  type string;     }
      ]
    }
  }
             leaf lang}

The data received from the RAN should be updated in the CPS DB. The CPS currently supports the persist of the data in the format below. eg: stores:bookstore in the format <module>:<top level container>

The PNF simulator returns multiple resources but the actual RAN will return just one resource. So it is agreed to persist the first resource that is received from the RAN. 

Code Block
languagexml
titleData from RAN
{
  "stores:bookstore": {
                    type string;
                }
                leaf-list authors {"categories": [
      {
        "code": "05",
    type string;   "books": [
          {
 }           "title": "A Romance Book",
  leaf pub_year {        "price": "2000",
            type year;
"pub_year": 2002,
            "lang": "English",
 }           "authors": [
    leaf price {        "Lathish"
            ]
type uint64;         }
       } ],
        "name": "Romance"
 }     }
   } ]
  }
}