CPS-333 Network Configuration Management (NCMP) scope for I release considerations

Reference Material

Open Issues & Decisions

Description

Notes

Decision

Description

Notes

Decision

1

How to deal with hardcoded E2E NW Slicing model, spike


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



2

Which 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

For E2E use case Honeycomb simulator wil be used. If needs be for certain non E2E functionality where this simulator has limitations the team can still decide to test/develop against NeToPeer simulator

3

Should (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

4

What datastores are supported/recognized by NCMP Interface in Istanbul Release

Suggested, see Datastore paths and format combinations section below

  1. ncmp-datastores:operational (will use cached data when sync=On)

  2. ncmp-datastores:running (will forward to DMI-Plugin in Istanbul release)

  3. ncmp-datastores:passthrough-operational (always forward to DMI-Plugin)

  4. ncmp-datastores:passthrough-running (always forward to DMI-Plugin)

Suggestions in previous column were agreed in CPS Weekly meeting Jun 4, 2021 

5

What datastores are supported/recognized by (ONAP) DMI-Plugin Interface in Istanbul Release

Suggested exact same as NCMP supported options

  1. ncmp-datastores:operational (for cmhandles with sync=Off)

  2. ncmp-datastores:running

  3. ncmp-datastores:passthrough-operational

  4. ncmp-datastores:passthrough-running

Suggestions in previous column were agreed in CPS Weekly meeting Jun 4, 2021 

6

How to handle any other (custom) datastore value



Agreed in CPS Weekly meeting Jun 4, 2021 : Both NCMP and DMI-Plugin wil not support any other datastore value in the Istanbul timeframe

7

What to do with old CM-Proxy interface implemented in H.

Methods never really used by E2E Network Slicing team. 

Methods will be 'deprecated' using Open API option for that.. Replace and refactor other layers as needs when new methods using the new API are being implemented



Istanbul Roadmap

Priorities & Scope for Istanbul Release

Description

Notes

Istanbul commitment/delivery

Jira(s)

Description

Notes

Istanbul commitment/delivery

Jira(s)

1

Publish and Share NCMP Rest interface proposal

detailed for Istanbul scope, general structure only for functionality related to later releases

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-391

2

Publish and Share DMI Plugin Rest interface proposal

detailed for Istanbul scope, general structure only for functionality related to later releases

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-390

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 & Delivered

https://lf-onap.atlassian.net/browse/CPS-350https://lf-onap.atlassian.net/browse/CPS-384https://lf-onap.atlassian.net/browse/CPS-352https://lf-onap.atlassian.net/browse/CPS-353https://lf-onap.atlassian.net/browse/CPS-389
https://lf-onap.atlassian.net/browse/CPS-442https://lf-onap.atlassian.net/browse/CPS-403https://lf-onap.atlassian.net/browse/CPS-404https://lf-onap.atlassian.net/browse/CPS-405



4

Support method to add initial inventory (e.g. hidden REST endpoint on ONAP DMI plugin)

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.

Note 1: This method (hidden REST endpoint) is expected to be a temporary solution, additional options are part of stretch goal (#13).
Note 2: Adding the initial inventory should also trigger a model-sync for each node in that inventory (step #8)



Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-445https://lf-onap.atlassian.net/browse/CPS-385https://lf-onap.atlassian.net/browse/CPS-406

5

Support ncmp-datastores:passthrough-operational for reading data (single CM handle, synchronous only)

See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12.
RestConf: content=all
NO conversion. NO schema's in OpenAPI Ymll (just String)

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-388https://lf-onap.atlassian.net/browse/CPS-394

https://lf-onap.atlassian.net/browse/CPS-486https://lf-onap.atlassian.net/browse/CPS-487

6

Support ncmp-datastores:passthrough-running for reading and writing data (single CM handle, synchronous only)

See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12.
Almost identical to step #5 above just RestConf: content=config

Committed but Partly Delivered:

https://lf-onap.atlassian.net/browse/CPS-395https://lf-onap.atlassian.net/browse/CPS-562

https://lf-onap.atlassian.net/browse/CPS-532https://lf-onap.atlassian.net/browse/CPS-575

7

Inventory Changes: define and implement interface in NCMP to allow DMI plugin to add, update & remove CM handles

Overlap with #3, used by #4 and #13

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-443https://lf-onap.atlassian.net/browse/CPS-444

8

Model discovery (automatic retrieval and caching of model information in NCMP for a CM handle)

NCMP queries DMI plugin that provides information, for ONAP retrieved via SDNC/ODL

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-386

https://lf-onap.atlassian.net/browse/CPS-483https://lf-onap.atlassian.net/browse/CPS-484https://lf-onap.atlassian.net/browse/CPS-505https://lf-onap.atlassian.net/browse/CPS-506

https://lf-onap.atlassian.net/browse/CPS-508

https://lf-onap.atlassian.net/browse/CPS-531

9

Retrieve list of modules (names) for a CM handle

Used by applications to get cached information from NCMP about models

Committed & Delivered

https://lf-onap.atlassian.net/browse/CPS-485

10

Explicit (initial) data-sync for a CM handle (extend model-sync started in step #8)

Triggered by client using REST endpoint on NCMP

Delayed until Jakarta

https://lf-onap.atlassian.net/browse/CPS-507

11

Support ncmp-datastores:operational for reading data (single CM handle, synchronous only)

See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12.

Delayed until Jakarta

https://lf-onap.atlassian.net/browse/CPS-382

12

Support ncmp-datastores:running for reading and writing data (single CM handle, synchronous only)

See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12.

Delayed until Jakarta



13

Support dynamic inventory changes (ONAP DMI Plugin)

React to events from AAI sent over DMaaP, in turn using API in #7 for updates

Possible in a generic way o it can also listen to similar events sent by SDN-R  (as suggested by @Ahila P)

Delayed until Jakarta

https://lf-onap.atlassian.net/browse/CPS-392https://lf-onap.atlassian.net/browse/CPS-393

14

Retrieve list of cm-handles that have a given module



Delayed until Jakarta



15

Automatic (optional) Data Sync 

Metadata (per cmHandle) controls whether this will happen or not

Out of Scope



16

Implement -async option for CRUD and Patch operations



Out of Scope



17

Support multiple cmHandles in a single call (bulk)



Out of Scope



18

Support all cmHandles in a single call?



Out of Scope



19

Invoke YANG modelled RPC or action



Out of Scope



API Changes

To support the added functionality in NCMP, changes are expected in the CPS external interface CPS-E-05. (For overview of CPS interfaces, see the CPS architecture page.) Changes are planned in the following areas, matching items in the scope/priority table above:

  • New APIs for reading data for CM handle

  • New APIs for writing data for CM handle

  • New API to request data sync for CM handle

  • New API to retrieve model information for CM handle

  • (stretch goal) New API to retrieve list of CM handles supporting a given module

Some existing CPS-E-05 APIs may be removed or deprecated if not currently used. See Decision #7

In addition to external APIs, extensions may be made to the CPS Core library to support some NCMP use cases. Plugin APIs will also be added to support communication between NCMP and DMI plugins.

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



Epics Summary

Jira filter all user stories in all epics:  

Getting issues...

Epic

Project/Component

Description

Comments

Epic

Project/Component

Description

Comments

1

E2E Network Slicing

https://lf-onap.atlassian.net/browse/CPS-382



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

https://lf-onap.atlassian.net/browse/CPS-350

(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

https://lf-onap.atlassian.net/browse/CPS-384

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

https://lf-onap.atlassian.net/browse/CPS-385

DMI-Plugin (ONAP impl.)

  • Capability to get initial Inventory

  • Process Inventory updates



5

Model & Data Sync

https://lf-onap.atlassian.net/browse/CPS-386

DMI-Plugin (ONAP impl.)





6

Pass-Through Support

https://lf-onap.atlassian.net/browse/CPS-388

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

7

E2E Integration test for CPS/NCMP

https://lf-onap.atlassian.net/browse/INT-1902

All





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 controller)

Notes

1

/ds/ncmp-datastores:operational

content=all

CT + CF, RO

2

/ds/ncmp-datastores:running

content=config

CT, RW

3

/ds/ncmp-datastores:passthrough-operational

content=all

CT + CF, RO

4

/ds/ncmp-datastores:passthrough-running

content=config

CT, RW

5

/ds/<anything-else>

N/A

Not supported



Component description diagram

Interfaces

Sequence diagrams