Commit Graph

1198 Commits

Author SHA1 Message Date
Pau Espin f96d590703 amarisoft_ltemme_ifup.sh: use ip cmd instead of ifconfig
ifconfig is deprecated and not available in newer distros.

Change-Id: I93e4b7f3c9bee2563c0e01a1ff7e832e5098cf1f
2020-07-13 18:19:23 +02:00
Pau Espin 4130eef965 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
2020-07-13 16:05:40 +02:00
Pau Espin f1b43f956c contrib/jenkins-build-amarisoft.sh: Pass srsLTE.git branch explicitly
This allows easily changing the branch for local builds.

Change-Id: I9765e1ebdd7488788be5f5c7259cf8b6e04e58f6
2020-07-13 15:45:15 +02:00
Andre Puschmann 1dddb7b264 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
2020-07-09 13:43:00 +00:00
Andre Puschmann b92e2d1c99 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
2020-07-09 13:43:00 +00:00
Andre Puschmann 008fd3194b 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
2020-07-09 13:43:00 +00:00
Andre Puschmann 59c83a2159 srsue.conf.tmpl: use UE cat 8 whenever more than one carrier is configured
Change-Id: Id96827960cac436b8ac363e28c2b0ab7b6acf57f
2020-07-09 13:43:00 +00:00
Andre Puschmann 69dd689644 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
2020-07-09 13:43:00 +00:00
Andre Puschmann 955249d39d 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
2020-07-09 13:43:00 +00:00
Pau Espin 969a4eebae 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
2020-07-02 13:22:48 +02:00
Andre Puschmann 2ebcff934d enb_amarisoft: register log options as config scheme
allows setting those in scenario files

Change-Id: Idefd3c628441ededbee9411117ec426dd585eae0
2020-07-01 12:28:31 +02:00
Andre Puschmann f8c99a863d ms_srs: add min_rolling_average calculation
useful metric to detect low/zero downlink throughput for longer
time periods

Change-Id: I77a82a68689bc6c21cb9227dc9e7616d03e2b547
2020-07-01 10:52:09 +02:00
Andre Puschmann ba40facbaf enb_srs: remove comment introduced through copy+paste
Change-Id: I7d14ae5c17bd1cd1c1b23657dc60dc331519e32c
2020-07-01 10:52:09 +02:00
Andre Puschmann 9df7cd0a12 srsue.conf.tmpl: add default EARFCNs for 4xCA config
Change-Id: I553241735b5e204cb4be03936b90628d156c418c
2020-07-01 10:52:09 +02:00
Andre Puschmann 8b27ded781 test: append KPI rather than overwrite in set_kpi() method
this allows to call set_kpi() multiple times in one TC

Change-Id: I5f68d9e6e1135ee2afa79c9af2ed240d371214c4
2020-07-01 10:52:09 +02:00
Andre Puschmann 0694c30c8e 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
2020-07-01 10:52:09 +02:00
Andre Puschmann f14ff812ce {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
2020-07-01 10:52:09 +02:00
Andre Puschmann 20087ad8c4 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
2020-06-30 14:22:47 +02:00
Pau Espin 315b078fe8 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
2020-06-25 20:04:29 +02:00
Andre Puschmann 82ced3fb1d {enb,epc,ms}_srs: expose log.all_level parameter
expose paramter to set log level, use warning as default

Change-Id: I4e77e5351399aefef47a309c82b8805e2c6022c5
2020-06-23 16:41:00 +02:00
Andre Puschmann 7c1c8d62e8 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
2020-06-23 16:41:00 +02:00
Andre Puschmann d5a58d0d61 ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60
two bearer of QCI 1 and 2

Change-Id: I857bed943b0184540b0a8ac696e7ebddd693be87
2020-06-23 16:41:00 +02:00
Andre Puschmann 55b455cbf6 iperf3: add getter to retrieve received bitrate
Change-Id: Id5676ce002cab6d52480b9b0f996f3065fd5dda6
2020-06-23 16:41:00 +02:00
Andre Puschmann 0957e9e095 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
2020-06-23 16:41:00 +02:00
Andre Puschmann 219ec75aa9 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
2020-06-23 16:41:00 +02:00
Pau Espin 14bb5ff9de ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods
Change-Id: Icddab08c84ef97924d10801d7128158f515bcd01
2020-06-17 12:29:03 +02:00
Andre Puschmann 62e887d9b4 amarisoft_enb.cfg.tmpl: expose log options
this allows to alter the log options through a modifier

Change-Id: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01
2020-06-17 08:54:07 +00:00
Pau Espin cedee0a00b 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
2020-06-16 10:04:15 +00:00
Pau Espin 5680255fb5 iperf3: Add support for setting TOS
Change-Id: I3ccc249ad1c9598c606303c52eff6823f45afa7b
2020-06-16 10:04:04 +00:00
Pau Espin 229f11647e iperf3: Refactor iperf3cli popen arg list generation
Change-Id: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934
2020-06-16 10:04:04 +00:00
Andre Puschmann be50eae49b ms_srs: fix additional_args init
regressions after porting to list. init to new empty list

Change-Id: I06f370462934ca35f3aa13bbfcd9e5fc3df91895
2020-06-15 22:12:46 +02:00
Pau Espin e3d1b61175 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
2020-06-15 15:42:58 +00:00
Pau Espin d4dc2ad3a2 selftest: Add test to verify junit xml report
Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd
2020-06-15 15:42:58 +00:00
Pau Espin e592de8056 srs: Convert additional_args attr to list to allow combining different params
Change-Id: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b
2020-06-15 17:31:23 +02:00
Andre Puschmann 393cd61382 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
2020-06-15 15:09:55 +00:00
Andre Puschmann f678c4dfec 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
2020-06-15 15:09:37 +00:00
Andre Puschmann 8b1547b562 rfemu: add max attenuation getter
this allows to query the maximum channel attenuation from within a test case

Change-Id: I35f7cb188790c59bbf2450f78c663fbc9440e406
2020-06-15 15:09:37 +00:00
Andre Puschmann ccb632037d enb_amarisoft: fix typo
Change-Id: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f
2020-06-15 15:09:37 +00:00
Andre Puschmann b0ebcbcf10 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
2020-06-15 15:09:37 +00:00
Pau Espin e66e3aebb4 config: Allow empty config files
Change-Id: Ic010e06220421df00405c5b6f5ad2e83514b6dcd
2020-06-15 14:28:00 +02:00
Pau Espin 683d196532 testenv: Prepend underscor to internal method
Change-Id: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2
2020-06-15 11:39:41 +02:00
Pau Espin c3cf682afd 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
2020-06-15 10:53:46 +02:00
Pau Espin a75f85a058 Refactor test specific config parsing & generation
The dictionary is generated once during test creation at suite startup.

Change-Id: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26
2020-06-12 17:26:00 +02:00
Pau Espin 444129ee1f test: Move duration time calculation to helper function
Change-Id: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f
2020-06-12 16:38:37 +02:00
Pau Espin 8cfb5d020f 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
2020-06-12 16:12:43 +02:00
Pau Espin a9bc93da99 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
2020-06-12 15:34:32 +02:00
Andre Puschmann 7c759d9a89 srsenb_sib.conf.tmpl: add default SIB3
if SIB3 isn't transmitted, the UE won't do HO and cell reselection

Change-Id: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f
2020-06-11 20:37:17 +02:00
Pau Espin ec28572e42 test: Store brief log per test and use as default report_stdout
Change-Id: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a
2020-06-11 18:07:08 +02:00
Pau Espin 57e37f95e1 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
2020-06-11 17:12:44 +02:00
Pau Espin a4bb6d315b testenv: Add debug log when overlaying templates dir
Change-Id: I10fdfc5b2e3bf4c96941a3fae53230131f384de9
2020-06-11 16:23:54 +02:00