Versions Compared

Key

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

Table of Contents

Introduction

SDN-R is a specialization of the OpenDaylight controller, developed in the OpenDaylight project.

Technical bullets

  • OSGi architecture, using the Apache Karaf runtime environment.
  • OpenDaylight framework for Service Abstraction (MDSAL), NETCONF, YANG Tools
  • Docker/Linux for feature bundling and provisioning

...

The development of SDN-R bases on ONAP elements CCSDK, SDNC, OOM and ONAP Documentation.

Each of this elements is represented by different gerrit repositories for the path of service delivery:

  • CCSDK provides features (=single feature) and feature bundles feature bundles (= meta feature or microservice)
  • SDNC provides an image, prepared to run in the the ONAP service environment
  • OOM provides scripts and configurations for deployment in the complex ONAP solution targeting Helm and Kybernetes Kubernetes as platform
  • ONAP Documentation is providing user developer documentation, delivered via INTERNET

SDN-R is not listed. This is because it is defined by a specific configuration of the SDNC container, established during provisioning by OOM Scripts.

Development steps

This description is using SDNR WT microservice or feature as example.

  • SDN-R = SDNC containers + SDN-R configuration

One piece of SDN-R functionality is a microservice. The microservice is running in OSGi (Karaf) context using the Opendaylight platform and provided as a features and OSGi bundles.

Development steps

The general The steps to provide this feature are descibed by the list below with examples in the following sections

Provide feature code

In the gerrit ccsdk/feature repository in the path sdnr/wt the sources for all bundles located.

In the following directory tree there are two sdnr services northbound and wt:

Code Block
sdnr/
├── northbound
│   ├── energysavings
│   └── oofpcipoc
└── wt
	├── featureaggregator
	├── apigateway
	├── helpserver
	├── devicemodel
	├── devicemanager
	├── websocketmanager2
	├── odlux
	├── pom.xml
	└── README.md

The sdnr/wt bundles apigateway, helpserver, devicemodel, devicemanager, websocketmanager2, odlux are providing the functionality.

The featureaggregator

  • is packaging all above feature bundle into one ZIP installer
  • providing a single karaf feature that can be used to install the complete service in a distibution container.

.
The development work is done in four onap gerrit repositories, following  the ONAP prozesses and rules: 

Stepgerrit-repoPath in repoDesciption
1ccsdk/features/sdnr

Provides the features as

  • Karaf feature (XML)
  • ZIP containing all bundles in MVN Repo format for Karaf Repo
2sdnc/oam/installer/sdnc

Project to create the SDNC image.

  • Add the new service to ODL as feature and provide it into repository
  • Add installer for new service
3oom/kubernetes/sdnc

Add functionality to configure and start your service.

  • Add installer for new Service

Details are in SDN-R Dev Steps and Repositories

Beside code the documentation has to be added and included into ONAP ReadTheDocs.

Development steps depicted

The steps 1 and 2 of the development and delivery to ONAP project are depicted here:

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameSDN-R Development
simpleViewerfalse
width
diagramWidth921
revision6

SDN-R Sandbox

For development purpose and local testing there is a further github repository available that can be used as sandbox with less strict access. 

The sdnr sandbox is located here: https://github.com/onap-oof-pci-poc/ccsdk

  • This repository is a merge of the gerrit repositories ccsdk/feature and ccsdk/distribution using the bold marked elements as subdirectories in difference to the ONAP gerrit, but using the same directory structure below. 
  • There are further ReadTheDocs and OOM/HELM related information available in this repository.
  • The github/ccsdk/distributions are designed to allow a simpler setup using docker on a development server.

...