UnstableChanges

Summary

  1. enb/ue: Assign zmq binding ports dynamically at runtime (details)
  2. ms: Fix and use ms msisdn() getter (details)
  3. 4g: Introduce ZMQ GnuRadio stream broker (details)
  4. ms: Allocate default msisdn internally (details)
  5. sysmocom: Introduce suite to test emergency calls (details)
  6. sysmocom: Enable emergency call testing in default-suites.conf (details)
  7. sysmocom: Introduce test to verify emergency call preemption (details)
Commit 92a29d6b7ebfb69ae7c41000ae8e3ef309346099 by pespin
enb/ue: Assign zmq binding ports dynamically at runtime

ports are assigned increasingly in blocks in the range 2000-2200.

Change-Id: If2abddeb2ad6819de4f3ce64daaf00d2f527f9d2
The file was modifiedsrc/osmo_gsm_tester/obj/enb.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_amarisoft.py
The file was modifiedsrc/osmo_gsm_tester/core/resource.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_srs.py
Commit 4b7c585561ef567a7a3bc6bae67d69d4b829edc2 by pespin
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.

Change-Id: I2f631eb6256eb0e065f41d5b7531395c4a054cd8
The file was modifiedsysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py
The file was modifiedsysmocom/suites/ussd/assert_extension.py
The file was modifiedsysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_ofono.py
The file was modifiedsysmocom/suites/debug/interactive.py
The file was modifiedsysmocom/suites/smpp/esme_ms_sms_transaction.py
The file was modifiedsysmocom/suites/encryption/lib/testlib.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms.py
The file was modifiedsysmocom/suites/nitb_ussd/assert_extension.py
The file was modifiedsysmocom/suites/smpp/esme_ms_sms_storeforward.py
The file was modifiedsrc/osmo_gsm_tester/obj/hlr_osmo.py
The file was modifiedsysmocom/suites/nitb_debug/interactive.py
Commit 410912333e058910df237598847d7b3d8fe84cae by pespin
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.

Change-Id: I6282cda400558dcb356276786d91e6388524c5b1
The file was modifiedsrc/osmo_gsm_tester/obj/enb.py
The file was addedsrc/osmo_gsm_tester/obj/rfemu_gnuradio_zmq.py
The file was modifiedsrc/osmo_gsm_tester/obj/rfemu.py
The file was modifiedsrc/osmo_gsm_tester/obj/enb_srs.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_srs.py
The file was modifiedsrc/osmo_gsm_tester/obj/enb_amarisoft.py
The file was modifiedsysmocom/scenarios/mod-enb-cells-2ca.conf
The file was addedutils/bin/osmo-gsm-tester_zmq_broker.py
Commit 83a2fdca9b8d2e256c1ae5a84b7dde5a13d0f2da by pespin
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).

Change-Id: I0d6902687e4beb3d6cdcefd4e343f21496100504
The file was modifiedsrc/osmo_gsm_tester/obj/ms_amarisoft.py
The file was modifiedsrc/osmo_gsm_tester/obj/hlr_osmo.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_srs.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_ofono.py
The file was modifiedsrc/osmo_gsm_tester/obj/nitb_osmo.py
The file was modifiedsrc/osmo_gsm_tester/obj/epc_amarisoft.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms_osmo_mobile.py
The file was modifiedsrc/osmo_gsm_tester/obj/epc_srs.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms.py
Commit 680ba0303877006e59e81b92abb689ac78f14594 by pespin
sysmocom: Introduce suite to test emergency calls

Change-Id: I2e851c94311ded0abd4ff072b8cc72316d972750
The file was modifiedsrc/osmo_gsm_tester/obj/ms_ofono.py
The file was addedsysmocom/suites/emergency/suite.conf
The file was modifiedsrc/osmo_gsm_tester/obj/msc_osmo.py
The file was modifiedsrc/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl
The file was modifiedsrc/osmo_gsm_tester/obj/bts.py
The file was modifiedsrc/osmo_gsm_tester/obj/ms.py
The file was modifiedsrc/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl
The file was addedsysmocom/suites/emergency/emergency_mo_mt_call.py
Commit 3329d9db0ae9022758bd3552b851f94735920b18 by pespin
sysmocom: Enable emergency call testing in default-suites.conf

Change-Id: I9524ed9bc4f2d5f8e29313565400e90c64820988
The file was modifiedsysmocom/default-suites.conf
Commit 66c054288b44431c6056c6ca59a7f5dd4d2611a6 by pespin
sysmocom: Introduce test to verify emergency call preemption

Change-Id: I59993e65b3fd34fb2c3e5b002ab9666db9b7bad5
The file was addedsysmocom/suites/emergency/emergency_preemptive_call.py
The file was modifiedsysmocom/suites/emergency/suite.conf