You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

There has been extensive work to port and validate SEBA running on ARM hardware, as described here.

The work for porting SEBA on ARM has started even before the SEBA Blueprint was made part of the Telco Appliance Blueprint Family and it did not target the TA Platform at that time. For this reason, the information captured in this page is not dependent or heavily tailored to using the TA Platform. However, since this is the only effort for porting SEBA on ARM architecture, and the work happens almost entirely in the context of Akraino, it made a lot of sense to have the information under the SEBA Blueprint wiki page.

SEBA for ARM Architecture Documentation

Please refer to the SEBA Blueprint Architecture Document for a high level architectural view of the SEBA Blueprint. The same principles and considerations apply here as well.

For a broader, more general view of the SEBA architecture, HW/SW requirements and usecases, please visit the upstream Opencord resources:

The same principles and guidelines apply for running SEBA on ARM as well, with the mention that running on ARM equipped HW generally requires a more in-depth knowledge of the HW and SW platform.

SEBA ARM Hardware

Servers built with ARM Processors have been around for quite some time and there are a few different offerings on the market. However, for the effort of porting SEBA on ARM, the work has focused primarily on using just a few of them, based on commercial availability, costs and performance:

SEBA ARM Porting Iteration 1

The initial effort for porting SEBA on ARM started officially in Akraino in early 2019. At that time, the upstream Opencord project had released CORD Platform 6.1 and SEBA 1.0 as described in the CORD 6.1 Guide.

Find more information in the related sub-pages:

SEBA ARM Porting Iteration 2

The latest effort for porting SEBA on ARM has since moved away from the old CORD Platform 6.1 and SEBA 1.0 because there was no more real interest in the upstream Opencord project to maintain them, and at the same time the operators were pushing for adding more functionality and make SEBA better in quality and production ready.

Ever since late 2019, Opencord has started working on SEBA 2.0, having realeased a SEBA 2.0-alpha based on CORD Platform 7.0. The major component of SEBA, VOLTHA, has also been bumped from v1.6 to v1.7.

The SEBA 2.0-alpha release notes lists the major changes from the previous version.

However, the SEBA 2.0-alpha release was not considered stable enough at the time of the release, so the development work has continued upstream until a more stable, development version could be used as a reference for porting.

Software base

The 2nd interation of the SEBA for ARM port uses a snapshot of the master (development) branch of the various Opencord components, which was taken at a point in time where it was stable enough to be considered for porting.

The porting was done on several key components from Opencord.

Main helm-charts repository

Opencord stores all the helm charts components in the helm-charts repository. This allows keeping the charts under version control and tracking changes by the developers.

The porting started out from this repository, which has been forked to the iecedge github account, at some point in the beginning of March 2020. In order to distinguish the iecedge work from the upstream branches, everything is separated on the cord-7.0-arm64 branch, as indicated. The base reference is commit 6622ff3.

iecedge/helm-charts - cord-7.0-arm64

It corresponds roughly to cord-platform-7.2.3 and seba-2.0.0-alpha1 but for specific chart versions and application versions you can consult the following spreadsheets from the Akraino Jira:

SEBA-2.0 for ARM64 - chart versions

In summary, here are the most important components and their chart and application versions:

ComponentChart versionApp VersionComments
etcd-operator0.8.30.9.3
kafka0.13.35.0.1
zookeeper1.2.0v3
ONOS2.0.1-b22.2.1-b5
VOLTHA1.0.91.7.0
xos-core3.0.133.3.1xos-tosca version 1.3.0
seba-services1.4.4N/Asee spreadsheet above for more details
att-workflow1.3.0N/Aatt-workflow driver chart version 1.1.2 appVersion 1.2.3

SEBA-in-a-Box and automation-tools

During the porting phase, it was decided to use SEBA-in-a-Box in the daily work, because it offers better view of the components involved and things that don't work. This has greatly helped with the porting work.
At the same time, SiaB is the only way that Opencord tests SEBA as a whole in daily jobs (see Opencord Jenkins CI - SiaB Jobs), and so it made sense to adopt the same tools and port them to ARM.

The main repository used for SiaB is the Opencord automation-tools. This has been forked to iecedge github account, also under the cord-7.0-arm64 branch. The base reference is commit 5220aeb.

iecedge/automation-tools - cord-7.0-arm64

Test framework - cord-tester

You can read more about the Opencord test framework at these locations:

For the purpose of validating SEBA for ARM in Akraino, only a part of the testing framework has been re-utilized.
Because testing a real usecase requires a complex setup and dedicated PON Hardware, for now only SEBA-in-a-Box has been ported and adapted to work in the Akraino CI.
This means adopting cord-tester and reproducing the SIAB stable Jenkins Job.

The cord-tester was forked to iecedge github account, under cord-7.0-arm64 branch. The base reference commit is 5ce76d4.

iecedge/cord-tester - cord-7.0-arm64

Deliverables and installation notes

Helm repository

SEBA is generally deployed using 3 set of charts, referred here as "combined charts" or "release charts":

  • cord-platform
  • seba
  • workflow charts (e.g. att-workflow)

The usual method is to add a helm repository and then install these one by one, as described in the SEBA Blueprint Installation Guide.

For the 2nd iteration of the SEBA porting effort, a helm repository has been created using github.com pages. You can view the helm repo index.yaml here:

https://iecedge.github.io/helm-charts/cord/index.yaml

Step by step installation instructions as follows:

  • Add the CORD repository and updated indexes
helm repo add cord https://iecedge.github.io/helm-charts/cord
helm repo update
  • Install the CORD platform
helm install -n cord-platform --version 7.2.3-dev-arm64 cord/cord-platform
  • Install SEBA
helm install -n seba --version 2.0.0-dev-arm64 cord/seba
  • Install workflow
helm install -n att-workflow --version 1.3.0 cord/att-workflow


  • No labels