contrib: build amarisoft: Set trx_zmq.so RPATH to point to copied dependency libsrslte_rf.so
In the ENB case it's not really required since osmo-gsm-tester makes use of LD_LIBRARY_PATH. However, since the UE is potentially run with capabilitites to create tunnels and alike, LD_LIBRARY_PATH cannot be used and lteue will fail to load trx_zmq.so (because it cannot find its dependency libsrslte_rf.so).
this commit adds basic support for configuring measurements in the eNB config. It currently support A1, A2, and A3 events. By default UE measurements are turned off and need to be enabled by configuring an event with:
+mod-enb-meas-event@{name},{report_type},{value},{hysterisis},{time to trigger}
For example one can update the a2 and a3 event with:
Use the ifup script to set up the netns + configure the tun device created by lteue. Use it also as a hook to know when the UE is attached. Since tun setup is done by arch-optimized lte-avx(2) binaries, we also need to give capabilitites to them (instead of allowing inheritance of caps in general in the setcap script).
For some reason these classes were still not inheriting from the base class (probably because it was added after they existed) and they started failing after recent changes which presumed they where already inheriting.
It contains simple usual setups to get started with osmo-gsm-tester, such as creating a 4G network using srsLTE or a 2G network using the osmocom stack (+ ofono modems).
Some older iperf3 versions don't support the --logfile arg. Let's instead parse the json from stdout. Old --logfile behavior is left in code but disabled since it's a nicer (less hacky) way to get results, because parsing from stdout means we need to avoid reading some content.
enb: add optional gtp_bind_addr paramter to enb class
this allows to optionally specify a the GTP bind_address for a enb object in the resources.conf
this address is then used for binding the listening socket for gtp connections which, in turn, allows to run the enb and epc on the same host.
when gtp_bind_addr is not specified, addr is used by default
this is especially useful if eNB and EPC run on the same host and ZMQ is used for RF between eNB and UE. Two eNB addresses are needed in this case, one bind address and one "remote-accessable" address for the UEs ZMQ radio to connect to
This way we avoid unconditionally importing all subclass dependencies, and make them optional based on whether the setup has devices of that type or not.
check_dependencies: Import modules dynamically and find related debian packages
This way we don't need to manually add new imports here or drop unusued ones. It also makes sure local imports in all our py files is correct. For instance, running the script already caught an issue which is added to this patch (osmo_ms_driver/__main__.py).
This new version of the script also allows specifying subsets of features to skip when checking for dependencies. This way, for instance somebody not willing to use a sispm powersupply can stil check all the needed dependencies are fine.
This new tool will make it easier to slowly make some dependencies only used by some object test classes optional (for instance, python-smpplib if user doesn't want to run an ESME node).
It also allows to retrieve the required debian/manually installed packages when run with "-p" option: """ Debian packages: libpython3.5-minimal:amd64 python3-gi python3-six libpython3.5-stdlib:amd64 python3-pygments python3-yaml python3-mako python3-numpy python3-markupsafe
Modules without debian package (pip or setuptools?): usb [dpkg-query: no path found matching pattern /usr/local/lib/python3.5/dist-packages/usb/_interop.py] pydbus [dpkg-query: no path found matching pattern /usr/local/lib/python3.5/dist-packages/pydbus/proxy.py] smpplib [dpkg-query: no path found matching pattern /usr/local/lib/python3.5/dist-packages/smpplib/command_codes.py] sispm [dpkg-query: no path found matching pattern /usr/local/lib/python3.5/dist-packages/sispm/__init__.py] """
ms_srs: fix ZMQ radio arguments for CA and MIMO configs
similar to the eNB patches this fixes the CA and MIMO radio parameters. In pricinple this could also be reused for the AmarisoftUE but since we currently don't have a means to test it I left it for a future commit.
Generate schemas dynamically from pieces provided by each object class
This way we benefit from: * knowing which attributes are used/required by each object class and subclass * Having validation function definitions near the class going to use them
Drop old one in doc/ which contains lots of outadated stuff already placed in the User Manual. Write a new markdown README in the root directory with pointers to places in the repo and the issue tracket, ansible setup, etc.