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
https://wiki.akraino.org/display/AK/SEBA+Testing
SebaImageDependencyList-03032019.xlsx
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
Merged:
Open
Other patches abandoned have not been listed here.
The drawing above corresponds to the initial plan outlined by Zack 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.
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:
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:
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.
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:
https://jenkins.opencord.org/job/voltha-publish/
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.
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.