CCSDK R6 Frankfurt Architecture Review

Brief Project Overview (brief as it should be known)

The Common Controller Software Development Kit (CCSDK) provides common components (libraries and docker images) used as a basis to construct controllers.  These components include:

  • Common parent pom.xmls, derived from the OpenDaylight parent poms, designed to be used by OpenDaylight-based ONAP controllers (APPC and SDNC).

  • Service Logic Interpreter (SLI): provides the ability to make real time changes in controller behavior through the user of directed graphs.

  • Controller Design Studio : allows operators to make real time changes to device configuration data formats/translation rules.

  • Support libraries used by DCAE and OOM.

New component capabilities for Frankfurt, i.e. the functional enhancements.

The following table lists the Frankfurt functional requirements which impact CCSDK.

Requirements

Requirements

REQ-37: Multi Domain Optical ServiceDone

REQ-33: Integration of CDS as an Actor in Control LoopsDone

REQ-267: 5G Run-Time Data Persistence (Runtime Config DB) In Progress

REQ-84: PNF Software Upgrade using direct Netconf/Yang interface with PNFDone

REQ-53: Enhancement on PNF S/W Upgrade with EM with AnsibleDone

REQ-96: PNF S/W Upgrade with Netconf/yang with EMDone

REQ-38: 5G / ORAN & 3GPP Standards HarmonizationDone

REQ-49: 5G NRM Configuration Management with RESTFul protocolDone

REQ-42: Scaling (Frankfurt)Done

REQ-158: E2E Network Slice orchestration in R6 FrankfurtDone

REQ-174: Remove dependencies on Python2Done

REQ-182: K8s CDS SupportDone

CCSDK-1910: Password removal from OOM Helm chartsClosed

CCSDK-8: Decouple CCSDK from OpenDaylight / Karaf : phase 1Closed



These requirements require enhancements to existing CCSDK functionality, as opposed to new interfaces. 

New or modified interfaces

CCSDK itself has no interfaces, but does provide interface adaptors used by client controllers.  There is one new such adaptor of note in Frankfurt:

If they are modified, are the backwards compatible?

N/A - CCSDK itself has no interfaces.

Interface naming (point to an example)

CCSDK provide the following APIs:

  • ASDC-API : RESTCONF interface used to process certain non-TOSCA artifacts distributed by SDC (license model updates).

  • dataChange : RESTCONF interface pub/sub interface that allows controller to be notified on data change events (note: not currently used in ONAP use cases)

  • LCM : RESTCONF interface used to handle LifeCycle Management events

  • SLI-API : RESTCONF interface to service logic interpreter.  Used primarily for health check.

  • selfservice-api : gRPC interface used with CDS

  • oofpcipoc-api : RESTCONF interface used for OOF/PCI integration

Reference to the interfaces.

All APIs have Swagger documentation, which is referenced in readthedocs

What are the system limits?

Since CCSDK is a toolkit, this doesn't really apply.

Involved use cases, architectural capabilities or functional requirements.

CCSDK is used in the following use cases:

  • vFW

  • vDNS

  • vCPE

  • VoLTE

  • CCVPN

  • 5G



Listing of new or impacted models used by the project (for information only).

None