Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Status:

...

Updated by PTL on  
Component Status:

...

Updated by PTL on  

Last Reviewed on:

Certified by:

1. High Level Component Definition and Architectural Relationships

SDN-C / App-C:

draw.io Diagram
bordertrue
diagramNamesdnc_r7
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1064
revision12


Note:  ONAP has two application level configuration and lifecycle management modules called SDN-C and App-C. Both provide similar services (application level configuration using NetConf, Chef, Ansible, RestConf, etc.) and life cycle management functions (e.g. Stop, resume, health check, etc.).  They share common code from CCSDK repo.  However, there are some differences between these two modules (SDN-C uses CDS only for onboarding and configuration / LCM flow design, whereas App-C uses CDT for the LCM functions for self service to provide artifacts storing in APP-C Database).  SDN-C has been used mainly for Layer1-3 network elements and App-C is being used for Layer4-7 network functions.  This is a very loose distinction and we expect that over time we will get better alignment and have common repository for controller code supporting application level configuration and lifecycle management of all network elements (physical or virtual, layer 1-7).  Because of these overlaps, we have documented SDN-C and App-C together.

...

  • Configure Network Functions (VNF/PNF)
  • Provides programmable network application management platform:
    • Behavior patterns programmed via models and policies
    • Standards based models &protocols for multi-vendor implementation
    • Extensible SB adapters such as Netconf, Ansible, Rest API, etc.
    • Operational control, version management, software updates, etc.
  • Local source of truth
    • Manages inventory within its scope
    • Manages and stores state of NFs
    • Supports Configuration Audits

2. SDN-C/APP-C API definitions

Controller provides the following interfaces:

Interface NameInterface Definition Interface CapabilitiesAPI Spec (Swagger)
CONE-1

Operations Interface

APP-C : LCM

An interface to request for Lifecycle management operations on network resources.

This is the same interface as CONE-2, but is invoked by a command line tool (e.g. curl) instead of by a system.

No Swagger, but documented in ReadTheDocs
CONE-2

OSS Interface

APP-C : LCM

An interface to request for Lifecycle management operations on network resources

No Swagger, but documented in ReadTheDocs
CONE-3

Service Order Interface

(GENERIC-RESOURCE-API)

 An interface to request for Configuration and Lifecycle management operations on network resources

GENERIC-RESOURCE-API swagger (yaml)
CONE-4

Policy Interface

SDN-C: LCM

 An interface to support LCM requests such as Restart, Rebuild, Migrate, Evacuate operations on network resources (APP-C interfaces with openstack to send those LCM requests to VNF/VNF-C/VM) 

Swagger TBD - Interface format is the same as APP-C LCM (see ReadTheDocs)

The current API documents can be found at:

...

Interface NameInterface Definition Interface CapabilitiesAPI Spec (Swagger)
CONE-5Rest APIAn interface for communication with external systems such as IP management
CONE-6Resource Chef APIAn interface for configuration and Lifecycle management of network resources using Chef protocol
CONE-7Resource NetConf APIAn interface for configuration and Lifecycle management of network resources using NetConf protocol
CONE-8Resource Ansible APIAn interface for configuration and Lifecycle management of network resources using Ansible protocol
SDCE-6SDC Interface

An interface to receive resource Templates from SDC design catalog


CDSE-1CDS Interface

An interface to receive resource blueprint from CDS


AAIE-1Inventory Service Interface

 An interface to create, update, query, and delete resource information and relationships


POE-2aPDP Query API

 Policy Decision Point query for IP address



3. Component Description:

Image RemovedImage Added

4. known system limitations

  • Lack of clarity & roles in the controller (which controller does what?)
  • Proliferation of controller instances (many similar yet different controller instances)
  • Divergence of controller implementation (lack of common controller framework)
  • Duplicate and uncoordinated interfaces (lack of uniform common services in southbound interfaces)
  • Controller resiliency and horizontal scaling

5. Used Models

Controllers use the following models:

  • TOSCA
  • YANG

6. System Deployment Architecture


Controller consists of the following containers:

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNamexxxx Deployment View
simpleViewerfalse
diagramWidth1291
revision1

7. New Release Capabilities

  • Upgrade of ODL to Sodium (SR3 initially - SR4 when available in late August)Aluminum SR (Service Release) 2
  • Upgrade to Java 11
  • OpenDaylight separation:
    • Currently, CCSDK/SDNC/APPC is installed as a set of OSGi features within the OpenDaylight karaf container.  This means that each ONAP release is tightly coupled with a specific OpenDaylight release.  In order to loosen this coupling - so that ONAP deployers can use the same ONAP release with whatever OpenDaylight release suits their needs - CCSDK/SDNC/APP will move towards a microservice-based architecture, where components are installed as springboot-based containers.
  • / Python 3.
    • This was mostly completed in Guilin, but some cleanup is needed
      • Removal of Java 8 / Python 2 executables
      • Upgrade to Python 3.9
  • OpenDaylight separation:
    • In Honolulu release, SDNC will have 2 implementations of its generic resource API:
      • The current ODL-based implementation
      • A new springboot-based implementation
    • We plan to test both versions to validate completeness of the springboot-based implementation.  If successful, we would deprecate the ODL based version in Istanbul and remove it in Jakarta.
  • Note: RunTime Config DB in CCSDK has been replaced by the standalone project CPSRunTime Config DB is an independent component that is integrated with the ODL SDN-C controller in R7 (Guilin release). The RunTime Config DB capabilities are part of CC-SDK. q.v. CONFIGURATION & PERSISTENCY SERVICE R6 for more information.

8. References

  1.  APP-C overview & User Guide: https://docs.onap.org/en/casablanca/guides/onap-developer/developing/index.html#application-controller
  2. SDN-C overview & User Guide:  https://docs.onap.org/en/casablanca/guides/onap-developer/developing/index.html#software-defined-network-controller

...