You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 29 Next »


  • Create a Wiki page with a clear diagram showing NCM and DMI and its interfaces detailing the scope of THIS (and other) spike
  • Update V1 of the interface (communicate with E2E Slicing)
  • Detail CRUD operations
  • Detail Patch 
  • Include datastore options (pass-through) 
  • Agree on parameter names and use them consistently
  • Agree on JSON output format 
  • Resource 'path' can cover cps-paths, rest-conf path (for pass-through), and any proprietary paths
  • Only 'hint' at 
    • async options
    • bulk operations


CPS-391 - Getting issue details... STATUS


Open Issues & Decisions


Description

Notes

Decision

1Priority of async calls
In Istanbul, async calls are required only in pass-through cases. NCMP does not have to handle these requests 
2Will we use the data node wrapper on GET rest operations?

Currently, we wrap the response of GET operations using the data node wrapper.


3In the URI will we distinguish between data and operations (RFC calls) as part of the path?
4

Parent data resource identifier can handle any path using the same query parameter 

  1. cpsPath
  2. RESTConf Path
  3. Proprietary Path


5

Yml should include return types and examples of the payload



6camel case or dash in URI
we will use a dash for param names e.g. cm-handle
7Insert /resource-path in front of the resource path to prevent ambiguous paths<OP>/ncmp /<v{v-number}>/cmhandle/<cm-handle>/<data|operations|{ncmp-action}>/ds/{datastore}/resource-path/<resource-path>?<query>
8Granularity of update scenarios (and priority)
  1. Add child and its descendants (supported in cps core)
  2. Add all list elements (supported in cps core)
  3. Replace child and its descendants (supported in cps core)
  4. Replace all list elements (pending in cps core)
  5. Update single leaf (new)
  6. Add list entry (new)

9There is no automatic fallback option for datastore
The client will have the specify the datastore
10fields is a rest conf option, investigate is it fully supported by onap

11Agree on URI syntax 

Proposed syntax by CPS team 

<OP>/ncmp /api/<v{v-number}>/ch/<cm-handle>/<data|operations|{ncmp-operation}>/ds/{datastore}/[rs]{resource-path}?{query}



RESTCONF/NETCONF relationship



NCMP URI

NCMP URI format to follow below pattern

<OP>/ncmp /api/<v{v-number}>/ch/<cm-handle>/<data|operations|{ncmp-operation}>/ds/{datastore}/[rs]{resource-path}?{query}

URI
Mandatory or Optional
<OP>the HTTP methodMandatory
ncmp /the ncmp root resourceMandatory
<v{v-number}>version of the ncmp interface <path> is the target resource URI <query> is the query parameter listMandatory
cmhandles/<cm-handles>unique (string) identifier of a yang tree instance.Optional
<data|operations|{ncmp-action}>request category - yang data, rpc operation or a (non-modelled) ncmp api action. this could be data, operations or ncmp-actionMandatory
ds/{datastore}optional datastoreOptional
<resource-path>the path expression identifying the resource that is being accessed by the operation. If this field is not present, then the target resource is the API itself.Optional
<query>

the set of parameters associated with the RESTCONF message; see Section 3.4 of [RFC3986]. RESTCONF parameters have the familiar form of "name=value" pairs. Most query parameters are optional to implement by the server and optional to use by the client. Each optional query parameter is identified by a URI

Optional

Datastores

New datastores are defined for ncmp to access the CPS 'intended' or 'operational' datastore.

Alternatively, the request can be sent directly to the 'device' itself (bypassing CPS datastores) using one of the 'passthrough-*' datastores options as below


The new ncmp datastores required for ONAP Release I include :

1ncmp-datastores:running (RW / config=true/false)   Read/Write to the CPS "intended" store (with validation).
2ncmp-datastores:operational (RO / config=true/false)Read from the CPS "operational" store.
3ncmp-datastores:passthrough-running (RW / config=true/false)Read/Write to/from the live devices ietf-datastores:running (no local ncmp validation)


Future datastores to be supported by NCMP include :

1ncmp-datastores:passthrough-intented (RO) Read from the live devices ietf-datastores:intended
2 ncmp-datastores:passthrough-operational (RO)Read from the live devices ietf-datastores:operational

  

If datastore (ds/{datastore}) is omitted from URI, the datastore from cmhandle is used

If datastore (ds/{datastore}) is omitted from URI AND the model/moduleSet exists, the datastore defaults to ncmp-datastores:running

Yang data resource actions and RPC operations are run directly on the 'device' meaning ncmp-datastores:passthrough-running is used for these request


Different defaults for read and write 

e.g. ncmp-datastores:operational for read requests


#UsecaseNCMP DatastorePath?fields?topicQueryTime frame
1Readpassthrough-runningRESTConf Path onlyImplemented by SDNC/NodeImplemented by DMI PluginNot supportedIstanbul
2Readncmp-datastores:operational CPSPath onlyTBDTBDLimited xpath functionalityIstanbul
3Createpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
4Createncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
5Deletepassthrough-runningRESTConf Path onlyN/AN/ANot supportedIstanbul
6Deletencmp-datastores:runningCPSPath onlyN/AN/ANot supported> Istanbul
7Updatepassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
8Updatencmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
9Patchespassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
10Patchesncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
11Bulk passthrough-runningRESTConf Path onlyN/AN/AN/A> Istanbul
12Bulkncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
13Actionpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul?
14Actionncmp-datastores:runningCPSPath onlyN/AN/AN/AIstanbul?

REST API

 

#Req/usecase

REST

Method

 URI / Payload

Header Parameters

Request/Response ExampleStatus
1Read a data resource directly from
source (passthrough) for a cmHandle - async
GET

{ncmp-root}/ncmp/v1/cm-handle/<cm-handle>/ds
/ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields}&topic={topicId}


Note 'topic' and 'fields' are only supported in passthrough mode at this time (ONAP Release I). If not passthrough then an exception is thrown from NCMP at this time.

Accept:
application/json
Scenario : Read the GNBCUCPFunction for cmhandle "335ff" as
passthrough
Method : GET
URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//GNBCUCPFunction?fields=pLMNId;gNBId;
gNBIdLength;syncStatus&topic=anr-app:anr24234234:v2
Header :
Accept: application/json

passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//GNBCUCPFunction?fields=pLMNId;gNBId;
gNBIdLength;syncStatus&topic=anr-app:anr24234234:v2

Header :
      Accept: application/json

Event Response:

{

     [
           {
                 "xpath": "/ManagedElement[@id=Kista-001]/GNBCUCPFunction
[@id=1]",
                  "leaves": {
                           "pLMNId : [ { "mcc" : "01", "mnc" : "123" } ],
                           "gNBId" : 123,
                           "gNBIdLength" : 3
                           "syncStatus" : "SYNCHRONIZED"

           }
     ]
}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin


2Read a data resource directly from
source (passthrough) for a
cmHandle. Only return specific field(s).
Synchronous call
GET

{ncmp-root}/ncmp/v1/cmhandle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields}

Accept:
application/json

Scenario : Read the EUtranCellFDD.(administrativeState, 
operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle 
"335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//EUtranCellFDD?fields=administrativeState;
operationalState;tac;earfcndl;cellId;physicalLayerCellId

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-2"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 2,
                           "earfcndl" : "4".
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 0,
                           "tac" : "1"
           },
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-3"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 3,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 3,
                           "tac" : "3"
           },
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-4"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 4,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 4,
                           "tac" : "4"
           }
     ]
}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin
3

ALTERNATIVE OUTPUT TO ABOVE 
SCENARIO

Read a  data resource directly from 
source (passthrough) for a 
cmHandle.  Only return specific field(s).

Synchronous call

GET{ncmp-root}/ncmp/v1/cm-handle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields}Accept:
application/json

Scenario : Read the EUtranCellFDD.(administrativeState, operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle "335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//EUtranCellFDD?fields=administrativeState;
operationalState;tac;earfcndl;cellId;physicalLayerCellId

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
         {
             "ManagedElement[@id="Kista-001"] : [
                  "ENodeBFunction[@id="1"] : [
                       "EUtranCellFDD[@id="LTE05ERBS00008-2"] : {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 2,
                           "earfcndl" : "4".
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 0,
                           "tac" : "1"
                         }
                    ]
               ]
           { 

 OR

                 "/ManagedElement[@id="Kista-001"]/ENodeBFunction[@id="1"]
/EUtranCellFDD[@id="LTE05ERBS00008-3"],
                  {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 3,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 3,
                           "tac" : "3"
           },
           {  


OR

                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-4"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 4,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 4,
                           "tac" : "4"
           }
     ]
}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin
4

Read a  data resource with some leaf value condition directly from the source (passthrough) for a cmHandle.  Only 
return specific field(s).

Synchronous call

GET{ncmp-root}/ncmp/v1/cm-handle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier[]}?fields={fields} &topic={topicId}ContentType:
application/json

Scenario : Read the LocalSctpEndpoint.(interfaceUsed==X2, 
sctpEndpointRef) for cmhandle "335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//LocalSctpEndpoint[ interfaceUsed=X2 ]?
fields=sctpEndpointRef

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
           {
                 "xpath": "/ManagedElement[@id=Kista-001]/...
/LocalSctpEndpoint[@id=3]",
                  "leaves": {
                           "sctpEndpointRef" : "some-sctp-ref"

           }
     ]
}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin
5Create a data resource for a cmhandlePOST

{ncmp-root}/ncmp/v1/cmhandle/<cm-handle>/ds/ncmp-datastores:passthrough-running/{parent-data-resource-identifier}



     <new-yang-data-resource>
}    

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}



     <new-yang-data-resource>

ContentType:
application/json

Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 
under _3gpp-common-managed-element:ManagedElement=Kista-001
/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1

Method  : POST 

URI         : : {ncmp-root}/ncmp/v1/cm-handle/34l5k32/ManagedElement
[@id=Kista-001]/GNBDUFunction[@id=1]

Header :
      Content-Type: application/json

Body :

{
       NRSectorCarrier" : {
                "id" : 4
                "attributes" : {
                        "userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-
                                                                                   element:
ManagedElement=1/.../sef:SectorEquipmentFunction=2"
               }
         }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

6

Update a data resource for a cmhandle

PATCH

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{parent-
data-resource-identifier}


     <updated-yang-data-resource>
}    

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}


     <updated-yang-data-resource>

ContentType:
application
/json

Scenario : Update ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 
txDirection to  "DL_AND_UL" under _3gpp-common-managed-element:
ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1

Method  : PATCH

URI        : {ncmp-root}/ncmp/v1/cm-handle/34l5k32/ManagedElement
[@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4]
OR
{ncmp-root}/ncmp/v1/cm-handle/34l5k32//NRSectorCarrier[@id=4] //
should resolve to a single resource/node

Header :
      Content-Type: application/json

Body :

{
       NRSectorCarrier" : {
                "id" : 4
                "attributes" : {
                        "txDirection" :  "DL_AND_UL"
               }
         }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

7

Delete a data resource for a cmhandle

DELETE

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{data-resource-identifier}

ContentType:
application
/json
Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4
under _3gpp-common-managed-element:ManagedElement=Kista-001
/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1
Method : DELETE
URI : {ncmp-root}/ncmp/v1/cm-handle/34l5k32/ManagedElement
[@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4]
OR
{ncmp-root}/ncmp/v1/cm-handle/34l5k32//NRSectorCarrier[@id=4]
Header :
Accept: application/json
Body : {}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul for delete

8

Get model (module set) for CMHandle

GET

{ncmp-root}/ncmp/v1/model/<handleId>

Accept: 
application/
yang-
data+json

Scenario : Get the model data for CMHandle  with id "335ff"

Method  : GET

URI         : {ncmp-root}/ncmp/v1/model/335ff

Header :
      Accept: application/yang-data+json

Response:

{

   "ietf-yang-library:modules-state" : {
          "module-set-id" : 
"5479120c17a619545ea6aff7aa19838b036ebbd7",
          "module" : [
            {
              "name" : "_3gpp-nr-nrm-nrsectorcarrier",
              "revision" : "2020-12-09",
              "schema" : "/modules/_3gpp-nr-nrm-
nrsectorcarrier/2020-12-09",
              "namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-
nrnetwork-nrsectorcarrier",
              "feature" : [ "feature1", "feature2" ],
              "deviation" : [
                {
                  "name" : "_3gpp-nr-nrm-
nrsectorcarrier",
                  "revision" : "2020-12-17"
                }
              ],
              "conformance-type" : "implement"
            },
            {
              "name" : "ietf-yang-library",
              "revision" : "2016-06-21",
              "schema" : "/modules/ietf-yang-library
/2016-06-21",
              "namespace" :
                "urn:ietf:params:xml:ns:yang:ietf-yang-
library",
              "conformance-type" : "implement"
            }
     }
  }
}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin


ncmp-datastores:running is not supported in Istanbul for delete

9

Create a data resource for a cmhandle

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{parent-
data-resource-identifier}


     <new-yang-data-resource>
}    


OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}


     <new-yang-data-resource>

Content-
Type: 
application
/yang-
data+json

Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 
under _3gpp-common-managed-element:ManagedElement=Kista-001
/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/34l5k32/_3gpp-commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr-nrmgnbdufunction:GNBDUFunction=1

Header :
      Content-Type: application/yang-data+json

Body :

{
       "ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier"  {
                "top3gpp:id" : 4
                "attributes" : {
                        "mf3gpp:userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-element:ManagedElement=1/.../sef:SectorEquipmentFunction=2"
               }
         }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

10

Delete a data resource for a cmHandle

DELETE

{ncmp-root}/ncmp/v1/<handleId>/ds/ncmp-
datastores:passthrough-running/{data-resource-
identifier}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}

Content-Type: 
application/yang-
data+json

Scenario : Delete NRSectorCarrier=4

Method  : DELETE

URI         : {adapter-root}/ncmp/v1/cm-handle/34l5k32/_3gpp-commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr-nrmgnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul for delete

11

Update a data resource for a cmHandle

PATCH

{ncmp-root}/ncmp/v1/data/<handleId>/ds/ncmp-
datastores:passthrough-running/{data-resource-
identifier}
{  
     <yang-data-sub-resource>
}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cmhandle/<cmhandle>/
{parent-data-resource-identifier}
{  
     <yang-data-sub-resource>
}    

Content-Type: 
application/yang-
data+json

Scenario : Add NRSectorCarrier=4 to GNBDUFunction=1 if it doesn't already exist

Method : PATCH

URI : {ncmp-root}/ncmp/v1/cm-handle/d32455f/_3gpp-commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr-nrmgnbdufunction:GNBDUFunction=1

Header
            Content-Type: application/yang-data+json

Body

{

         _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 : {
             "id" : 1,
             "_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier"  {
                "top3gpp:id" : 4
                "attributes" : {
                        "mf3gpp:userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-element:ManagedElement=1/.../  
                                                                                                                        
                     sef:SectorEquipmentFunction=2"
                }
             }
         }
     }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

12

Multiple edits under a target data 
resource for a single cmHandle

PATCH

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}
{
     yang-patch payload
}

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}
{
     yang-patch payload
}

Content-Type: 
application/yang-
patch+json

Scenario : Make multiple updates under the GNBDUFunction=1 data resource

Method  : PATCH

URI         : {ncmp-root}/ncmp/v1/cm-handle/32rf234/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction[id=1]

Header :
      Content-Type: application/yang-patch+json

Body :

{

    "ietf-restconf:yang-patch" : {
          "patch-id" : "change-cell-and-carriers",
          "edit" : [
               {
                  "edit-id" : 1,
                  "operation" : "create",
                   "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=1",
                   "value" : {
                        "_3gpp-nr-nrm-nrcelldu:NRCellDU" : {
                              "id" : 1,
                              "cId" : 511,
                               "userLabel" : "some-cell-label",
                                ...
                          }
                      }
              },
              {
                  "edit-id" : 2,
                  "operation" : "create",
                   "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=2",
                   "value" : {
                        "_3gpp-nr-nrm-nrcelldu:NRCellDU" : {
                              "id" : 2,
                              "cId" : 512,
                               "userLabel" : "some-other-cell-label",
                                ...
                          }
                      }
              },
              {
                  "edit-id" : 3,
                  "operation" : "merge",
                   "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=3",
                   "value" : {
                        "_3gpp-nr-nrm-nrcelldu:NRCellDU" : {                    
                              "cId" : 412,
                               "userLabel" : "yet-another-cell-label",
                                ...
                          }
                      }
              },
              {
                  "edit-id" : 4,
                  "operation" : "merge",
                   "target" : "_3gpp-nr-nrm-nrcelldu:NRCellDU=4",
                   "value" : {
                        "_3gpp-nr-nrm-nrcelldu:NRCellDU" : {
                              "cId" : 412,
                               "userLabel" : "yet-another-cell-label",
                                ...
                          }
                      }
              }
           ] 
      } 
}

Response :

      HTTP/1.1 200 OK
      Date: Thu, 26 Jan 2017 20:56:30 GMT
      Server: example-server
      Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
      Content-Type: application/yang-patch+json


          {
            "ietf-yang-patch:yang-patch-status" : {
                "patch-id" : "change-cell-and-carriers",
                "ok" : [null]
             }
          }
      

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

13

Execute a yang action

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}/{action}
{
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If the "action" statement 
has no 
"input" section, the  request 
message MUST 
NOT include a message-body

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle
/<cmhandle>/data/{data-resource-
identifier}
/{action}

{
    input: {

                  "param1Name" : 
"param1Value”,
                  "param2Name" : 
"param2Value”

             }
}

Content-Type: 
application/yang-
data+json

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1/resetPort  (dummy non-existent action)

Header :
      Content-Type: application/yang-data+json

Body :
{
     "input" : {
           "param1Name" : "param1Value”,
           "param2Name" : "param2Value”
    }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

14

Execute an rpc operation

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/operations/ds/ncmp-datastores :passthrough-
running/{module-name}:{action}

{  
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If there is no "input" 
section, 
the  request MUST NOT include a 
message-body

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/operations/{module-name}:{action}

{  
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Content-Type: 
application/yang-
data+json

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/operations/_3gpp-
common-managed-element:resetDevice  (dummy action)

Header :
      Content-Type: application/yang-data+json

Body :
{
     "input" : {
           "param1Name" : "param1Value”,
           "param2Name" : "param2Value”
    }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

15

Read a filtered set of data under a  data 
resource for a cmHandle

GET

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?fields={fields-expression}

options 


OptionDescription
fieldsRequest a subset of the target 
resource contents


OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/data/{data-resource-identifier}?fields={fields-
expression}

Accept: 
application
/yang-data
+json

Scenario : Read GNBDUFunction=1.userLabel and NRSectorCarrier with 
its attributes txDirection & arfcnUL

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1?fields=userLabel;(_3gpp-nr-nrm-
nrsectorcarrier:NRSectorCarrier(txDirection;arfcnUL)

{ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/ManagedElement=Kista-001
//NRSectorCarrier

Header :
        Accept : application/yang-data+json

Body:

Response :

      HTTP/1.1 200 OK
      Date: Thu, 26 Jan 2017 20:56:30 GMT
      Server: example-server
      Content-Type: application/yang-data+json

       _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {

                   "userLabel" : "myGnodeBFunction-1",

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=1 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "55555"
                                           }
                                        },  
                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=2 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666"
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777"
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888"
                                           }
                                        }

                             }

}

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin
16

Read descendant data resources with 
specified fields under a  given data 
resource for a given cmHandle

GET

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?fields={fields-expression}

options 


OptionDescription
fieldsRequest a subset of the target
resource contents


OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}?fields={fields-
expression}

Accept: 
application
/yang-data+
json

Scenario : Read all NRCellDU MOs with attributes userLabel and id under 
the _3gpp-nr-nrm-gnbdufunction:GNBDUFunction MO

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cmhandle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1?fields=_3gpp-nr-nrm-nrcelldu:NRCellDU
/attributes(administrativeState;operationalState)

Header :
      Accept : application/yang-data+json

Response :

      HTTP/1.1 200 OK
      Date: Thu, 26 Jan 2017 20:56:30 GMT
      Server: example-server
      Content-Type: application/yang-data+json

      {
       _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {

                                       _3gpp-nr-nrm-nrcelldu:NRCellDU=1 {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                           }
                                        },
                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=2 {
                                           "top3gpp:id" : "NR-Cell-002"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                           }
                                        },  
                                         _3gpp-nr-nrm-nrcelldu:NRCellDU=3 {
                                           "top3gpp:id" : "NR-Cell-003"
                                            "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                           }
                                        },  

                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=4 {
                                           "top3gpp:id" : "NR-Cell-004"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                           }
                                        },  

                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=5 {
                                           "top3gpp:id" : "NR-Cell-005"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                           }
                                        }
                              }
                    }

passthrough-running is supported in Istanbul using

  • RestConf Path only
  • ?fields implemented by SDNC/Node
  • ?topic implemented by DMI plugin
17

Read data resources to a given depth 
for a given cmHandle

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?depth={level}


OptionDescription
depthRequest limited sub-tree depth
in the reply content
If '1' then only immediate data
resource is retrieved
If 'x' then x levels of data tree
are retrieved
'unbounded' will get the full tree
starting at the given dataresource-identifier


OR using datastores defaults

{ncmp-root}/ncmp/v1/data/<cmhandle>/{data-
resource-identifier}?depth={level}

Accept: 
application
/yang-
data+json

Method  : POST

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1?depth=4

Header :
      Content-Type: application/yang-data+json
      Accept : application/yang-data+json

Body:

Response :

      HTTP/1.1 200 OK
      Date: Thu, 26 Jan 2017 20:56:30 GMT
      Server: example-server
      Content-Type: application/yang-data+json
 
      {
         _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {  
# level 1

                                       _3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=1 {     # level 2
                                           "top3gpp:id" : "NRSectorCarrier-1",  # level 3
                                           "attributes" : {                                    # level 3
                                                  "txDirection" : "DL_AND_UL",     # level 4
                                                  "arfcnUL" : "55555",                    # level 4
                                                   ...
                                           }
                                        },  
                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=2 {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

                                     _3gpp-nr-nrm-nrcelldu:NRCellDU=1 {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },
                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=2 {
                                           "top3gpp:id" : "NR-Cell-002"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  
                                         _3gpp-nr-nrm-nrcelldu:NRCellDU=3 {
                                           "top3gpp:id" : "NR-Cell-003"
                                            "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  

                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=4 {
                                           "top3gpp:id" : "NR-Cell-004"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  

                                        _3gpp-nr-nrm-nrcelldu:NRCellDU=5 {
                                           "top3gpp:id" : "NR-Cell-005"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }
              }
         }

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

18

Create or replace the target data 
resource for a CMHandle

PUT

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds/
{datastore}/{data-resource-identifier}
{  
     <yang-data-sub-resource>

OR using datastores defaults  

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}
{  
     <yang-data-sub-resource>

Accept: 
application
/yang-data+
json

Method  : PUT

URI         : {ncmp-root}/v1/cm-handle/3445fff/_3gpp-common-managed-
element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1

Header :
      Content-Type: application/yang-data+json

Body :
{
          _3gpp-nr-nrm-gnbdufunction:GNBDUFunction {
                 "userLabel" : "newGNB-001",
                 "gNBDUName" : "newGNBDUName-001"
                  ....
          }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

19

Get data for list of CMHandles

PUT

{ncmp-root}/ncmp/v1/ds/{datastore}/{data-
resource-identifier}

OR using datastores defaults  

{ncmp-root}/ncmp/v1/{data-resource-identifier}

Accept: 
application
/json

(yangData 
contains 
the yang-
data
+json 
payload as 
per 
individual 
cmHandle 
requests)

Scenario Get the NRCellDU=Cell-001 data for multiple cmhandles

Method  : PUT

URI         : {ncmp-root}/ncmp/v1/ds/ncmp-datastores:passthrough-running?
fields=_3gpp-common-managed-element:ManagedElement/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction/NRCellDU=NR-Cell-001

Header :
      Accept : application/json

Body :
{
    " operation" : "read",                                  // inspired by yang patch 
'operation'
    "cmHandles" : ["34l5k32", "ddf4545", "45g6756"]    //omit to get for all 
cmhandles
}

Response :

  HTTP/1.1 200 OK
  Date: Thu, 26 Jan 2017 20:56:30 GMT
  Server: example-server
  Content-Type: application/json

  "response" : [
     {
       "cmHandle" : "34l5k32",
       "yangData" : {
          3gpp-common-managed-element:ManagedElement=1 {
             _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 
{
                   "top3gpp:id" : "1",
                   "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-
Cell-001" :  {

                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                         },

                        
                       3gpp-common-managed-element:ManagedElement=1 {

                               _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {
                                      "top3gpp:id" : "1",

                   "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-
Cell-001" :  {

                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                          }

                     }

        },
        {
            "cmHandle" : "ddf4545",
             "yangData" : {      
                   3gpp-common-managed-element:ManagedElement=1 {

           _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-Cell-
001" :  {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }
                              }

                    }
                }
        },

  {
            "cmHandle" : "45g6756",
             "yangData" : {      

           "ietf-restconf:errors" : {
              "error" : [
                 {
                  "error-type" : "connectivity",
                  "error-tag" : "access-denied",
                  "error-message" : "Cannot read EMS 
with given credentials"
                 }
               ]
            }

            }

        }

     ]

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

20

Read resource data (with 'fields') for list 
of CMHandles

POST

{ncmp-root}/ncmp/v1/ds/{datastore}/{data-
resource-identifier}

OR

{ncmp-root}/ncmp/v1/{data-resource-identifier}

Accept: 
application
/json

(yangData 
contains 
the yang-
data
+json 
payload as 
per 
individual 
cmHandle 
requests)

Scenario Get the and select attributes GNBDUFunction.id of NRSectorCarrier and NRCellDUs

Method  : POST

URI         : {ncmp-root}/ncmp/v1//NRSectorCarrier?fields=top3gpp:id;_3gpp-
nr-nrm-nrsectorcarrier:NRSectorCarrier(top3gpp:id;attributes(txDirection;
arfcnUL);_3gpp-nr-nrm-nrcelldu:NRCellDU(top3gpp:id;attributes
(administrativeState;operationalState)

Header :
      Content-Type: application/json
      Accept : application/json

Body:

{
    operation : "read",
    "cmHandles" : ["1231", "1232", "1233", "1234"]
}

Response :

  HTTP/1.1 200 OK
  Date: Thu, 26 Jan 2017 20:56:30 GMT
  Server: example-server
  Content-Type: application/json
  

  "response" : [
        {
          "

" : "

cmHandle

1231",

          "yangData" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=1" :  {
                                           "top3gpp:id" : "NRSectorCarrier-1",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "55555".
                                                   ...
                                           }
                                        },  
                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=2" :  {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=3" : {
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4" :  {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

"_3gpp-nr-nrm-nrcelldu:NRCellDU=1" :  {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },
                                        "_3gpp-nr-nrm-nrcelldu:NRCellDU=2" :  {
                                           "top3gpp:id" : "NR-Cell-002"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  
                                        "_3gpp-nr-nrm-nrcelldu:NRCellDU=3" :  {
                                           "top3gpp:id" : "NR-Cell-003"
                                            "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  

                                        "_3gpp-nr-nrm-nrcelldu:NRCellDU=4" :  {
                                           "top3gpp:id" : "NR-Cell-004"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  

                                        "_3gpp-nr-nrm-nrcelldu:NRCellDU=5" :  {
                                           "top3gpp:id" : "NR-Cell-005"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                              }

                    }

             },

      {
          "

" : "

cmHandle

1232",

          "data" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=2" : {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=3" : {
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        }

                              }

              },

      {
          "cmHandle" : "1233",
          "yangData" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4" :  {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

"_3gpp-nr-nrm-nrcelldu:NRCellDU=1" :  {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },
                                        "_3gpp-nr-nrm-nrcelldu:NRCellDU=2" :  {
                                           "top3gpp:id" : "NR-Cell-002"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        },  

                              }

              },

             {
                   "

" : "

cmHandle

1234",

                    "yangData" : {

               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                  "top3gpp:id" : "1",

                                      "_3gpp-nr-nrm-nrcelldu:NRCellDU=1 {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                              }

              }

       ]

}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

21

Execute a yang action on multiple 
CMHandles

POST

{ncmp-root}/ncmp/v1/data/{data-resource-
identifier}/{action}

input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }

Note : If the "action" statement has no 
"input" section, the  request 
message MUST 
NOT include a message-body

Content-Type: 
application/json

(yangData 
contains the 
yang-data
+json payload 
as per individual 
cmHandle 
requests)

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/data/_3gpp-common-managed-element:
ManagedElement/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction
/resetPort  (dummy non-existent action)

Header :
      Content-Type: application/json

Body :
{
    operation : "action",
    "cmHandles" : ["1231", "1232", "1233", "1234"],

    "yangData" : {
        input: {
            "param1Name" : "param1Value”,
            "param2Name" : "param2Value”
        }
     }
}

Response Success

         HTTP/1.1 202 Accepted
         Date: Thu, 26 Jan 2021 20:56:30 GMT 
         Content-Type: application/json

         //EMPTY BODY

Error Response : 

     HTTP/1.1 202 Accepted
     Date: Thu, 26 Jan 2021 20:56:30 GMT
     Content-Type: application/json

     response : [

      { 
        "cmHandle" : "


1232",

        "yangData" : {
           "ietf-restconf:errors" : {
             "error" : [
               {                 # See 

https://tools.

ietf.org/html/rfc6241#section-4.3

                 "error-type" : "protocol",
                 "error-tag" : "invalid-value",
                 "error-path" : "3gpp-common-managed-
element:ManagedElement/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction/resetPort",
                 "error-message" : "Invalid input 
parameter value for param2Name"
               }
             ]
          }
       },
       { 
          "cmHandle" : ""


1234",

          "yangData" : {
             "ietf-restconf:errors" : {

                "error" : [ 
                   { "error-type" : "protocol", 
                     "error-tag" : "invalid-value", 
                     "error-path" : "3gpp-common-
managed-element:ManagedElement/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction/resetPort", 
                     "error-message" : "Invalid input 
parameter value for param2Name" } 
                ] 
          } 
       }
     ] 

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

22

Execute an rpc operation on multiple 
CMHandles

POST

{ncmp-root}/ncmp/v1/operations/{module-name}:
{action}

{  
input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If there is no "input" 
section, 
the  request MUST NOT include a 
message-body

Content-Type: 
application/json

Method  : POST 

URI         :{ncmp-root}/ncmp/v1/operations/_3gpp-common-managedelement:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1/resetDevice (dummy action)


Header :
      Content-Type: application/json

Body :
{

    operation : "action",
    "handles" : ["1231", "1232", "1233", "1234"],
     input: {
            "param1Name" : "param1Value”,
            "param2Name" : "param2Value”
     }
}

passthrough-running is supported in Istanbul using 

  • RESTConf Path only


ncmp-datastores:running is not supported in Istanbul

23


GET/
POST/
PATCH
/PUT/
DELETE

{ncmp-root}/ncmp/v1/cm-handle/ /data/ds/ncmp-datastores:passthrough-running/ {xpath}?topic=<dmaap-topic-Identifier>

{ncmp-root}/ncmp/v1/cm-handle/ /data/ds/ncmp-datastores:running/{xpath}?topic=<dmaap-topic-Identifier>

**Async communication channel is DMaaP

Immediate response with a requestId is sent to the caller and the CRUD request is executed asynchronously where data is returned via the provided topic identifier.

Accept : 
application/json

Scenario : Async request to NCMP

Method : GET/POST/PATCH/PUT/DELETE

URI : {ncmp-root}/ncmp/v1/cm-handle/de3455/data/ds/ncmp-datastores:
passthrough-running/_3gpp-common-managed-element:
ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1?topic=5G:SectorCarrierOrchestrator-0012391:12

Body :    //  Include body where required
{
       ....
}

Response   :
{
     "requestId" : "<some-requestId>"
}

response data is published on the topic identified by <topicIdentifier> 
keyed on request.



Output Specification 

?fields={fields}&topic= {topicId}

Assynchronous

?fields={fields}&topic= {topicId}

Required Task

#

Description

Notes

Decision

1

Yml update with return types with examples of the payload



2Update CPS openAPI.yml with return types

CPS-401 - Getting issue details... STATUS


References

Follow principles/patterns of RESTCONF RFC-8040 https://datatracker.ietf.org/doc/html/rfc8040
Follow principles/patterns of yang-patch RFC-8072 https://datatracker.ietf.org/doc/html/rfc8040
Follow principles/patterns of RESTCONF NMDA RFC-8527 https://datatracker.ietf.org/doc/html/rfc8527



  • Create a Wiki page with a clear diagram showing NCM and DMI and its interfaces detailing the scope of THIS (and other) spike



  • No labels