CPS-333 Network Configuration Management (NCMP) scope for I release considerations
Reference Material
Open Issues & Decisions
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
| @Rahul Tyagi Ericsson more lightweight, more experience. @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 | 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
| 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
| 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) | |
---|---|---|---|---|
1 | Publish and Share NCMP Rest interface proposal | detailed for Istanbul scope, general structure only for functionality related to later releases | Committed & Delivered | |
2 | Publish and Share DMI Plugin Rest interface proposal | detailed for Istanbul scope, general structure only for functionality related to later releases | Committed & Delivered | |
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 | CPS-350: Data Model Inventory Registry for NCMPClosedCPS-384: DMI-Plugin Interface and ONAP ImplementationClosedCPS-352: Create yang-model for DMI-Registry DataClosedCPS-353: Create Dataspace & Anchor for DMI Registry (upon deployment)ClosedCPS-389: Spike: Investigate DMI-Plugin (de-?) registration optionsClosed |
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). | Committed & Delivered | CPS-445: Integrate E2E NW Slice Simulator with SDNC in Xerces CPS Env.ClosedCPS-385: NCMP Initial Inventory & Updates (add & remove cm-handle)Closedhttps://lf-onap.atlassian.net/browse/CPS-406 |
5 | Support | 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. | 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 | 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. | 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 |
9 | Retrieve list of modules (names) for a CM handle | Used by applications to get cached information from NCMP about models | Committed & Delivered | |
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 | |
11 | Support | 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 | |
12 | Support | 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 | |
---|---|---|---|---|
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. |
|
2 | DMI-Registry | (NCMP) DMI-Registry | Create dmi-registry. Data Model Inventory Interface (DMI) 'Internal service' no public Java or REST API responsibilities are
| |
3 | DMI-Plugin | 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. |
|
4 | Inventory CPS-385: NCMP Initial Inventory & Updates (add & remove cm-handle)Closed | DMI-Plugin (ONAP impl.) |
| |
5 | Model & Data Sync | DMI-Plugin (ONAP impl.) | ||
6 | Pass-Through Support | DMI-Plugin (ONAP impl.) |
| Possibly overlaps with #1 E2E Network Slicing |
7 | E2E Integration test for CPS/NCMP | 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 |
| content=all | CT + CF, RO |
2 |
| content=config | CT, RW |
3 |
| content=all | CT + CF, RO |
4 |
| content=config | CT, RW |
5 |
| N/A | Not supported |