this patch adds the ability to configure NR cells with
Amarisoft eNB. It adds the new DRB-NR template and updates
the normal enb.cfg template to allow using it as LTE only
or with NR cells (5G NSA).
this allows, without changing the test case, to use a custom
template, which is useful for development. By default, nothing changes
and the OGT template is used
this patch adds generic support for custom frequency bands to the ms class.
it then extends the config template for AmariUE to use them.
we set the default values for EARFCNs for DL/UL to the old values.
this config option overwrites the EARFCN config that is typically
used to tell the UE the bands to scan for cells. When custom
frequencies are used, this option allows to set them explicitly.
the UEs count param, if specified, is mapped into the config
values of the EPC so it can be used for template rendering.
Since we only have one count parameter, its added to the first
subscriber. 1 is the default value and its used when no count
param is specified.
this allows to run the Amarisoft UE simulator with the Amarisoft EPC
without having to create subscriber entries for each simulated UE.
Despite open5gs allowing to change the GTP ports in the config file, in
reality changing those values to something else than the standard prot
will fail. Hence, we must use the standard port. As a result, we must
use different IP addresses in each process to avoid ip+port collisions.
Let's use some loopback addresses which shouldn't require extra
configuration on the host, and still only requiring 1 run_node as per
existing EPCs, with the limitation that only 1 open5gs EPC instance can
be run at one in a given run_node.
the ltesim_server is part of the UE package but needs to be executed
on the EPC run node. Therefore its handy to have the binary in the epc
we've provided only all_log_level so far but sometimes it's needed
to select the level per layer. This patch adds the ability
to do so for the NAS layer in the UE.
we previously mixed component specific and component agnostic APIs
(stdout vs. log file for example) for setting and retrieving KPI.
This patch propose to use a single abstract get_kpis() method for
all components that can be enriched with component-specific
stuff as desired.
In the case of srsLTE blocks, the main implementation will
remain in srslte_common() and is shared among srsENB/srsUE/srsEPC.
The KPI analyzer in srslte_common() extract and also manages
all three KPI sources (log, csv and stdout) independently.
In addition to the get_kpis() method that always returns a flat
dictionary, it also exposes get_kpi_tree() that return
a dict of KPI dicts that will be used for the Junit.xml generation.