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

Compare with Current View Page History

« Previous Version 68 Next »

Reference Material

Open Issues & Decisions

#DescriptionNotesDecision
1How to deal with hardcoded E2E NW Slicing model, spike

  Discusdons started with E2E NW Slicing Team, to be continued next week


2Which Simulator to use? NetConf Simulator Netopeer v2
  1. Nokia  
  2. Ericsson 
  3. Honeycomb(?)
  4. lighty netconf simulator

Rahul Tyagi Ericsson more lightweight, more experience.
Available CSIT standard setup

Swaminathan Seetharaman mentioned 'Honeycomb' simulator they used before. Need to investigate if it supports get-schema method over RESTConf/NetConf

Need to check if we can use it with E2E NW Slicing model


3Should (ONAP) dmi-instance be  as separate (springboot) application
Could be part of DMI Manager
DMI-Instance interface should be an open standard

Tony Finnerty and Team to allow easy integration of future 3rd part DMI-Plugin instances a separate application with its own REST Interface is required


Istanbul Roadmap

Priorities & Scope for Istanbul Release

PriorityDescriptionNotesIstanbul commitmentJira(s)
1Publish and Share NCMP Rest interface proposaldetailed for Istanbul scope, general structure only for functionality related to later releasesCommitted

CPS-391 - Getting issue details... STATUS

2Publish and Share DMI Plugin Rest interface proposaldetailed for Istanbul scope, general structure only for functionality related to later releasesCommitted

CPS-390 - Getting issue details... STATUS

3

Register a DMI Plugin with NCMP

DMI plugin registration is implicit part of CM handle registration (inventory update), REST endpoint on NCMP (can be multiple calls)Committed

CPS-350 - Getting issue details... STATUS CPS-384 - Getting issue details... STATUS CPS-352 - Getting issue details... STATUS CPS-353 - Getting issue details... STATUS CPS-389 - Getting issue details... STATUS
CPS-442 - Getting issue details... STATUS CPS-403 - Getting issue details... STATUS CPS-404 - Getting issue details... STATUS CPS-405 - Getting issue details... STATUS


4

Initial Inventory (semi hardcoded e.g. hidden rest endpoint

Additional properties for ONAP plugin may need ODL mountpoint, stored by NCMP and later provided to DMI plugin for each request. The mountpoint is created outside of CPS and DMI plugin.Committed

CPS-385 - Getting issue details... STATUS CPS-406 - Getting issue details... STATUS

5Passthrough Read operations for data (single cmHandle, synchronous only)Explicit specified Passthrough datastores only (ncmp-datastores:passthrough-*, see Datastore Mapping below) i.e. no resource-path or data format transformations required. 

Committed

CPS-388 - Getting issue details... STATUS CPS-394 - Getting issue details... STATUS

6

Create, Update & Delete operations for (single cmHandle , synchronous only )

Explicit specified Passthrough datastores only (ncmp-datastores:passthrough-*
Not expected these to be differ much from each other from a NCMP/DMI plugin perspective.
Committed

CPS-395 - Getting issue details... STATUS

7Inventory Changes define and implement interface to add & remove cm handleRelated to #3Committed

CPS-443 - Getting issue details... STATUS CPS-444 - Getting issue details... STATUS

8Model discovery (get and store model for a cm-handle)NCMP queries DMI plugin that provides information, for ONAP retrieved via SDNC/ODLCommitted

CPS-386 - Getting issue details... STATUS

9Retrieve list of modules (names) for a cmHandle - make higher priority Used by applications to get cached information from NCMP about modelsCommitted
10Manual (initial) data syncIncludes both NCMP and DMI APIsCommitted
11Support dynamic inventory changes (ONAP DMU Plugin)React to events from AAI sent over DMaaP, in turn using API in #7 for updatesStretch

CPS-392 - Getting issue details... STATUS CPS-393 - Getting issue details... STATUS

12Yang Patch operations for single cmHandle with ds = pass-through, synchronous only
Stretch
13Retrieve list of cm-handles that have a given module
Stretch
14Support yang-data+json output for all datastores
Stretch
15Trigger (initial) Data SyncMetadata (per cmHandle) controls whether this will happen or notOut of Scope
16

Implement -async option for CRUD and Patch operations


Out of Scope
17Support multiple cmHandles in a single call (bulk)
Out of Scope
18Support all cmHandles in a single call?
Out of Scope
19Support ds/ncmp-datastores:operational for read and query operations

This will probably be covered in Istanbul anyway for E2E NW Slicing Use-Case

Out of Scope

CPS-382 - Getting issue details... STATUS

Excerpt from CPS-391Spike: Define and Agree NCMP REST Interface :

Datastore, Paths and Format Combinations for Read Operations


StateInputBehaviorDataNotes
#Data-Sync Datastore parameter

Expected resourcePath

format

Accept-Header

Fields

(filter)

Data Source

Included DataNodes
(config)

1OnNot SpecifiedcpsPathapplication/yang-data+jsonN/ANot supportedN/AN/A
2OnNot SpecifiedcpsPathapplication/jsonN/ANot supportedN/AN/A
3Off

Not Specified

cpsPathapplication/yang-data+json

N/A

Not supported

N/AN/A


4OffNot SpecifiedcpsPathN/AN/ANot supportedN/AN/Athere are NO DataNode objects in CPS to output as JSON)
5OffNot Specifiedother then cpsPathN/AN/ANot supportedN/AN/ANot supported Since NCMP can only convert cpsPaths
6On | Offncmp/passthrough-operational

NCMP does not parse

NCMP does not parsedepends on DMI-Plugin
(supported in ONAP)

Resolve DMI plugin

Forward request to plugin

Output received response
DMI-Pluginconfig +
non-config

The DMI plugin may error if the RP or accept header are not supported.

The DMI plugin may forward the request without processing too.
7On | Offncmp/passthrough-runningNCMP does not parseNCMP does not parsedepends on DMI-Plugin
(supported in ONAP)

Resolve DMI plugin

Forward request to plugin

Output received response
DMI-Pluginconfig-only
8Onncmp/operationalcpsPathapplication/yang-data+json
  • Not supported in Istanbul releases.
  • Considered for Kohn Release

Read from cache

output: application/yang-data+json

CPS-Coreconfig +
non-config
NCMP/CPS-Core needs to remove DataNode wrapping

9Onncmp/operationalcpsPathapplication/json
  • Not supported in Istanbul releases.
  • Planned for Kohn Release

Read from cache

output: application/json

CPS-Coreconfig +
non-config

Output will use DataNode wrapping (as is from CPS-Core)

For forwarding (cached config off) dmi-reposne need to be wrapped explicitly in 'DataNode'

10Offncmp/operationalcpsPathapplication/yang-data+json

to be determined in spike, see issue #28


Resolve DMI plugin

Convert cpsPath to RESTConfPath*

Forward request to plugin | Read from DMI plugin

Output application/yang-data+json

DMI-Plugin

config +
non-config


11On | Offncmp/runningcpsPathapplication/yang-data+jsonto be determined in spike, see issue #28

Resolve DMI plugin

Convert cpsPath to RESTConfPath*

Forward request to plugin | Read from DMI plugin

Output application/yang-data+json

DMI-Pluginconfig-only

*Note Convert cpsPath to RESTConfPath wil only support 'absolute' cpsPath for conversion no query-type paths

Read Example

Read with fields
{ncmpRoot}/ncmp/v1/ch/<cmHandle>/data/ds/<datastore>/{dataResourceIdentifier}?fields={fieldsExpression}


URI :{ncmpRoot}/ncmp/v1/ch/node123/data/ds/ncmp-datastores:operational/TopElement[@id=1]/SomeFunction[@id=1]?fields=cell-model:Cell/attributes(attr1;attr2)
 
Header :
      Accept : application/yang-data+json
 
Response :
      200 OK
{
  "function-model:SomeFunction": [
    {
      "id": "1",
      "cell-model:Cell": [
        {
          "id": "Cell-001",
          "attributes": {
            "attr1": "value1",
            "attr2": "value2"
          }
        },
        {
          "id": "Cell-002",
          "attributes": {
            "attr3": "value3",
            "attr4": "value4"
          }
        }
      ]
    }
  ]
}



Works Items for above.

#DescriptionComponentEnables
1Forward request from NCMP to CPS-CoreNCMP8,9
2Forward request from NCMP to DMI-PluginNCMP6,7
3Convert json (dataNode) to yang-data+jsonCPS-Core/NCMP8
4Convert cpsPath to RESTConf PathNCMP10,11
5Enhance &fields parameter where neededNCMP10,11+fields option
6NOT SupportedN/A1,2,3,4,5

Datastore, Paths and Format Combinations for Write Operations

  • Write operations are only supported on the ncmp-datastores:running and ncmp-datastores:passthrough-running datastores
  • The Data Target for all write operation is DMI-Plugin
  • Write operations are only supported for config=true data
  • Fields and similar parameters are not supported for write operations

StateInputBehaviorNotes
#Data-Sync OperationDatastore parameter

Expected resourcePath

format

Content-Type
1On | OffCreatencmp/passthrough-running

NCMP does not parse

NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page)

Resolve DMI plugin

Forward request to plugin

Output received response (success or failure)

The DMI plugin may error if the RP or content type are not supported.

The DMI plugin may forward the request without processing too.
2On | OffReplacencmp/passthrough-running

NCMP does not parse

NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page)

Resolve DMI plugin

Forward request to plugin

Output received response (success or failure)

The DMI plugin may error if the RP or content type are not supported.

The DMI plugin may forward the request without processing too.
3On | OffDeletencmp/passthrough-running

NCMP does not parse

NCMP doesn't expect any input data from application, will create request body to DMI plugin without embedded data.

Resolve DMI plugin

Forward request to plugin

Output received response (success or failure)

The DMI plugin may error if the RP or content type are not supported.

The DMI plugin may forward the request without processing too.
4On | OffPatchncmp/passthrough-running

NCMP does not parse

NCMP only checks it is valid JSON, then embeds the data in a larger JSON structure (see CPS-390 page)

Resolve DMI plugin

Forward request to plugin

Output received response (success or failure)

The DMI plugin may error if the RP or content type are not supported.

The DMI plugin may forward the request without processing too.
5On | OffCreatencmp/runningcpsPathapplication/yang-data+json

Resolve DMI plugin

Convert cpsPath to RESTConfPath

Forward request to plugin

Output received response (success or failure)


6On | OffUpdatencmp/runningcpsPathapplication/yang-data+json

Resolve DMI plugin

Convert cpsPath to RESTConfPath

Forward request to plugin

Output received response (success or failure)


7On | OffDeletencmp/runningcpsPathN/A

Resolve DMI plugin

Convert cpsPath to RESTConfPath

Forward request to plugin

Output received response (success or failure)


8On | OffPatchncmp/runningcpsPath

application/yang-data+json

(*plain patch)

Resolve DMI plugin

Convert cpsPath to RESTConfPath

Forward request to plugin

Output received response (success or failure)


9On | OffPatchncmp/runningcpsPathapplication/yang-patch+json

Resolve DMI plugin

Convert cpsPath to RESTConfPath

Forward request to plugin

Output received response (success or failure)


Write Example

Write Example
 


Epics Summary


#EpicProject/ComponentDescriptionComments
1

E2E Network Slicing

CPS-382 - Getting issue details... STATUS


CPS/NCMP

create rest interface on northbound for GET/POST/PUT/DELETE to access yang data.
Note. Currently driven by "E2E Network Slicing" Use Case mix of CPS-CORE and NCMP Interface

  1. interfaces for yang data are: operational, intended, pass-through (selection can be done by parameter)
  2. check with netconf-sim if current nw slicing yang model can be imported including its imports.

2

DMI-Registry

CPS-350 - Getting issue details... STATUS

(NCMP) DMI-Registry

Create  dmi-registry. Data Model Inventory Interface (DMI)

'Internal service' no public Java or REST API

responsibilities are

  1. Store & retrieve cm-handle/dmi-plugin mapping in yang modelled CPS data table.
    1. include additional data (key-value pars as provided by dmi-Plugin)
  2. Dmi manager is to select the dmi instance at runtime for cm handle for a northbound (write) request

3

DMI-Plugin

CPS-384 - Getting issue details... STATUS

DMI-Plugin (ONAP impl.)

Common standard (REST and Java?) interface for extensibility

create dmi plugin for onap. Its responsibility of admin to provide instance of dmi. 

  1. extract dmi-plugin into separate container consensus on rest interface is needed.
4

Inventory

CPS-385 - Getting issue details... STATUS

DMI-Plugin (ONAP impl.)
  • Capability to get initial Inventory
  • Process Inventory updates

5

Model & Data Sync

CPS-386 - Getting issue details... STATUS

DMI-Plugin (ONAP impl.)

6

Pass-Through Support

CPS-388 - Getting issue details... STATUS

DMI-Plugin (ONAP impl.)
  1. dmi plugin instance (onap-dmi) have sdnc connector to access sdnc.
  2. call get/post/put/delete towards restconf interface (forward northbound write requests)
Possibly overlaps with #1 E2E Network Slicing

Data Stores

IETF Datastores Architecture (source https://datatracker.ietf.org/doc/html/rfc8342#page-11)
     +-------------+                 +-----------+
     | <candidate> |                 | <startup> |
     |  (ct, rw)   |<---+       +--->| (ct, rw)  |
     +-------------+    |       |    +-----------+
            |           |       |           |
            |         +-----------+         |
            +-------->| <running> |<--------+
                      | (ct, rw)  |
                      +-----------+
                            |
                            |        // configuration transformations,
                            |        // e.g., removal of nodes marked as
                            |        // "inactive", expansion of
                            |        // templates
                            v
                      +------------+
                      | <intended> | // subject to validation
                      | (ct, ro)   |
                      +------------+
                            |        // changes applied, subject to
                            |        // local factors, e.g., missing
                            |        // resources, delays
                            |
       dynamic              |   +-------- learned configuration
       configuration        |   +-------- system configuration
       datastores -----+    |   +-------- default configuration
                       |    |   |
                       v    v   v
                    +---------------+
                    | <operational> | <-- system state
                    | (ct + cf, ro) |
                    +---------------+

     ct = config true; cf = config false
     rw = read-write; ro = read-only
     boxes denote named datastores

Datastore Mapping in ONAP DMI Plugin impl.

#Incoming DS value (NCMP & DMI Rest interfaces)Outgoing (non-NMDA RestConf Node)Notes
1/ds/ncmp-datastores:operational
content=all
RO
2/ds/ncmp-datastores:running
content=config
RW
3/ds/ncmp-datastores:passthrough-operational
content=all
RO
4/ds/ncmp-datastores:passthrough-running
content=config
RW
5/ds/<anything-else>?TBC

Component description diagram

Interfaces

Sequence diagrams













  • No labels