CI Software
The CI pipeline is driven by Jenkins and OsmoGSMTester, a python-based framework which enables control of base stations, modems and other CI platform hardware, such as digitally controlled RF attenuation.
CI test configuration is based heavily on that used by the Osmocom Cellular Network Infrastructure (CNI) project, which OsmoGSMTester is developed as part of and where it is used for testing GSM network software.
With thanks to the Osmocom project and sysmocom for creating OsmoGSMTester and publishing CI configuration.
Phase 1 Commissioning
At this point the CI platform has been validated with a simple test configuration which:
Clones srsRAN with native LMS API support and builds this
Deploys software binaries plus eNodeB and EPC configuration to CIRAN1
Starts a self-contained LTE network with a single subscriber provisioned
Attaches a CIMODS8 modem to the LTE network
Executes a ping test to confirm end-to-end operation
The above screenshot shows a network run and ping test passing, with this Jenkins project depending upon an earlier build project execution.
Note that some configuration still needs updating to replace “GSM” with “LTE” and “srslte” with “srsran”.
Resources
Detailed documentation will be provided in due course, but in the meantime links are provided to software and configurations used.
OsmoGSMTester: https://github.com/myriadrf/osmo-gsm-tester/tree/lc/main
Includes updates for more recent srsRAN version, LMS API support and others.
Ofono: https://github.com/myriadrf/ofono/tree/osmo-gsm-tester
Mirror of sysmocom Ofono fork with patch to enable working with network namespaces. It’s possible this will need additional patching in future.
CI scripts: https://github.com/myriadrf/lc-ci/tree/lc/main
Fork of osmo-ci, with updates to reflect LibreCellular hardware and test requirements.
srsRAN: https://github.com/myriadrf/srsRAN/tree/native_lime_22.04
Fork of srsRAN with native LMS API support (no SoapySDR layer)
Next steps
The next steps include re-deploying software components using Ansible and Docker, since so far this has been manually installed and configured, and run without any containerisation.
Once sufficient familiarity has been gained with the software, decisions will need to be made regarding contributing patches upstream. For example, this may be appropriate with general fixes or improvements, but not with configuration which is specific to the CI hardware platform.