Versions Compared

Key

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

Table of Contents

Reference Material

...

#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

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

View file
nameONAP Rel I - NCMP Roadmap.pptx
height150

Suggested Epics & User Stories 

4What 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  

5What 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  

6How to handle any other (custom) datastore value

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

7What 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

View file
nameONAP Rel I - NCMP Roadmap.pptx
height150

Priorities & Scope for Istanbul Release

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

Jira
serverONAP Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-391

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

Jira
serverONAP Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution

#EpicProject/ComponentDescription(Suggested) StoriesComments1

E2E Network Slicing

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-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. Spike API for Update and Delete Operations
    Jira
    serverONAP JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-278
     
  2. 'List' support
    1. Jira
      serverONAP JIRA
      serverId425b2b0a-557c-3c0c-b515-579789cceedb
      keyCPS-360
    2. Jira
      serverONAP JIRA
      serverId425b2b0a-557c-3c0c-b515-579789cceedb
      keyCPS-361
    3. Jira
      serverONAP JIRA
      serverId425b2b0a-557c-3c0c-b515-579789cceedb
      keyCPS-362
  3. Remove/migrate? 'hardcoded generic models used in H release"
  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

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-383

(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
Define and Agree Yang Data Model  JiraserverONAP JIRA

serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-

352Create Dataspace & Anchor for DMI Registry  JiraserverONAP JIRA

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

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution

serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-

353Spike: How will DMI Plugin (De-?)Register with NCMP (DMI Registry)  Jira

350
Jira

serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-

389
  • Implement Plugin Registration (DMI Registry Side)
  • Add CMHandle (registration) incl. 'Additional properties'
  • Remove CMHandle (registration)
  • 3

    DMI-Plugin

    384

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    384DMI-Plugin (ONAP impl.)

    Common standard (REST and Java?) interface for extensibility

    create dmi plugin for onap. For production its responsibility of admin to provide instance of dmi. 

    352
    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-353
    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-389

    Define and agree NCMP & DMI REST Interfaces (Ericsson will provide output internal study) 


    Jira
    serverONAP

    JIRA

    Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    390

    442
    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    391
  • Implement Plugin Registration (DMI Plugin Side)
  • create module dmi-onap-plugin Rest and Impl modules. Suggestion (TBC):
    1. sub-module dmi-notification-handler
    2. sub-module dmi-rest
    3. sub-module dmi-plugin
  • create infra for separate spring boot application and docker image for dmi-plugin
    1. extract dmi-plugin into separate container consensus on rest interface is needed.
    4

    Inventory

    403
    Jira
    serverONAP Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-404

    Jira
    serverONAP

    JIRAserverId425b2b0a-557c-3c0c-b515-579789cceedbkeyCPS-385DMI-Plugin (ONAP impl.)
    1. At first, on A&AI change event over DMaaP, create mapping for cm-handle and dmi instance and sync yang model and data.
      1.  Filter (register) only yang modelled xnf instances's cm-handle, based on event header information of Node

    Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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
  • MVP: hard-coded inventory list
  • Spike A&AI inventory list  

    Jira
    serverONAP

    JIRAcolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution

    Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    392Spike A&AI event subscription & filtering  

    445

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    3935Model & Data Sync

    385
    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    386DMI-Plugin (ONAP impl.)
    1. Spike SDNC Interface for Model Retrieval  
      Jira
      serverONAP JIRA
      serverId425b2b0a-557c-3c0c-b515-579789cceedb
      keyCPS-394
    6

    406

    5Support 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

    Pass-Thru SupportSpike SDNC Interface for CRUD Operations   Jiraserver

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    382DMI-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)

    388
    Jira
    server

    ONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-

    395Possibly overlaps with #1 E2E Network Slicing

    Interfaces

    ...

    394

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-486
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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:

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-395
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-562

    Jira
    serverONAP Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-532
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-575

    7Inventory Changes: define and implement interface in NCMP to allow DMI plugin to add, update & remove CM handlesOverlap with #3, used by #4 and #13Committed & Delivered

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-443
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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/ODLCommitted & Delivered

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-386

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-483
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-484
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-505
    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-506

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-508

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-531

    9Retrieve list of modules (names) for a CM handleUsed by applications to get cached information from NCMP about modelsCommitted & Delivered

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-485

    10Explicit (initial) data-sync for a CM handle (extend model-sync started in step #8)Triggered by client using REST endpoint on NCMPDelayed until Jakarta

    Jira
    serverONAP Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-507

    11Support 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

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-382

    12Support 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

    Jira
    serverONAP JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-392
    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-393

    14Retrieve list of cm-handles that have a given module
    Delayed until Jakarta
    15Automatic (optional) Data Sync Metadata (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
    19Invoke 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 :

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


    Epics Summary

    Jira filter all user stories in all epics:  

    Jira
    serverONAP Jira
    jqlQueryfilter=12609
    counttrue
    serverId425b2b0a-557c-3c0c-b515-579789cceedb

    #EpicProject/ComponentDescriptionComments
    1

    E2E Network Slicing

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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

    Jira
    serverONAP JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-385

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

    5

    Model & Data Sync

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-386

    DMI-Plugin (ONAP impl.)

    6

    Pass-Through Support

    Jira
    serverONAP JIRA
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-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

    Jira
    serverONAP Jira
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyINT-1902

    All

    Data Stores

    Code Block
    titleIETF Datastores Architecture (source https://datatracker.ietf.org/doc/html/rfc8342#page-11)
    collapsetrue
         +-------------+                 +-----------+
         | <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


    Excerpt

    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/ANot supported

    ...

    #typenameparams
    1POSTregister_dmi_plugin
    1. dmi-plugin-id
    2. name
    3. adress
    4. other-params
    2POSTcreate_cm_handle
    1. cm-handle
    2. dmi-plugin-id
    3DELETEdelete_cm_handle
    1. cm-handle
    #method_nameparamsreturn
    1getDmiPluginByCmHandlecm-handledmi-plugin-object

    ...

    JIRA Status Tracking

    Epic: 

    Jira
    serverONAP JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-321

    ...


    Component description diagram

    draw.io Diagram
    bordertrue
    diagramNameCPS NCMP Deployment Proposal
    simpleViewerfalse
    linksauto
    tbstyletop
    lboxtrue
    diagramWidth889
    revision17

    Interfaces

    draw.io Diagram
    bordertrue
    diagramNameNCMP and DMI
    simpleViewerfalse
    width200
    linksauto
    tbstyletop
    lboxtrue
    diagramWidth355
    revision4

    Sequence diagrams


    draw.io Diagram
    bordertrue
    diagramNameCopy of CPS NCMP Deployment Proposal
    simpleViewerfalse
    linksauto
    tbstyletop
    lboxtrue
    diagramWidth691
    revision5

    ...