Commit
6628a50e4eb772ffb6002ea469663672e1d86091
by andre
enb-cells-2ca: fix config to match cell-id and cc idx
add comment explaining how the sceneario can be used. also adopt cell IDs to match the CC index of the eNB. This makes sure the cell_gain command of srsENB works with the config.
Commit
4b7c585561ef567a7a3bc6bae67d69d4b829edc2
by Pau Espin Pedrol
ms: Fix and use ms msisdn() getter
The getter method was named the same as the itnernal field, and hence when used it would fail since the intenral field would be sleect and fail to be called.
Commit
410912333e058910df237598847d7b3d8fe84cae
by Pau Espin Pedrol
4g: Introduce ZMQ GnuRadio stream broker
srsENB currently creates 1 zmq stream (1 tx, 1 rx) for each cell (2 if MIMO is enabled). Each cell transceives on a given EARFCN (and several cells can transmit on same EARFCN).
However, for handover test purposes, we want to join all cells operating on the same EARFCN to transceive on the same ZMQ conn, so that an srsUE can interact with them at the same time (same as if the medium was shared). Furthermore, we want to set different gains on each of those paths before merging them in order to emulate RF conditions like handover.
In order to do so, a new element called the Broker is introduced, which is placed in between ENBs and UEs ZMQ conenctions, multiplexing the connections on the ENB side towards the UE side.
A separate process for the broker is run remotely (ENB run host) which listens on a ctrl socket for commands. An internal Broker class is used in osmo-gsm-tester to interact with the remote script, for instance to configure the ports, start and stop the remote process, send commands to it, etc. On each ENB, when the rfemu "gnuradio_zmq" rfemu implementation is selected in configuration, it will configure its zmq connections and the UE ones to go over the Broker.
As a result, that means the UE zmq port configuration is expected to be different than when no broker is in used, since there's the multiplexing per EARFCN in between.
In this commit, only 1 ENB is supported, but multi-enb support is planned in the future.
The handover test passes in the docker setup with this config: """ OSMO_GSM_TESTER_OPTS="-T -l dbg -s 4g:srsue-rftype@zmq+srsenb-rftype@zmq+" \ "mod-enb-nprb@6+mod-enb-ncells@2+mod-enb-cells-2ca+suite-4g@10,2+" \ "mod-enb-meas-enable -t =handover.py" """
and in resources.conf (or scenario), added: """ enb: ... cell_list: - dl_rfemu: type: gnuradio_zmq - dl_rfemu: type: gnuradio_zmq """
Note that since the broker is used, there's not need for mod-srsue-ncarriers@2 since the broker is joining the 2 enb cells into 1 stream on the UE side.
Commit
83a2fdca9b8d2e256c1ae5a84b7dde5a13d0f2da
by Pau Espin Pedrol
ms: Allocate default msisdn internally
Don't wait until adding it to the subscriber data base, since the msisdn may be needed beforehand (for instance in follow up patch to be passed to osmo-msc configuration to route emergency calls).
Commit
c230efcb19b88bdaf2fb44d87075c60d69e5dacc
by Pau Espin Pedrol
intra-freq-ho{-sameport}.conf: add scenarios for intra-freq HO cells
we need to use two different configs for Amarisoft and srsENB. Amarisoft combines the two cells and transmits them on the same RF port, whereas srsENB sends them on a single port each.
Commit
fbb8611381c6572a282aeb785c5c48cb4cb16a04
by Pau Espin Pedrol
gnuradio zmq broker refactoring
First step towards support everal ENBs and installing the remote script at runtime:
* The gnuradio broker class is moved to its own file, to decouple it from RFemu. * The ENBs are registered earlier in the test so that the GrBroker knows when to start (delay start + setup until all ENBs have been configured). * Handle ENBs internally as a list.