software/ors-amarisoft: MultiRU
Hello up there. This merge-request brings in major update to ors-amarisoft software release: first eNB is significantly restructured to prepare base for further changes, and then we add support for working with multiple radio units and multiple cells with all LTE/NR and FDD/TDD simultaneously. All kinds of Carrier Aggregation - LTE+LTE, NR+NR and LTE+NR are now supported. All kinds of Handover - Intra-ENB, Inter-ENB with LTE→NR and NR→LTE are now supported as well. UE simulator is also updated to support multiple radio units, cells and UEs. In the new system configuration of RU, CELL, PEERCELL, PEER and UE objects are done via shared instances attached to the main eNB or UEsim instance.
Most of the parameters become runtime settings instead of being static choice of particular software template. There is no longer multiple rendered softwares - all that remain is
-
software.cfg
for generic software, and -
software-ors.cfg
for ORS.
Switching to configuring things at runtime became possible because SlapOS Master
recently switched to new JSON-editor with support for oneOf
, arrays and
conditionals - bits that make it possible to configure settings in the WEB UI
with multiple choices for e.g. RF mode, cell or radio unit type.
For ORS full backward compatibility is preserved via special proxy which
translates ORS input schema to configuration objects of the new generic eNB.
Since most our current ORS deployments are TDD, software-ors-tdd.cfg
link to
software-ors.cfg
is also provided to preserve backward compatibility at
software-release URL level for those instances.
eNB and gNB are merged along the way. Unittests are improved. JSON schemas
become primary source for defaults(*). Unnecessary parameters are removed and
are now computed automatically. For example it is no longer needed to
explicitly specify SSB NR-ARFCN for peer NR cell, or txa0cc00_center_frequency
for Lopcomm RU. tx_gain
and rx_gain
become generic parameters that
semantically apply uniformly to all Radio Units.
A protection against buildout code injection via specially-crafted references
of shared instances is installed. The problem was noticed because instantiation
was failing with spaces in the references - a condition that is present by
default on the testnodes. Solving the problem generally via custom "buildout
encoding" was not hard and probably the solution might be useful not only for
ors-amarisoft software release. Please see the patch "Protect from buildout code injection"
for details.
There are more minor enhancements and bug fixes in there.
Please see individual patches for details.
Kirill
/cc @jhuge, @lu.xu, @tomo, @xavier_thompson, @Daetalus
(*) this goes in line with similar design choice to make JSON schemas primary source of defaults in Rapid-CDN: !1380 .