SEBA has numerous dependencies that have to be ported to and/or validated on Arm hardware. As of February 25, 2019, this is the status of that effort. The items in red still need to be ported and tested. I've included the actual spreadsheet with links for ease of use.
Also, we have now confirmed that the major CORD components, including ONOS, do run on Ampere eMAG, Cavium TX1, Rockchip 3328, Rockchip 3399, HiSilicon Hi1616, and AllWinner H5.
Code is available at [iec.git] / src / use_cases / seba_on_arm /
Testing is available at
Trevor Tao Updated the spreadsheet with latest completions and also included % completion at bottom. Now 100% complete on total dependencies.
This is a list of patches on gerrit.opencord.org, obtained by filtering by the owner
- Change 13803 - [CORD-3245] Add Arm64 Dockerfile Support for XOS-GUI
- Change 14161 - Modify alpine version to 3.9 for supporting Arm64
- Change 16284 - Pin mdl to 0.5.0 to fix packer basebuild
- Change 14186 - [CORD-3246] Add support for docker build on arm64
- Change 14494 - [CORD-3247] Add support for docker build on Arm64
- Change 14628 - [CORD-3248]Add support for docker build on arm64
- Change 15235 - Add multi-arch support for alpine-grpc-base
- Change 13900 - Add arm64 support for xos-api-tester images build
- Change 15815 - Add multi-arch support for xos
- Change 16076 - [CORD-3251] Add multi-arch support for xos-rest-gw
- Change 14756 - Add arm64 support for voltha-netconf images build
- Change 14040 - Add arm64 support for voltha-base images build
- Change 14695 - Add arm64 support for voltha-ofagent images build
Other patches abandoned have not been listed here.
SEBA Upstreaming work
The drawing above corresponds to the initial plan outlined by Zachary Williams from Open Networking Foundation, covered in the multi-arch brigade Technical starting points for the Multiarch brigade.
The rationale for doing this upstreaming work has been discussed in the CORD SEBA weekly meeting, you can listen to the recording 2019 07 02 SEBA Meeting.
Add support for ARM64 for the CORD Docker images
This is the initial goal, to be able to have continuous support for ARM64 for the Docker images that make up the CORD components. This is especially important since Opencord is moving very fast towards adding new functionality and improving the quality and scalability.
Subsequently, to achieve this we need to cover two bases:
Packer support for ARM64
This is needed because Opencord uses Packer built images as a build environment for the Docker images. The images are built as Amazon AWS ami images, so in fact when a Docker image is built, an AWS instance is spawned, and in here the docker build command is issued.
For the Packer ARM64 support work there are details in the Opencord JIRA SEBA-877. Further more, there were a few gerrit changes submitted to this end:
- https://gerrit.opencord.org/#/c/16608/ - Add pandoc and graphviz for documentation tasks - submitted by firstname.lastname@example.org
- https://gerrit.opencord.org/#/c/16624/ - Folllow up to the previous, submitted by email@example.com
- https://gerrit.opencord.org/#/c/17480/ - Add support for arm64 in Packer templates - submitted by firstname.lastname@example.org
Recently, more issues surfaced regarding this work, and now we need to add support to Python3, since Python2.7 is not supported anymore.
Also, since Opencord uses LF tools (releng-global-jjb and releng-common-packer), the incentive is to also move to the new Ansible provisioning method.
Jenkins Jobs for building Docker images
This is the actual work that enables ARM64 support for building the Docker images. It's not entirely clear now how to go about this, whether it means duplicating jobs or not, but as a reference here is the Jenkins job that builds and the VOLTHA images to Dockerhub voltha repository:
Towards this end, we will need to re-work the list of initial patches sent to upstream, mentioned above. The patches have either gone stale, or do not fit well with the way the infrastructure works, and that is why at the moment those patches cannot be accepted in upstream.
Add support for ARM64 in upstream helm-charts
The Opencord project uses helm charts to deploy SEBA, and these are under version control in the helm-charts repository. Ideally we would want to be able to use the same repository once the Docker images are in place. This can probably be achieved by introducing custom yaml config scripts that will make the charts point to the correct Docker images for ARM64.
Install CORD Platform & SEBA
First, clone the AArch64-specific helm charts for cord-platform, seba, att-workflow and bbsim using:
Test/operate a SEBA installation