Skip to content
Success

#282 (Oct 14, 2020, 12:00:52 PM)

Started 5 yr 4 mo ago
Took 3 min 39 sec on osmo-gsm-tester-prod
Build Artifacts
log162.50 KiB view
trial-282-run.tgz243.94 KiB view

Started by user Pau Espin Pedrol

Revision: 71336c2f3ad80c51c81dbe0db9d2612d07ea6db7
Repository: https://gerrit.osmocom.org/osmo-gsm-tester
  • refs/remotes/origin/master
Tests (no failures)
    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).

    Change-Id: Ifcbc6ed1c4c465b4cfab4c5689cde44624095f29
    Pau Espin Pedrol at
    pcu: Improve logging and gsmtap

    Change-Id: I506a39b114eed55a185d329cea5e9d6ba379a2ae
    Pau Espin Pedrol at
    templates: Improve cs7 config in osmo-{bsc,msc}

    Change-Id: I0aa0057c85e606d45e67d01b818db7549033bdbd
    Pau Espin Pedrol at
    amarisoftUE: adding basic support for Amarisoft UE

    Change-Id: Idda0d3a040663969dd71781814198b47fff7daf3
    Pau Espin Pedrol at
    amarisoftue.cfg.tmpl: fix UE bandwidth/rate config and power on automatically

    Change-Id: I2d63055d0648a1758905fd277c20edaeec8f9b85
    Pau Espin Pedrol at
    enb: add measurement modifier to scenario files

    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:

    +mod-enb-meas-event@a2,rsrq,-40,2,480+mod-enb-meas-event@a3,rsrp,6,1,512

    Change-Id: Ia7657be2396886840570bc41645450a268b4cfff
    andre at
    pcu: Enable 'egprs only' vty option if egprs requested

    Change-Id: Idd0b5bf8769d693480268c0a0b89dbfd63779e48
    Pau Espin Pedrol at
    Move suites/ dir inside example/

    example/paths.conf and documentation are updated accordingly.

    Test suites should have been moved a long time ago, since the they are
    user or setup-specific based on what needs to be tested.

    Change-Id: I154b19979b545deba8b232b60172903f63fd9e28
    Pau Espin Pedrol at
    amarisoft_ue: fix UHD support

    the Amarisoft UE seems to be only working with UHD when the bandwidth
    param is provided. It seems the set_bandwidth() API is used.

    Change-Id: I3f20a5a8ca80c63374f0ad500fd2794e2dc45479
    andre at
    srs/amarisoft{ue,enb}: Fix b200 specific rf_dev_args

    Commit 12ae6d79a5b53a213f619999ef0230c1dae88bb7 switched the rf_dev_type
    to be in lowercase but forgot to change these conditions.

    Change-Id: I91d3877381b4e6343dc4aa0465e699341ed6648d
    Pau Espin Pedrol at
    utils/bin: Support passing several bin files to setcap helper scripts

    Change-Id: Ifa43f895ae0796d086f35778263aaba07f2e1b7a
    Pau Espin Pedrol at
    amarisoft_ue: Implement data plane

    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).

    Change-Id: I1e228b1296eac8e4cb183c2faa735b0468abe124
    Pau Espin Pedrol at
    pcu_{sysmo,oc2g}: Inherit from pcu abstract class

    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.

    Change-Id: I88217baf490ec45373d0743585377ed2639a8cfd
    Pau Espin Pedrol at
    bts_oc2g: Fix missing import remote

    Change-Id: I318683b8dc6215f5bf863cfb1581e2c3bfa05621
    Pau Espin Pedrol at
    bts_oc2g: Fix ready_for_pcu() waiting forever

    Change-Id: Id33e527591164b87d1e14b7922247b726267ad6e
    Pau Espin Pedrol at
    Get rid of install top directory

    Some content there is out of date, or should be mvoed to utils/ with the
    rest of installable stuff.

    Change-Id: I17ee94b175deb88faff71e7788c482093693f8a8
    Pau Espin Pedrol at
    Move example/ and ttcn3/ to sysmocom/ and sysmocom/ttcn3

    This content is mostly specific to sysmocom's setup (thought it can
    still be re-used by other people if willing to).

    symlinks in ttcn3/ pointing to example/ are redone to point to
    sysmocom/.

    Change-Id: I364e0859c0851b9167907a4d948b659a0f6a19fb
    Pau Espin Pedrol at
    Introduce doc/examples/ directory

    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).

    Change-Id: I55d5b1152da201799af21a77ef6c562f97bd94fc
    Pau Espin Pedrol at
    Rename object classes to be {obj_class}_{implementation}

    Change-Id: Ieafd96d7ee5b4baef08ca767629b93834f6a8c7c
    Pau Espin Pedrol at
    Create core directory to contain most of code not in object classes used by tests

    Change-Id: I9aec6c55ccd71894182057d36e0025b69925d314
    Pau Espin Pedrol at
    Move object classes used by tests into obj/ subdir

    Change-Id: I0b2963cf00acd1f9036dca2e87aa3b87a0f8066d
    Pau Espin Pedrol at
    Rename modem.py to ms_ofono.py

    Change-Id: I050970986b0b3fbc23b756c5b7c524cb8b7c1327
    Pau Espin Pedrol at
    iperf3: Avoid using --logfile arg

    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.

    Change-Id: Ia1b7fa4dae074089878963aeddf0006aea68e31f
    Pau Espin Pedrol at
    enb_amarisoft: fix enb conf template name

    issue has been introduced during refactor of enb class names

    Change-Id: Ib3ad6451c3979440be28d8811f51ce5d1c103518
    andre at
    enb_srs.py: Pass filenames to main cfg file template instead of cmdline args

    Change-Id: Ifec6a8a9c29b94634f6ac7ea50aae9b8e18ae3cb
    Pau Espin Pedrol at
    epc_srs.py: Pass filenames to main cfg file template instead of cmdline args

    Change-Id: I1ac3a3cace7ec2b0f85c5d9a5f97d5007d7c65ac
    Pau Espin Pedrol at
    ms_srs.py: Pass filenames to main cfg file template instead of cmdline args

    Change-Id: Id2a6ba17d087d2ff67fe10b1dae6434259e74366
    Pau Espin Pedrol at
    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

    Change-Id: I4fe38f31401428ed3e74e1d0b64960f0af122d37
    andre at
    powersupply: Import sublcass module only if used

    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.

    Change-Id: I0d2f8b26364b45f0d837cc51078784d1d0fa7ea1
    Pau Espin Pedrol at
    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]
    """

    Change-Id: I29ddf8971837754abd930d847bd1036e8e510de6
    Pau Espin Pedrol at
    enb: Add cell_list attribute

    It allows configuring each cell_list up to a maximum of 'num_cells'.

    Change-Id: I4fd30a3e37789b76bfaddc2beba1815154daab7f
    Pau Espin Pedrol at
    powersupply.py: Fix import module line typo

    Recent commit changed the import line so it runs only when required, but
    added a typo making tests uing it fail.

    Change-Id: Id3e5c16adc763a9b79cc464937c541abd15f98de
    Fixes: 2b959580b9affe729e966c506656b7f47926c4bf
    Pau Espin Pedrol at
    srsenb_rr.conf.tmpl: Fix whitespace

    Change-Id: Ic2b4d8e2468984b096a870c878fa5d032ea4130f
    Pau Espin Pedrol at
    enb: Implement initial RF emulation API

    Two implementations are provided:
    * Amarisoft Ctrl interface (websocket)
    * Mini-Circuits Programmable Attenuator (HW, HTTP API) [1]

    in Amarisoft ENBs, if no rfemu is configured explicitly, the Ctrl
    interface one is used by default, while still being possible to use the
    HW one.

    [1] https://www.minicircuits.com/pdfs/RC4DAT-6G-60.pdf

    Change-Id: Ie98a3fb9bcd2b87b96ecbb5b79e0f53981892a32
    Pau Espin Pedrol at
    enb: Add attribute to set 'id'

    Change-Id: I8ce296c7875d557062dc13e7093ce0400050f2ce
    Pau Espin Pedrol at
    srsue, amarisoft/srsENB: Support setting rx/tx_gain attributes

    Change-Id: I4228ba8746a54db4c17443718c01069d431361b9
    Pau Espin Pedrol at
    AmarisoftUE: Fix setting tx/rx gain attr

    Fixes: a6d6304afccbd37462acf9ad8207d6ac29f25da9
    Change-Id: I344313863390a00604045dcc18e552aa789b282f
    Pau Espin Pedrol at
    AmarisoftENB: Support setting PCI value

    Change-Id: Ibffb95f9b55e145d76ba64119a73ef9f1ed7cdef
    Pau Espin Pedrol at
    enb: Introduce support for neighbour cell list

    Change-Id: If604f1f2643a73f8c4da6ae3e9d24cd6c7e52d06
    Pau Espin Pedrol at
    srsenb: Support neighbour and secondary cell lists in config file

    Change-Id: I8fe0703b7d9db69658c112066404d2da1c3d1e09
    Pau Espin Pedrol at
    amarisoftENB: Fix running with num_cells=2

    The B200 device being used in the physical setup doesn't support several
    RF ports, so let's hardcode it to 0 for now.

    Change-Id: Id4c31be2bd0c75f469e2293ade011c7b7ceedb1c
    Pau Espin Pedrol at
    jenkins-build-amarisoft: turn off other RF libs when building for zmq driver

    Change-Id: Ie4819d3f454d74e14829d02fbdc62a12f2d54cd5
    andre at
    jenkins-build-common.sh: also pass additional build flags to CMake

    Change-Id: I1c5998d31201505d0a2532f22f905ec155d6c094
    andre at
    amarisoft_enb: use two antenna ports for TM > 1

    Change-Id: Ia241f96341780760d482d389097659b0f7b897e8
    andre at
    enb: refactored rf_args handling for ZMQ-based radio

    this patch moves the rf_dev_args creation for both eNB types
    into the eNB base class, since they are identical.

    the patch also fixes the arguments for all CA and MIMO configurations

    Change-Id: I8ca3ed83e65dc07927385267e5970bc4f5b120d5
    andre at
    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.

    Change-Id: I16b00009f97d61a9ab4715e5d727024661d3d0be
    andre at
    srsenb_rr.conf.tmpl: extend CQI and SR subframe scheduling

    this fixes an issues when allocating CQI resources for multiple carriers
    or multiple users

    Change-Id: I8b9345502003da2f5b6841a98b77375656e84d8c
    andre at
    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

    Change-Id: I8fd6773c51d19405a585977af4ed72cad2b21db1
    Pau Espin Pedrol at
    Move object subclass instance allocation logic out of suite.py/resource.py

    This way we get rid of object related content in resource.py and we can
    finally move it to core/ in next commit.

    Change-Id: Ia5b861115ae3ae1b90149863c4265dcc730b8cd4
    Pau Espin Pedrol at
    Move resource.py to core/

    Change-Id: I0f36a5e61ff0ef14d08165c9c184acdf2d6e6901
    Pau Espin Pedrol at
    Move test.py and report.py to core/

    Change-Id: Ibb7fa5ab40bcf1e59705bdd2c2c5a76025b2b544
    Pau Espin Pedrol at
    Move all obj/ references in suite.py to testenv.py

    Change-Id: If4ab39be7a97d33e82c5a34e2a10dfec38613a4e
    Pau Espin Pedrol at
    Move trial.py and suite.py to core/

    Change-Id: Ic9a4c90c190e9d8e1829fbef83a9243f3c6f655b
    Pau Espin Pedrol at
    Update obj classes in obj/ to use testenv instead of suite_run

    Change-Id: Idf41243a497de7bc507b9f1cd1b38640f456f815
    Pau Espin Pedrol at
    tests: Replace 'suite' with 'tenv'

    Change-Id: I777ec59ffd83b861ddc09e85e52d7a8896264b8c
    Pau Espin Pedrol at
    testenv: deferr importing obj module class until use is required

    Change-Id: Ie073256a03bb2d038ef7f715d534afb1c53bb241
    Pau Espin Pedrol at
    check_dependencies: allow passing any module name to skip

    Change-Id: I53a384d54f32d766f70bd7e0bfbd9702939c8aa8
    Pau Espin Pedrol at
    ms_srs: import numpy module on first use

    Change-Id: I2ce974954028bdbc7bc1561c4538b909edee2cb1
    Pau Espin Pedrol at
    esme: import smpplib module on first use

    Change-Id: Icc92937fdada9210f788805dbc42b80014e345e8
    Pau Espin Pedrol at
    ms_ofono: import pydbus and GLib modules on first use

    Change-Id: I754e1290eb5593c0ef168f74747f42db1b50f16c
    Pau Espin Pedrol at
    powersupply_sispm: import sispm and usb modules on first use

    Change-Id: I6045bb739e5c69972014a9d27be3a24b7ad61c9a
    Pau Espin Pedrol at
    rfemu_amarisoftctrl: import websocket module on first use

    Change-Id: I568af52ffb7ac57222697f5d861a532c0e2a70de
    Pau Espin Pedrol at
    doc: Drop redundant app-name in install section

    Change-Id: I6ec3c42efd3eb958f832ff9a797ddaa3dae4a99a
    Pau Espin Pedrol at
    doc: install.adoc: Correctly split optional dependencies

    Change-Id: Id8b5dcd15fd86c670915b928112699d831e6e7b0
    Pau Espin Pedrol at
    Rework README file

    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.

    Change-Id: I9febe56223eaeadc9d31291dd0110a11470e3ab1
    Pau Espin Pedrol at
    osmo-gsm-tester.py: Fix import error when using default-suites.conf

    Recent commit refactoring stuff introduced an import error only
    triggered when default-suites.conf is used (no -s param).
    This commit fixes the issue.

    Fixes: ea8c3d4b1235ef703e54cd963bc96f6716168387
    Change-Id: I1534cfba55c69ed5c1354175f8b5df9b656b7d82
    Pau Espin Pedrol at
    suites/4g: Introduce sample handover test

    This test currently only works with AmarisoftENB and srsUE, because:
    * srsENB has no handover support yet
    * AmarisoftUE doesn't provide any known way to verify handovers.

    As a result, it usually runs with following filters and modifiers:
    amarisoftenb-rftype@uhd+srsue-rftype@uhd+mod-enb-ncells@2+mod-enb-meas-enable

    The get_counter() API may change in the future based on information
    available from other implementations.

    Change-Id: I0dff4af7e3a89804a03842ad4a4d697bca3a9773
    Pau Espin Pedrol at
    selftest/trial_test: Fix repr(RuntimeError) changing in new python version

    If using python 3.8.2, the trailing comma at the end of parameters is
    not longer there (probably got fixed, since it's not needed). That
    change breaks expected output.

    Change-Id: I6da3024f946c0e761099058e812c0eacf3d6071f
    Pau Espin Pedrol at
    selftest/process_test: Fix output changing in new python version

    On older versions apparently upon child termination due to SIGINT
    subprocess.poll() returned 1. On new python versions (such as 3.8.2),
    -2 is returned, according to documentation:

    A negative value -N indicates that the child was terminated by signal N (Unix only).

    Let's catch the SIGINT in the child process and exit with a known 42
    value to fix different behavior.

    Change-Id: I7949ff2b435e91e890061e6840b0f411f8b0a817
    Pau Espin Pedrol at
    selftest: Remove unused misc.py file

    Change-Id: I167bce29d7b22956c82053dcae5634c23d405b3f
    Pau Espin Pedrol at
    selftest: Move tests into own subdirectories

    Change-Id: Id21cda19df131e24402e1a593036e1e33a914920
    Pau Espin Pedrol at
    schema: Allow keys to start with a number

    YAML allows it, and it will allow suites tarting with a number on its
    name (like the '4g' one) to register its own schema on next commits.

    Change-Id: I64e5a9d6604085d3b17eba30498a5e7a66242cc8
    Pau Espin Pedrol at
    enb: add rf_port to cell list param

    we need to make the rf_port a param in the cell list because for CA with
    two cells on different EARFNCs, the RF port is different

    for two cells without CA on the same EARFCN the RF port is the same

    so we need to be able to configure it

    Change-Id: I32e83cc34811588757104c5ce1cae7277402addd
    Pau Espin Pedrol at
    srs_{enb,ue}: don't set sc12 as OTW format

    Change-Id: I7fc20d998b082f5c37b2451f1900161f997954b1
    Pau Espin Pedrol at
    Makefile: Add manual target to build user manual

    Change-Id: I61ff89db5666248de47cb9752a2aecdd6fd06f02
    Pau Espin Pedrol at
    Makefile: Implement clean target

    Change-Id: Ia21b0f184bfd454b3835774949f581a27860a80a
    Pau Espin Pedrol at
    Allow suites to dynamically register schemas so tests can receive parameters

    Change-Id: Idbe99a35993d193cd97059feb980e61ff14c67ad
    Pau Espin Pedrol at
    suites: 4g: Parametrize handover.py test

    Change-Id: I7de5acdaa6b905e52655786758bd51490add1d2b
    Pau Espin Pedrol at
    ms_driver: Fix typos after recent refactorings

    Change-Id: Id9709743648d60792ec64c97ab1bc6811c4e3e1e
    Pau Espin Pedrol at
    Deprecate envvar OSMO_GSM_TESTER_CONF and remove other ones

    Environment variable OSMO_GSM_TESTER_CONF is marked as deprecated and an
    error is logged each time it's used. Same feature is available through
    "-c" command line parameters, so having the envvar only makes things
    more complex for no good reason. It cannot yet be completely dropped
    since some environemnt still make use of it. Give some time to users to
    adapt their setups.
    Other environment variables setting some config apths can be dropped
    since they are not being really used in any setup.

    Change-Id: I7eb69f870d0dcb5906d45ae067d6bed1aabf5862
    Pau Espin Pedrol at
    osmo-gsm-tester.py: Update help description and remove old nope cmdline arg

    Change-Id: I879a5c30c185905614c2c5a7d54eb33817c94c31
    Pau Espin Pedrol at
    obj: Fix objects placing their content in suite rundir instead of test rundir

    Change-Id: I421d35473575086b93d5c8db98b909cc6c83d896
    Pau Espin Pedrol at
    suites/gprs: Catch unexpected iperf3 result content and print it

    Change-Id: I10f7f682da023f5e05e461b73f55cc50c5f36f79
    Pau Espin Pedrol at
    ms_srs: fix numpy import

    numpy is used in a few places in the class code so we need to jhave it
    available in a bigger scope, while still only loading when needed.

    Change-Id: Iea66e623e1c980a62d691e20dacb00df99fdd78f
    Pau Espin Pedrol at
    esme: fix smpplib imports

    smpplib modules are used in several places, so it's not enough to import
    them in the constructor since they are only imported for the function
    scope.

    Change-Id: I6511e28c7ef6aa86e85a7e03aa10a67d87896588
    Pau Espin Pedrol at
    Split Scenario class to its own file

    Change-Id: Ia029de7ecda4c8dc3d0b4c412e4c9c0a65cf0185
    Pau Espin Pedrol at
    selftest: Introduce scenario_test

    This covers some unit tests for scenario module (Scenario class).

    Change-Id: I4c80047bb03ae8254c192057007fa7df84478605
    Pau Espin Pedrol at
    Cmdline arg -c sets main configuration file (old paths.conf) instead of dir containing it

    It has been notified that current configuration system is difficult to
    understand and to use, so it has been envisioned to refactor it a bit.
    The idea is that the user passes a -c path/to/main.conf file, which in
    turn contains whatever osmo-gsm-tester main settings supports (basically
    what old paths.conf used to be, plus some files harcoded to the same -c
    directory are now configurable through the main configuration file).

    Change-Id: Ieca65b71b543c44cfcec8e83efd0fe053c432e55
    Pau Espin Pedrol at
    doc/manuals: Swap order of schemas and config files

    First explain the different config files and directories, later describe
    the schemas used in each of them.

    Change-Id: Iaf31808a655a5c77a1dfaa155e86d42585130820
    Pau Espin Pedrol at
    Move check_dependencies.py to contrib/

    Change-Id: I8def867b1042cbb98bb36ff4a473b4cdb92ce122
    Pau Espin Pedrol at
    Move update_version.sh to contrib/

    Change-Id: I26218cd512a739fc26ba04be05f01260152d785f
    Pau Espin Pedrol at
    config: Allow setting trial directory in main.conf

    Change-Id: Ia4141001d084f690897dbdff5eae6c69ff2e521c
    Pau Espin Pedrol at
    ms_srs.py: Fix typos in comments

    Change-Id: Iaa09ed696eb58e63c366f26e94c66f27b5f733bf
    Pau Espin Pedrol at
    schema: Allow objects registering their own schema types

    Change-Id: I998c8674a55531909bfeac420064c3f238cea126
    Pau Espin Pedrol at
    iperf3: Support using configuring UDP protocol

    Change-Id: I0b3545847b01ae3d029881f243fea276f0fa39de
    Pau Espin Pedrol at
    config: suites_dir and scenarios_dir are now a list of paths

    This allows inheriting suites or scenarios from eg. sysmocom/ dir, while
    still allowing to apply new suites and scenarios on top.

    Change-Id: Icecdae32d400a6b6da2ebf167c1c795f7a74ae96
    Pau Espin Pedrol at
    iperf3: Support runing test with bidirectional data

    Change-Id: Ia6f12c65fd3ea26d412997741cb8685a9646af43
    Pau Espin Pedrol at
    4g: Pass max bitrate to iperf3

    Otherwise bitrate 0 (unlimited) does weird stuff, like iperf3 hanging
    forever in DL.

    Change-Id: I631243cce132923d9024f8161cf96161c51cdae5
    Pau Espin Pedrol at
    Replace RemoteProcessFixIgnoreSIGHUP with RemoteProcessSafeExit

    The API was doing far more stuff than its name indicated. Even more
    important stuff, like making sure the process is killed at the end with
    -9 after ssh connection is dropped.

    Change-Id: If043ecab509b34b0922824d73db916196274ec64
    Pau Espin Pedrol at
    enb_srs: Use RemoteProcessSafeExit instead of RemoteProcess

    It is known that sometimes srsENB hangs until it is killed -9, specially
    when using ZMQ backend. Let's use RemoteProcessSafeExit in order to make
    sure it is killed in an acceptable time (srs binaries use some
    preventive sigalarm 6 seconds auto-kill procedure, hence we use 7
    seconds) before next test is started and potentially try to re-use the
    same ENB and fails due to previous one still running.

    Change-Id: I905bd753c7822feccf1c1bb59752698f1d1b85f0
    Pau Espin Pedrol at
    process: Log stdout tail when process exits with error

    This is useful since remote processes we run under ssh end up merging
    both remote stdout and sterr into local stdout.

    Change-Id: Ibbfb099a667f21641075faa1858e0b9acd706fd2
    Pau Espin Pedrol at
    ms_srs: add max rolling average as metric operation

    this allows to calculate the rolling average over a specific
    window in time and take the maximum of that

    this is useful to get average value for 30s UDP traffic for
    example from the UE metrics

    Change-Id: I34bbfe08dbc1f27b86c9805f54649d44d697fa18
    Pau Espin Pedrol at
    ms_srs: allow + operator when specifying CSV columns

    this allows to sum dl_brate and ul_brate and perform
    the known operations, like max, average, etc. on both
    UL and DL bitrate combined

    For examples, with this CSV ..

    time;cc;pci;earfcn;rsrp;pl;cfo;dl_mcs;dl_snr;dl_turbo;dl_brate;dl_bler;ul_ta;ul_mcs;ul_buff;ul_brate;ul_bler;rf_o;rf_u;rf_l;is_attached
    1999;0;1;3400;-67;59;913;27;29;0.50;10432.000000;0;2.6;20;0.0;10848.000000;0;0.0;0.0;0.0;1.0
    2998;0;1;3400;-67;59;912;28;29;0.50;2136.000000;0;2.6;20;0.0;1680.000000;0;0.0;0.0;0.0;1.0
    3997;0;1;3400;-69;61;909;28;29;0.50;2136.000000;0;2.6;20;0.0;1680.000000;0;0.0;0.0;0.0;1.0

    .. one could calculate the average of DL and UL bit rate with:

    ue.verify_metric(1e6, operation='avg', metric='dl_brate+ul_brate', criterion='gt', window=test_duration)

    and veriy that it's average is greater than 1 Mbit/s

    Change-Id: I5c7c80bb107fa6b93b215176e6ebbb5dc8594860
    Pau Espin Pedrol at
    enb: fix UL max rate calculation

    don't double the maximum rate for UL traffic in MIMO since
    we are only using MIMO in the downlink

    Change-Id: I018e8ba8cb822a4bd57b8d0e420dd496172ac229
    Pau Espin Pedrol at
    ms_srs: wait 6s after stopping srsUE

    we've only waited when running with ZMQ but in fact we need
    to always wait because the UE may need some time to
    gracefully exit, i.e. send the detach request and shut down correctly.

    this is checked in cleanup() and verity_metrics(), so also before copying back
    the CSV metrics. But we only wait once.

    Change-Id: I47e46b8ccce41c9a62d2d6866260d22c927e710d
    Pau Espin Pedrol at
    Fix processes run with RemoteProcessSafeExit not receiving stdin

    Since the process is run in the background through the wrapper bash
    script, stdin was disabled there. By explicitly redirecting the bash
    process stdin we make sure it is always able to read from it.

    Change-Id: I6cb7979aae0a7457919f353cbeb4c3b78cdd4919
    Pau Espin Pedrol at
    Support identifying different tgz files based on run_label attribute

    tgz files in trials can be categorized in subdirectories, allowing to
    select different bianry files at runtime based on the target run node
    which is going to run them. This way for instance one can have a binary
    linked against libs for eg. CentOS under run_label "centos/" or an ARM
    target under "arm", and then use "run_label: arm" on the resource using
    it.

    Change-Id: Iaf2e97da3aff693395f44f0e93b184d4846cf6da
    Pau Espin Pedrol at
    epc_{amarisoft,srs}: Support selecting tgz based on run_node's run label

    Change-Id: I90b8dab8bdc9980a7d2486d890cff183c07f1809
    Pau Espin Pedrol at
    enb: Reuse run_node to hold run info

    Change-Id: If396940f154813d42ff3d3364c44b8979179127f
    Pau Espin Pedrol at
    ms_{srs,amarisoft}: Reuse run_node to hold run info

    Change-Id: Ifdea48fed0bfc152131c53b87c34b4514c632917
    Pau Espin Pedrol at
    enb_{srs,amarisoft}: Support selecting tgz based on run_node's run label

    Change-Id: Ie1c8ccd2ffc9680bd72159872f3de0d59f1b9b0b
    Pau Espin Pedrol at
    ms_{srs,amarisoft}: Support selecting tgz based on run_node's run label

    Change-Id: I2c4cab02fa34c7acc7e57c3fec5a42c26d2a9208
    Pau Espin Pedrol at
    enb: remove freq config for zmq operation

    specifiying the rx/tx_freq for the eNB is optional. But when
    it's done it needs to be correct. There seems to be an issue
    when mapping the freq[0-3] between srsENB and Amarisoft eNB.

    So it's safe to just drop the config here altogether.

    Change-Id: I70f5776173c2df5894031f68df2f6c3a900b79f8
    andre at
    ms_srs: sum bitrates for all component carrier

    when calculating the dl and ul bitrate, it is required to take the
    sum of all active component carriers since they are reported seperately
    inside the CSV file

    Change-Id: If30ec3f22ce5871f911433e6a6997e9c6e7ca210
    andre at
    process: Fix wrong use of log.ctx(self)

    That's not needed and will produce some parent loop detection in
    log.find_on_stack() if logging is called under that stack frame.

    Change-Id: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2
    Pau Espin Pedrol at
    log: Improve log ctx information in log.Error exception

    Before, it would show somethig like:
    """
    osmo_gsm_tester.core.log.Error: Exited in error 255
    """

    Now:
    """
    osmo_gsm_tester.core.log.Error: rm-remote-dir(pid=24820): Exited in error 255 [trial↪4g:srsue-rftype@zmq+srsenb-rftype@zmq+mod-enb-nprb@6↪ping.py:9↪ping.py↪srsepc_10.42.42.118↪host-jenkins@10.42.42.110↪rm-remote-dir(pid=24820)]
    """

    Change-Id: I8873f67a2f3df21c4dd552c92510535bf95e2c9d
    Pau Espin Pedrol at
    process: Improve launch_sync() exception due to process failing

    After this commit, in some situations ssh related errors are printed
    directly in the exception to quickly find cause of the issue.

    Example:
        FAIL: ping.py (5.0 sec) Error: rm-remote-dir(pid=25913): launch_sync(): local ssh process exited with status 255 (ssh: connect to host 10.42.42.110 port 22: No route to host) [trial↪4g:srsue-rftype@zmq+srsenb-rftype@zmq+mod-enb-nprb@6↪ping.py:9↪ping.py↪srsepc_10.42.42.118↪host-jenkins@10.42.42.110↪rm-remote-dir(pid=25913)]

    Change-Id: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8
    Pau Espin Pedrol at
    testenv: Get rid of 'resources' global variable

    Change-Id: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990
    Pau Espin Pedrol at
    selftest: template: Test existing overlay dir features

    Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309
    Pau Espin Pedrol at
    testenv: Support test overlaying a directory to look for templates

    This way tests which require a very specific config file can override
    specific template files used by object classes.

    Change-Id: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd
    Pau Espin Pedrol at
    doc: manual: Write initial Test API section

    Change-Id: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c
    Pau Espin Pedrol at
    report: Add trial name to junit 'testsuites' node

    Change-Id: I8cd62484bb67756e3d98d43a75731f4702acd2b7
    Pau Espin Pedrol at
    report: Add trial commit info to junit file

    Change-Id: I997bbbeb3807af5cd927594a4155b824f0c6d03d
    Pau Espin Pedrol at
    Fix ttcn3 testsuites after recent refactors

    Change-Id: I545e3141ef56980e4ef2474b990bd4e4d4c21322
    Pau Espin Pedrol at
    sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline

    Fix after recent huge refactoring.

    Change-Id: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde
    Pau Espin Pedrol at
    amarisoft_enb: fix RI config

    this cause all MIMO modes to fail because RI reporting was disabled

    Change-Id: Ic25233cf7feb4ded8b3d0f440191cc958d8bc0ec
    andre at
    enb: refactor ue_max_rate() and move helper function back to sub classes

    It turned out that the Amarisoft and SRS eNB scheduler produces
    slightly different maximum data rates for both UL and DL.

    Change-Id: I30fa7006906d101c53ba586fb06bced3945aa960
    andre at
    epc: add run function to EPC

    this allows, for example, to run a ping originating from the core to the UE

    Change-Id: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9
    andre at
    ms_srs: add PRACH, reestablishment and paging counter

    this allows to query the number of PRACH attempts and paging
    messages received during a test

    Change-Id: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f
    andre at
    srsenb_sib.conf_tmpl: fix whitespaces

    Change-Id: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067
    andre at
    srsenb_sib.conf.tmpl: increase default T311 value to 10s

    this matches the default of Amarisoft eNB so tests can use the same values

    Change-Id: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6
    andre at
    srsenb.conf.tmpl: reduce RRC inactivity timer to 5s

    the default value of 60s is too long to trigger errors in the handling
    of this timer. So a 5s timer is more likely to reveal potential issues
    during the test execution

    Change-Id: Id7a6739487c7875c4f26a47d05978c9ea9f33873
    andre at
    ms_srs: refactor UE state getter functions

    rename UE helper functions to query RRC connected/idle state
    and adapt tests accordingly

    also add helper to retrieve assinged IP address

    Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546
    Pau Espin Pedrol at
    4g_suite: add MT and MO test cases

    add two new test cases to test paging (MT) and MO traffic

    Change-Id: I5c7639f2c6953964a5b6979bc35f59464dbda43f
    Pau Espin Pedrol at
    handover.py: fix typo in test

    Change-Id: I9a52a341d7575807d3e52460e1aa24732e3b3112
    Pau Espin Pedrol at
    enb_srs: add extra head room for max rate with 6 PRB in MIMO mode

    the overhead with 6 PRB and MIMO is a bit higher when compared
    to other PRBs resulting in lower achievable throughput

    Change-Id: I63888435553bba4f7be88cc745e24472921a7fb4
    Pau Espin Pedrol at
    enb_amarisoft: decrease max rate for TM2+

    perhaps additional CRS for MIMO up to 25 PRB result in slighlt lower max rate

    Change-Id: I128085e308f400622683905245d42f92a631e81d
    Pau Espin Pedrol at
    enb,ms: refactor base_rate selection for ZMQ

    Use tailored sample rate only use for 6, 50 and 75 PRB. For all other bandwidths,
    we use the full LTE rate and downsample.
    With 5.76e6 as base sample rate, for example, we had some issue during the tests like:

    [zmq] Error: tx time is 0.178 ms in the past (7833600 < 7835648)
    [zmq] Error: tx time is 0.011 ms in the past (7835520 < 7835648)

    Using a higher sample rate seems to work better.

    Change-Id: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c
    Pau Espin Pedrol at
    doc/manual: Fix links to nonexistent sections

    Change-Id: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b
    Pau Espin Pedrol at
    tests: Replace is_connected() with is_registered()

    API was renamed and old name deprecated, let's use it everywhere.

    Change-Id: Ic91dddcfd1a5a17c35d15a8a14628b3923229523
    Pau Espin Pedrol at
    EventLoop: Fix log error "Origin parent loop" during wait()

    Setting the log.ctx manually is not needed anymore and it's actually
    harmful since all palces where it was used, a log.Origin already in path
    was being passed, causing a origin loop.

    Change-Id: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063
    Pau Espin Pedrol at
    ttcn3: Don't overwrite output junit file on multiple testsuites

    Change-Id: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9
    Pau Espin Pedrol at
    log: Fix OriginLoopError generated in log.Error from testenv.poll()

    Change-Id: Iea80d06a30346533e4ecec338b03c72d1f1067ae
    Pau Espin Pedrol at
    amarisoft_enb: Properly set S1AP SCTP bind ip addr

    Change-Id: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d
    Pau Espin Pedrol at
    testenv: Add debug log when overlaying templates dir

    Change-Id: I10fdfc5b2e3bf4c96941a3fae53230131f384de9
    Pau Espin Pedrol at
    suites/4g: Wait for IP addr received before trying to use the link

    Otherwise processes using the link like "ping" or "iperf3" may fail
    because there's still no IP address assigned.

    Change-Id: I28137f10a19db01fe90b24830a60342a448d1e92
    Pau Espin Pedrol at
    test: Store brief log per test and use as default report_stdout

    Change-Id: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a
    Pau Espin Pedrol at
    srsenb_sib.conf.tmpl: add default SIB3

    if SIB3 isn't transmitted, the UE won't do HO and cell reselection

    Change-Id: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f
    andre at
    iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec

    process object always used timeout=300 while runnig wth launch_sync().
    Let's allow replacing that value beforehand so that iperf3 can
    pre-configure the process object and caller doesn't need to care about
    calculating expected time.

    Change-Id: I7f6c5078f648013515919aa35ebcdb3ef157b5e4
    Pau Espin Pedrol at
    Remove all references to defaults: timeout: from suite.conf

    This feature is not really implemented and maybe never was. In any case,
    it makes sense to have that working per-test so we can specify different
    values per test in case it's needed.

    Change-Id: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3
    Pau Espin Pedrol at
    test: Move duration time calculation to helper function

    Change-Id: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f
    Pau Espin Pedrol at
    Refactor test specific config parsing & generation

    The dictionary is generated once during test creation at suite startup.

    Change-Id: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26
    Pau Espin Pedrol at
    Implement per-test timeout guard

    Timeout value can be specified by test in suite.conf:

    config:
      suite:
        <suite_name>:
          <test_name>:
            timeout: 2 # 2 seconds timeout

    Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706
    Pau Espin Pedrol at
    testenv: Prepend underscor to internal method

    Change-Id: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2
    Pau Espin Pedrol at
    config: Allow empty config files

    Change-Id: Ic010e06220421df00405c5b6f5ad2e83514b6dcd
    Pau Espin Pedrol at
    epc: refactor run_wait() method and rename to prepare_proc()

    this refactor no longer enforces blocking operation of the process.
    Instead it returns the process object to the caller who
    can now run either proc.launch() for non-blocking operation
    or proc.launch_sync() for blocking mode.

    The non-block mode allos doing other stuff in the background,
    for example controlling the rfemu while running a ping.

    Change-Id: Ia6372e55a8829f722e40db537d9dfd63a94d1be9
    andre at
    enb_amarisoft: fix typo

    Change-Id: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f
    andre at
    rfemu: add max attenuation getter

    this allows to query the maximum channel attenuation from within a test case

    Change-Id: I35f7cb188790c59bbf2450f78c663fbc9440e406
    andre at
    iperf3: increase extra timeout to 30s

    10s was too short and has still caused tests to fail because they were
    stopped just before the iperf finished.

    30s seems to be enought and has passed multiple times so far

    Change-Id: I80b732a060356aa98882ff0e8b5debaf623ba0fb
    andre at
    amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2

    use more realistic values for QCI 1 and 2 bearers to prepare
    QoS operation

    Change-Id: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded
    andre at
    srs: Convert additional_args attr to list to allow combining different params

    Change-Id: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b
    Pau Espin Pedrol at
    selftest: Add test to verify junit xml report

    Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd
    Pau Espin Pedrol at
    Add per-test KPI support

    tests can now use 'tenv.test().set_kpis(some_dict)' to set any kind of
    data as KPIs, which will be presented in the junit report.

    The representation of KPIs in the xml file doesn't follow the junit
    format, mainly because it has no support for per-test properties.

    Change-Id: I00e976f65a202e82d440bf33708f06c8ce2643e2
    Pau Espin Pedrol at
    ms_srs: fix additional_args init

    regressions after porting to list. init to new empty list

    Change-Id: I06f370462934ca35f3aa13bbfcd9e5fc3df91895
    andre at
    iperf3: Refactor iperf3cli popen arg list generation

    Change-Id: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934
    Pau Espin Pedrol at
    iperf3: Add support for setting TOS

    Change-Id: I3ccc249ad1c9598c606303c52eff6823f45afa7b
    Pau Espin Pedrol at
    doc/manuals: Fix callout definition in code block

    Currently osmo-gsm-tester master jenkins build fails while building
    manual due to errors like:
    "asciidoc: WARNING: test_api.adoc: line 42: no callouts refer to list
    item 1"

    According to asciidoc documentation in [1], code examples can be
    annotated with callouts, but callouts need to be put inside source code
    comments.

    [1] http://www.methods.co.nz/asciidoc/chunked/ch20.html

    Change-Id: I2213874592342b12adf7440b25edc706abfc78ba
    Pau Espin Pedrol at
    amarisoft_enb.cfg.tmpl: expose log options

    this allows to alter the log options through a modifier

    Change-Id: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01
    andre at
    ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods

    Change-Id: Icddab08c84ef97924d10801d7128158f515bcd01
    Pau Espin Pedrol at
    iperf3: add getter to read the actual run time of an iperf client run

    this is helpful to run some action for the exact run time of an iperf3
    session. note that if no time spec is given when calling
    "prepare_test_proc()", a modifier could set the runtime of an DL experiment
    to an arbitrary value so we need to have a mechanism to read
    the actual time from within a test

    Change-Id: I484a0add322ffd269a1e9df72a00cf348950b268
    andre at
    enb: add getter for number of cells of an eNB

    In order to set up the channel emulator we need to calculate the total
    number of RF channels that a eNB has from within a test.

    Change-Id: If641993033eb5dcdc6e2d6afdc8426ed322241ca
    andre at
    iperf3: add getter to retrieve received bitrate

    Change-Id: Id5676ce002cab6d52480b9b0f996f3065fd5dda6
    andre at
    ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60

    two bearer of QCI 1 and 2

    Change-Id: I857bed943b0184540b0a8ac696e7ebddd693be87
    andre at
    ms_srs: fix scp-back-metrics routine

    every call to verify_metrics would copy back metrics again. see log here:

    23:29:22.149299 run                 srsue(pid=31521): Terminating (SIGINT)
    23:29:22.368263 run                 srsue(pid=31521): Terminated: ok {rc=0}
    23:29:28.401035 run      scp-back-metrics(pid=32265): Launched
    23:29:29.423083 run      scp-back-metrics(pid=32265): Terminated: ok {rc=0}
    23:29:29.490275 run      scp-back-metrics(pid=32271): Launched
    23:29:30.513852 run      scp-back-metrics(pid=32271): Terminated: ok {rc=0}
    23:29:30.550862 run      scp-back-metrics(pid=32277): Launched
    23:29:31.573962 run      scp-back-metrics(pid=32277): Terminated: ok {rc=0}

    this patch only copies back metrics only once. also make sure that, similar
    to logs, metrics are always copied back at the end of the run even if they
    are not used for metrics checking. this is needed to run the plotting
    script.

    Change-Id: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25
    andre at
    {enb,epc,ms}_srs: expose log.all_level parameter

    expose paramter to set log level, use warning as default

    Change-Id: I4e77e5351399aefef47a309c82b8805e2c6022c5
    andre at
    Drop using patchelf out of PATH

    New patchelf 0.11 release is out and it has fixes hitting us in both 0.9
    and 0.10 on different binaries. So let's simply requiring having
    patchelf 0.11 in all cases and be done with it (actually, if not running
    4G binaries, using 0.9 is enough).

    Related: OS#4389
    Change-Id: I2701e46e7710db4c923a68e6b3a2f3c7b126f356
    Pau Espin Pedrol at
    process: provide API to return filename for process output

    this is useful if the caller handles the opening/reading from
    the file itself

    Change-Id: I5e70fd1593a5bc7902fa218aae6452103545e4e0
    andre at
    {ms,enb}_srs: add method to read kpi from a test run

    this method uses the kpi_analyzer module for analyzing
    stdout, CSV metrics and the logfile (if present).

    if the module can't be loaded, no KPI will be added.

    Change-Id: I28226a375f9ac4e08424c488062ae6a74a19af92
    andre at
    amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI

    those configs should provide better HO performance, PDDCH format is selected automatically

    Change-Id: I62a4240ac062d793ae5e197f852ea09eb4fe4ae9
    andre at
    test: append KPI rather than overwrite in set_kpi() method

    this allows to call set_kpi() multiple times in one TC

    Change-Id: I5f68d9e6e1135ee2afa79c9af2ed240d371214c4
    andre at
    srsue.conf.tmpl: add default EARFCNs for 4xCA config

    Change-Id: I553241735b5e204cb4be03936b90628d156c418c
    andre at
    enb_srs: remove comment introduced through copy+paste

    Change-Id: I7d14ae5c17bd1cd1c1b23657dc60dc331519e32c
    andre at
    ms_srs: add min_rolling_average calculation

    useful metric to detect low/zero downlink throughput for longer
    time periods

    Change-Id: I77a82a68689bc6c21cb9227dc9e7616d03e2b547
    andre at
    enb_amarisoft: register log options as config scheme

    allows setting those in scenario files

    Change-Id: Idefd3c628441ededbee9411117ec426dd585eae0
    andre at
    Introduce stress tool object

    This object allows to run the "stress" cmdline program in the background
    on the specifies run_node, to simulate system load.

    To run stress, a test can simply do:
    stress = tenv.stress(epc.run_node())
    stress.start(cpu_workers=2, mem_workers=1, io_workers=1)

    And the test environment will remember to stop it when the test finishes.

    Change-Id: I21023e6c64c48109f294291bfe3d8d8f4e1de038
    Pau Espin Pedrol at
    enb_amarisoft: add option to enable and configure DL AWGN channel

    expose option to enable DL AWGN noise and make SNR configurable

    Change-Id: Ib248e87e5abd855d4c974eab42ec40828c6e1d40
    Pau Espin Pedrol at
    rfemu_minicircuits: reset attenuation to zero in dtor

    this avoids issues when the channel emulation stops in the middle
    of a high attenuation values and the device is left in this state.

    Change-Id: I9aeafc68bf81b8932aac4cb28040b9aea6bfcbdb
    Pau Espin Pedrol at
    srsue.conf.tmpl: use UE cat 8 whenever more than one carrier is configured

    Change-Id: Id96827960cac436b8ac363e28c2b0ab7b6acf57f
    Pau Espin Pedrol at
    enb_amarisoft: add support for PHY signal log file

    when phy.signal=1 is set in the log_options, the eNB will dump
    a binary file that needs to be copied back as well

    Change-Id: I63d13cb74572ac065d5a3fcfb1632552d0a6dbc6
    Pau Espin Pedrol at
    jenkins-build-srslte.sh: pass extra configuration_opts to build_repo

    this allows to pass extra CMake opts to, e.g., enable address sanitizer

    Change-Id: I6fd00025a7225b1e075704d69354a8eb5e7f30ec
    Pau Espin Pedrol at
    srsepc.conf.tmpl: zero-pad mnc and mcc in config

    srsEPC expect zero-padding MNC/MCC in config file. However,
    001 and mcc will end up as 1 in the rendered template.
    Therefore, they need to be formatted correctly.

    Change-Id: Ie63cd1b15b961e493a6dcbd7e5a4fbabe0bb6f33
    Pau Espin Pedrol at
    contrib/jenkins-build-amarisoft.sh: Pass srsLTE.git branch explicitly

    This allows easily changing the branch for local builds.

    Change-Id: I9765e1ebdd7488788be5f5c7259cf8b6e04e58f6
    Pau Espin Pedrol at
    contrib/jenkins-build-amarisoft.sh: Allow generating trial without lteue

    Some Amarisoft bundles may come without lteue in it. Allow the script to
    run if that's the case by setting an envvar.

    Change-Id: I363b44cd8aa48f80d24219b6bf5b3ebde580e3c3
    Pau Espin Pedrol at
    amarisoft_ltemme_ifup.sh: use ip cmd instead of ifconfig

    ifconfig is deprecated and not available in newer distros.

    Change-Id: I93e4b7f3c9bee2563c0e01a1ff7e832e5098cf1f
    Pau Espin Pedrol at
    4G: Add milenage support

    Change-Id: I4c1fb9bfec9927f2bfa29e6b27959323838f59e5
    Pau Espin Pedrol at
    iperf3: Avoid creating empty log file

    Since a while ago, we avoid by default using the --logfile param to log
    the json output to a different file, in order to stay compatible with
    older versions of iperf3.
    However, the local logfile was still being created, and was not
    overwritten with the remote file with content because there's none
    created remotely (due to reasons explained above).

    Change-Id: I218ec28dc65febc7bd083d6d15854319bf4f3daf
    Pau Espin Pedrol at
    iperf3: server: Avoid copying logfile during cleanup if already copied previously

    Change-Id: I44e28f326fd476d27eb021922d38e9ca913aec69
    Pau Espin Pedrol at
    amarisoft_{mme,enb}: make sure mcc/mnc are zero padded

    same as for srsEPC this is also required for Amarisoft MME and eNB to support, i.e. 001/01

    Note that the 3 digit MNC isn't covered by this.

    Change-Id: I80a84e01ec9530c285634452d7c18c17bdd595ce
    andre at
    iperf3: increase additional wait time for iperf client

    we've noticed that the Iperf client times out too soon in
    some experiment. It seems that this happens with ZMQ if
    the RAT is too slow (slower than realtime) and the eNB buffers
    too much data. This causes iperf to still receive DL data
    for example long after the configured runtime.

    Change-Id: I9b823ab22812c96920d54fb7342c8d4c578d5270
    andre at
    amarisoft_drb: adapt QCI 8 config for ZMQ operation

    we use the otherwise unused QCI 8 as a slightly modified
    version of QCI 7 (default RLC UM) with a PDCP discard
    timer set to infinity to avoid dropping PDCP SDUs if
    packets arive faster than can be processed in the DL

    Change-Id: I06b7b583701f90827fba36564f969b5d58c9b9ad
    andre at
    amarisoft_enb.cfg.tmpl: enable eNB PCAP if configured

    enable PCAP output in eNB config

    Change-Id: I8482315ce854c5b21a90b77de55dbb82f3049bcd
    andre at
    srsenb_drb.conf.tmpl: add QCI8 config

    add QCI config with RLC UM and PDCP SDU discard set to infinity

    Change-Id: If946f569f7bbb98fc754f30ff5627fa5ca4afe68
    andre at
    suite: fix runtime error when suite.duration is None

    report generation failed when duration was not set correctly
    and None was returned. Use 0 as duration by default.

    Change-Id: Ia654c67bf2dcce432f84e869550c516d8d5a07a0
    andre at
    ttcn3/lib/testlib.py: make list of kwargs git friendly

    Change-Id: I3b9e8d95b871f8bf5043b168fee0716c71becbe5
    Vadim Yanitskiy at
    ttcn3/lib/testlib.py: implement the concept of test case groups

    Change-Id: I687c221e4a6c7232290509cb11a3158d72b9c2c3
    Vadim Yanitskiy at
    ttcn3/suites/bts: also enable both BTS_Tests_{SMSCB,LAPDm}

    Change-Id: I8eb28584e90ad012cbf7f3175ee3a8e775c8d523
    Vadim Yanitskiy at
    ttcn3/suites/scripts: collect core dumps: add '--ulimit core=-1'

    Change-Id: Ie3457f10f1a398c8cce6737002410f42ad908702
    Vadim Yanitskiy at
    ttcn3/lib/testlib.py: increase test suite execution timeout

    Since I8eb28584e90ad012cbf7f3175ee3a8e775c8d523, the test suite
    is supposed to run both BTS_Tests_{SMSCB,LAPDm}.control among with
    BTS_Tests.control.  Apparently this requires more time than 3600
    seconds, so everything is broken since build #2652 in Jenkins.

    Change-Id: Ieceab920a94cbf92ff6c83a59d572f22e8ae933f
    Vadim Yanitskiy at
    srs{ue,enb}.conf.tmpl: remove restriction of PHY threads for ZMQ

    we now support any number of PHY threads also with ZMQ operation

    Change-Id: I31abfce742f757179fbfe4099cd0a934db4e63d7
    andre at
    enb_srs: add sleep after stopping srsENB to allow log flush

    add similar concept used in the UE to allow the process to flush
    the logs

    Change-Id: I9f8341869f89cd7ae845072b9da4f6070fa2d242
    andre at
    rfemu_amarisoft: handle exception and log event if WS is closed

    the WS is closed if the eNB process dies. this patch will log an
    event but not stop the experiment.

    Change-Id: I0fafc7e38954400540375d51813e96500700f50c
    andre at
    srsenb_rr.conf.tmpl: reduce PUCCH PRBs for SR and CQI to 1

    this gives higher UL throughput because less resources are reserved for
    SR/CQI. For more users we may have to make the value configurable again.

    Change-Id: If6c313a1deafffda26e9effeb807ca71064c46bc
    andre at
    enb: expose RRC inactivity timer

    allow the user to specifiy the RRC inactiviy timer used in the eNB.
    set the default value to 20s

    Change-Id: I6a264b8dee893b883d40a48831cbb47eb15e1e7b
    andre at
    ms_srs: trim leading zeros in UE metrics when calculating min_rolling_avg

    this avoids a false negative detection when the UE attach takes a bit
    longer and the first seconds all zeros are reported in the CSV

    the HO test, for example, would fail in such a case as it expects
    no zero TP over the course of the experiment.

    Change-Id: I96dab17bb19249504dedda6659aed5eac0a65a26
    andre at
    4g: consider number of component carriers for max rate calculation

    when carrier aggregation is enabled we need to multiply the
    max rate of a single carrier with the number of carriers to
    get the actual achievable rate

    Change-Id: I70d850c0996ed461d3733e911adc33f3554c297c
    andre at
    bts-trx: Disable power-ramp

    Power ramping features were implemented recently for osmo-bts-trx. We
    don't want to enable them because it makes phones take longer (if even
    at all) to find the network.

    Change-Id: I35e2f560b28eddef886ad3b2f8ffb4ff79be77da
    Pau Espin Pedrol at
    osmo-trx: Set more restrictive logging levels to avoid sporadic high load on stderr

    Change-Id: I9dca89027d9015b946440363eae5f7bd3e082268
    Pau Espin Pedrol at
    testenv: Fix missing import module util

    util module is used in prompt() method (debug suite, interactive test).

    Change-Id: I9bb759d053a99108f121f1c4f7994726b6075fee
    Pau Espin Pedrol at
    contrib: osmo-trx: Drop explicit --without-sse

    Nowadays we have instruction set runtime detection, so there's no point
    in disabling it in the binary, specially because nowadays we run in sse
    capable host (despite in the past we didn't and there was no runtime
    detection, hence why was it explicitly disabled).

    Change-Id: I2ffdc60c7644bb514a3854965d17109e91dda800
    Pau Espin Pedrol at
    enb: incorporate number of carriers into ue_max_rate() API

    this allows the enb to calculate the max rate in a single
    spot rather than each test individually

    Change-Id: Id225a986e0b271cf9c057c74c9aefd6c7f3d39d6
    laforge at
    enb_srs: expose DL AWGN channel modifier for srsENB

    we've added the modifier to configure Amarisoft eNB channel
    model. This patch enables it for srsENB.

    Change-Id: I30e65d0431b2d2792986128287caf8b23a22b2c1
    laforge at
    enb_amarisoft: temporary reduce max UL rate on 2nd CC

    this is due to a confirmed bug in Amarisoft eNB. will
    be reverted as soon as the fix is released.

    Change-Id: I182b46cf9e6c2f428c9535edf3c7df3daa912f18
    andre at
    srsenb_rr.conf.example: comment CQI and SR specific subframes

    this enables auto-selection by eNB which has been implemented
    recently

    Change-Id: I17e16c5c47a2fba5c2955a1c3e6e0e16f83bab72
    andre at
    reduce max expected UL rate for 4xCA 100 PRB

    this needs to be reverte once extendedBSRs are supported

    Change-Id: I8432c744868afe43e2b150f6fcecd8cb3a0458a3
    andre at
    {enb,epc,ms}_srs: refactor start/stop and KPI helpers

    refactor some of the functionality to srslte_common

    Change-Id: I2ff36df6f1a07ed8ddac39d296d62fe44a215283
    andre at
    srsenb_rr.conf.tmpl: set TAC for cells to 0x0007

    this is the default TAC used in the EPC. A recent EPC patch
    will reject the S1 setup request if the TACs don't match

    Change-Id: I94fdb96631ce3ae35a1b2a9f90d1101df9161233
    andre at
    ms_srs: fix ZMQ config for 4xCA

    add missing freq config for 4xCA

    Change-Id: I88a389f5b03d6b55ff5ef403d5107c648a11686f
    andre at
    amarisoft_sib23.asn.tmpl: set p-b value in SIB23 depending on TM

    this fixes a wrong p-b value used for TM2 and above

    Change-Id: I89c557c456f3330f491cc66bc4931a0234bf6e02
    andre at
    amarisoft_enb.cfg.tmpl: use default tac 0007

    this is the tac used in srsepc.

    Change-Id: I1de432a52281ea210abae5648239fd89ba5eb4ce
    andre at
    lte: update UHD device args for MIMO usage

    the USRP B210 device args were not ideal for MIMO configs for
    both Amarisoft and srsLTE.

    Change-Id: I3785bb96eb7c10a6b10b3d1a86fa71d1f787a7a3
    andre at
    amarisoft_enb.cfg.tmpl: increas threshold for failed UL retransmissions

    this avoids the eNB from releasing the UE too early if the UL channel
    stays very bad for a longer time but many PUSCH are scheduled

    Change-Id: Ib82616e920eecc70fbded12433e54bd90ae1bcd4
    andre at
    enb_amarisoft: reduce max achievable UL rate for 100 PRB

    Change-Id: Ib7a0b8e2948cdf6c0a15d4ad2bf7d218a6b28ea2
    andre at
    amarisoft_enb.cfg.tmpl: seperate PRACH root sequences for cells

    seperate the root sequence index for each cell a bit more to
    avoid detection of a single PRACH in both cells

    Change-Id: I5aea1a27939c880944779c282e902465ab513715
    andre at
    srslte_common: add get_num_phy_errors() method

    the get_num_phy_errors() uses the external KPI analyzer module
    to calculate the number of PHY layers errors in a vector of log metrics

    Change-Id: I0c8de87e7f83f986e288585640ce56847959c497
    andre at
    srslte_common: fix indent in whole file

    Change-Id: I8aee79e9d451761dde8f35f84d75483dc4e23040
    andre at
    ms_srs: add freq_offset as resource param

    this allows to specify a freq tuning offset in Hz in the MS resource config

    Change-Id: Iab726edd27e890d2c2dddbea91afe80d8a5068aa
    andre at
    jenkins-build-amarisoft: fix build script for ZMQ module

    newer versions of srsLTE create symlinks with the rf library
    including the version, see below. This caused the trx_zmq.so
    lib to load .so.0 instead of .so only. this patch adds
    another symlink so loading works fine again

    libsrslte_rf.so -> libsrslte_rf.so.0
    libsrslte_rf.so.0 -> libsrslte_rf.so.20.10.0
    libsrslte_rf.so.20.10.0

    Change-Id: Ib5302c9872f4c82a1ee5074f59de86709aa6c5a9
    andre at
    enb_amarisoft: add rf_dev_sync option to specify the sync type

    this allows to specify "external_clock" for example to use
    the external REF input of an USRP

    Change-Id: Ie066993440840cbd2c18e8f0c0c577b92ac7092d
    andre at
    srs{enb,ue}: add rf_dev_sync option to config templates

    pass-through the option so they can be used in templates

    just concatenate with rf_dev_args for srsLTE eNB/UE, arguments
    parsing will handle them

    Change-Id: I3818026c159780f29968888f547163cdf730afad
    andre at
    Introduce RFemu stdin implementation for srsENB

    Change-Id: I5487dec3691cbf424306369f94f337ed34a10c70
    andre at
    srsenb: Fix ECI in handover cell list

    So far we only support setting cell IDs from same ENB. Support for
    handover to other ENB will come later, probably by adding some API to be
    called during the test to add own's CellID's to other ENB's config.t

    Change-Id: I1780bda130cde0faab15d4032117e0aa2b9c5dbe
    andre at
    srsenb: Activate handover in config file

    This is needed to test handover features.

    Change-Id: Ifa8462f4d1e183e73b059a7af37bcdf7b3e247f6
    andre at
    {enb,epc,ms}_srs: remove uneeded class variable

    self.kpis is define in base class

    Change-Id: I49c9c9cdf7bc31270d3cfe182a79b197a742dd2c
    andre at
    rfemu_srsenb_stdin: use negative dB value to set attenuation

    the logic for the RF emulator on the command line is, like the
    Amarisoft equivalent, to set a negative gain value to express
    attenuation. Therefore, the sign needs to be inverted.

    Change-Id: I7b6ac611a9f711bbdc1570602bfd797a5346ab86
    andre at
    templates/osmo-bts-trx: Increase osmo-trx rx-gain

    Otherwise osmo-trx with a B200 seems to be having issues receiving some
    data from the MS otherwise, making "sms" test fail. In general LU works
    fine, and when MS sends the SMS, CM Service Request+Accept also works
    fine, but then the BTS never sees the CP-DATA afterwards probably due to
    MS power loop.

    Change-Id: I5f7e3d22a142521ab83db81635ded252dabcf111
    Pau Espin Pedrol at
    scenarios: Introduce mod-enb-cells-2ca.conf

    This configuration is needed to have UEs attaching to srsenb-zmq in
    handover.py

    Change-Id: I0182af4db98852f00622dcebe5274dc7f6e99e6d
    Pau Espin Pedrol at
    Changes in dependency
    1. osmo-gsm-tester_build-osmo-bsc  ? → (detail)
    2. osmo-gsm-tester_build-osmo-trx  ? → (detail)
    3. osmo-gsm-tester_build-osmo-mgw  ? → (detail)
    4. osmo-gsm-tester_build-osmo-ggsn  ? → (detail)
    5. osmo-gsm-tester_build-osmo-pcu-oc2g  ? → (detail)
    6. osmo-gsm-tester_build-osmo-stp  ? → (detail)
    7. osmo-gsm-tester_build-osmo-sgsn  ? → (detail)
    8. osmo-gsm-tester_build-osmocom-bb  ? → (detail)
    9. osmo-gsm-tester_build-osmo-pcu-sysmo  ? → (detail)
    10. osmo-gsm-tester_build-osmo-pcu  ? → (detail)
    11. osmo-gsm-tester_build-osmo-bts  ? → (detail)
    12. osmo-gsm-tester_build-osmo-hlr  ? → (detail)
    13. osmo-gsm-tester_build-osmo-bts-oc2g  ? → (detail)
    14. osmo-gsm-tester_build-osmo-msc  ? → (detail)
    15. osmo-gsm-tester_build-osmo-bts-sysmo  ? → (detail)