Commit Graph

895 Commits

Author SHA1 Message Date
Pau Espin 7f37deb020 srsenb_sib.conf: Fix warning about wrong prach_freq_offset value
WARNING: Invalid PRACH configuration - prach=(2, 8) does not fit into the eNB PRBs=(0, 6).
       Consider changing the "prach_freq_offset" value to 0 in the sib.conf file when using 6 PRBs.

Change-Id: Ie4374faca62a4d0289f78674eadec7eb5d045dfd
2020-03-09 18:36:44 +01:00
Pau Espin f796ad0061 srsue,srsenb: Configure num_ports for tmode > 1
Change-Id: I35d8ee907738845e729f58c23f377a42bb665672
2020-03-09 18:36:44 +01:00
Pau Espin b9aeb156fe srsepc: Update log file output matching
New version of srsEPC improved the information logged during S1 setup
request, which we use to wait for the ENB to be connected.

Change-Id: Ia2338e3161c66ef7c1ab50b024a70de661edc780
2020-03-09 15:06:48 +01:00
Pau Espin d2e5aa58fb srsenb: Update config files
Latest ENB config file grammar changed and needs to be updated to work
with next versions of srsENB.

Change-Id: I84db30dc57ea9e0b05208fa86d88d42d492b237f
2020-03-09 11:40:53 +01:00
Pau Espin 2bcd346203 suites/4g/ping.py: Overwrite test stdout with ping output
Change-Id: I83403a21c46758132b4fbb930000df67d8650016
2020-03-09 10:15:39 +01:00
Pau Espin 02e8a8d4e1 Improve junit xml generated fields
* trial ('testsuites' node): Add fields 'tests', 'errors', 'failures',
  'time'.
* testsuite: Add fields 'errors', 'failures', 'skipped',
  'disabled'
* test: Add field 'classname' (empty).

Fix and improve suite.py and test.py to count errors, skipped, failures
properly.

Change-Id: Ie2d10cee88a9c0d829e4620553164cf3150e8e5c
2020-03-09 10:15:39 +01:00
Pau Espin a5f7bef0a2 remote: Set debug logfile of ssh_sigkiller.sh to /dev/null
Otherwise processes run eventually as root (due to being run on another
netns) may change its permissions and other processes later will fail to
write to it (Permission Denied).

Change-Id: Ide092db082937be7c2fb16d60e099c85dc1941b7
2020-03-05 17:26:22 +01:00
Pau Espin 644cb41b05 Allow overwriting test's report stdout text from inside test code
Change-Id: Ie1c0ecf7464209a4241665025fda33ae624fc049
2020-03-04 16:14:31 +01:00
Pau Espin 03a2fc504b suites/4g: Introduce iperf4 downlink test
Change-Id: Ifc4bb7394120d57ca6d26459be1cf8365a16249c
2020-03-04 13:56:25 +01:00
Pau Espin 151b08a410 srsue: Introduce metrics verification procedures
Change-Id: Ib1da58615cdc4f53ac1a27080e94e5b47760c508
2020-03-04 13:56:25 +01:00
Pau Espin dff272884d scenarios: Use parametrized scenario for rftype
Change-Id: Ib3d7db13d7de492eee5ad25cf5c88239be9e9fbf
2020-03-04 13:33:21 +01:00
Pau Espin 63685d719a utils: Add limits.d dir with sample config files
Same as the ones described in osmo-gsm-tester User Manual and same as
ones deployed by ansible scripts. Let's rather keep them here.

Change-Id: I8b124a8a1637666536772439b920e7b91e61533c
2020-03-03 09:22:17 +00:00
Pau Espin 085a17e8e0 iperf3: Support setting run time
Change-Id: I93e857bd682c733c3ba36234b9bf1e1cc85eddef
2020-03-02 18:14:31 +01:00
Pau Espin 143365dc54 tests: Improve logging of iperf3 results
Change-Id: I6563c11f4ad6e9519400268e63944cdf8973dad0
2020-03-02 16:32:42 +01:00
Pau Espin 905e503cb9 iperf3: Support configuring data direction (dl vs ul)
Change-Id: I6b5b740beac22015c952ce826c034031ad4c4465
2020-03-02 15:45:08 +01:00
Pau Espin 2aeadeb58d srsue,srsenb: Fix zmq base_rate calculation and share value
Change-Id: I3e7817e822fb4d1f8bc9ef798162edf95a74d442
2020-03-02 11:56:51 +01:00
Pau Espin dcf99edf53 srsue: Enable pcap through config file
Change-Id: I15219d707aea778fefa8911362278442fa09550c
2020-03-02 11:10:50 +01:00
Pau Espin a031995762 srsue: Enable metrics csv file generation
Change-Id: I393afc49f553d9ebda29717c27d5eb907b3c5b60
2020-03-02 11:06:51 +01:00
Pau Espin a337695cd0 srsue: Remove old comment not longer applying
Change-Id: I1718dbb701c5dcd5a4081d3d91ae9f192418e7df
2020-03-02 11:04:03 +01:00
Pau Espin 3f088da9b2 junit: Replace invalid xml characters
Otherwise junit parser in jenkins fails:
org.dom4j.DocumentException: Error on line 20231 of document  : An invalid XML character (Unicode: 0x1b) was found in the element content of the document.

Fixes: 5bbdab8d95
Change-Id: Ia629e43bba01e50fd718c16404a7796d4f4e3713
2020-03-02 10:51:40 +01:00
Pau Espin b69377112c Introduce LTE Transmission Mode and RLC DRB mode params
Change-Id: I38f247f266ba736cdbb6f36ba5673b8fd46a8d67
2020-02-27 18:14:24 +01:00
Pau Espin 9b8823efd7 Use parametrized scenario to set ENB num_prb
Change-Id: Iec7d7e6312aee6f4e4ce6710bc78a144beff2f39
2020-02-27 17:16:47 +01:00
Pau Espin 6ed301259a Introduce parametrized scenario files support
The idea is to have something similar to systemd template unit files:
https://fedoramagazine.org/systemd-template-unit-files/

Specially for modifiers, one finds the situation where same scenario structure
has to be created with lots of different values.
For instance, let's say we want to test with different eNodeB num_prb values:
[6, 15, 25, 50, 75,100]
Right now we'd need to create one scenario file for each of them, for instance:
mod-enb-nprb6.conf
mod-enb-nprb15.conf
mod-enb-nprb25.conf
mod-enb-nprb50.conf
mod-enb-nprb75.conf
mod-enb-nprb100.conf

And each of them containing something like (changing the num_prb value):
"""
modifiers:
  enb:
  - num_prb: 75
"""

Instead, we can now have one unique file mod-enb-nprb@.conf:
"""
modifiers:
  enb:
  - num_prb: ${param1}
"""
The general syntax is: "scenario-name@param1,param2,param3".
So "@" splits between scenario name and parameter list, and "," splits
between parameters.

For instance, one can now run following suite with scenario:
"4g:srsenb-rftype-uhd+srsue-rftype-uhd+mod-enb-nprb@75"

Related: OS#4424
Change-Id: Icfcba15b937225aa4b1f322a8005fcd57db1d1ca
2020-02-27 17:16:47 +01:00
Pau Espin 1deb1ae0bc enb: Add modifiers for num_prb
Change-Id: I0b8c834f1c67cc4bf4d07d03358ba2012331cbde
2020-02-27 15:37:08 +01:00
Pau Espin 6c42bb584b srs_enb: Make num_prb a config parameter
Change-Id: I336e71f53556596050cf3eb55a7810a009dbf7a8
2020-02-27 15:05:11 +01:00
Pau Espin 5bbdab8d95 Add test log to junit output
Change-Id: Ieb5566a41ecf3a9512db579eb37e8d8ed5325057
2020-02-24 18:30:58 +01:00
Pau Espin 69b2cf3ce2 srsue: Create netns on demand
Already existing script osmo-gsm-tester_netns_setup.sh is modified to
support only creating the entns without moving an iface to it.

Change-Id: I1b7e186b0146f932fe37fbea68e4dfa3120b7a74
2020-02-24 10:59:05 +01:00
Pau Espin 666d6c8236 remote: Fix comment typo
Change-Id: Ie466a95d354dc8c9d6960f713948426dadc58241
2020-02-24 10:41:58 +01:00
Pau Espin a9a2fe2ad3 srsLTE: Support configuring different RF backends
Before this patch, only virtual RF through ZeroMQ was supported.
This patch allows configuring srsUE and srsENB to use a real SDR with
UHD/SoapySDR backend connected through a physical RF network, while
still keeping compatibility to run on virtual RF ZeroMQ network, based
on the resources used (controlled by scenarios). For instance, one can
first run a suite through the phyisical RF (using 2 UHD-controlled SDRs)
and afterwards with ZeroMQ using the following default-suites.conf:

- 4g:srsenb-rftype-uhd+srsue-rftype-uhd
- 4g:srsenb-rftype-zmq+srsue-rftype-zmq

Change-Id: I7dbbe328f4c0225fe74e878bb2da13fe39ccf049
2020-02-20 15:54:33 +01:00
Pau Espin 9c383287e6 iperf3: Fix netns param not used
Change-Id: I2768ec0c6d2cbfc8411382a983e1ba17cb5f097e
2020-02-20 14:33:05 +01:00
Pau Espin d12b84c708 suites/debug: Allow jumping into python debugger
Change-Id: Ia6262299981f1d7ac2d81c22b7b9b007e096259a
2020-02-18 15:34:58 +00:00
Pau Espin 979f00d43d contrib: srslte: Allow changing repo name
Change-Id: I06e6566ac3df9369b391bc88f288f72588088ef1
2020-02-18 15:31:25 +00:00
Pau Espin 70c01ec92a contrib: Fix default variable value syntax
Change-Id: I23abf33881f64dd89c0bf5ef970972908d337366
2020-02-18 15:31:25 +00:00
Pau Espin 7691f2d027 config: Fix reading empty yaml default-suites.conf
during config.read(), on empty file yaml.safe_load() returns None, which
was then later converted to string "None" by _standardize(), and
osmo-gsm-tester.py was not catching "not combination_strs" condition.

Change-Id: I07d7daab8f8f4238db140f0a0311f3d1d41e6cb0
2020-02-18 12:12:03 +01:00
Pau Espin 4f3cc9e7e4 contrib/*sysmo.sh: Fix default poky SDK path
ansible scripts are installing the SDK in "poky-sdk" dir, not "poky" one.

Change-Id: I002fde53684cd4a43c9f22e09264056f2a950c24
2020-02-14 16:26:31 +01:00
Pau Espin 10fe37cdce contrib/*sysmo.sh: Fix default poky SDK version to 2.3.4
Current latest poky SDK is 2.3.4, and that's the one we have installed
in all buildhosts.

Change-Id: I8c855456c7f94a3d6ee58ca550a056a0fea61a71
2020-02-14 15:40:46 +01:00
Pau Espin f0a1af567f default-suites.conf: Run 4g test suite (srsLTE ZeroMQ)
Change-Id: I3f8c3588d7b139f044462d02069919256126bf57
2020-02-13 18:07:18 +01:00
Pau Espin c8b0f9359e Initial srsLTE support
2 tests (iperf3, ping) working against a full srs{UE,ENB,EPC} network
using ZeroMQ backend for RF (so no real RF support yet, that will come
next).

Related: OS##4295, OS#4296

Change-Id: I290c0d79258a9f94f00c7ff2e1c6c5579c0e32f4
2020-02-13 18:07:18 +01:00
Pau Espin ab2ffae89a resources.conf.prod: sysmocell500 new firmware now supports TRXDv1
Change-Id: Iec50662580479bf7b6dc08d08a1de8075b2da078
2020-02-12 19:04:55 +01:00
Pau Espin 873dee391d powersupply_intellinet: Log target ip+dev_port
Change-Id: Iafd6e3aaf1d3b4d91ac6cf06f2a7fe94fd1203c3
2020-02-12 17:56:30 +01:00
Pau Espin 4983eb5367 Fix remote and process RemoteNetNSProcess
Change-Id: Icdc917968a1310e287dd98994420519a605be9c0
2020-02-11 19:16:26 +01:00
Pau Espin c852ad8813 iperf3: Support running iperf3 remotely
The new RunNode class is used and ip_address support will be dropped
eventually, replaced by the former.

Change-Id: Ib803d7774cb502c7d07443d7720a7b013684faa8
2020-02-11 17:46:52 +01:00
Pau Espin 7346472e5a util: Add helper setcap_netsys_admin()
This API was already added for RemoteHost but forgot to add it too for
local systems. It will be used by srsue once support for it is added.

Change-Id: I734e910af90fd25bed27c24b60346064b5fde67e
2020-02-11 17:46:52 +01:00
Pau Espin 116a2c45fe Inroduce RunNode class
This class will be used to hold information for a run node, that is, a
target system or environment were a process or task is run.
It superseeds in functionality the old ip_address resource, which will
eventually be droped in favor of RunNode.

Change-Id: I647bedf116aa9a570d925a5281c9491c9032e343
2020-02-11 17:45:50 +01:00
Pau Espin 31a4aee92f util: Add sudoers.d/ example directory
Change-Id: Ib9ab4d88bf2fb94d04240169e0203b72616f58b0
2020-02-11 15:57:51 +01:00
Pau Espin 49ebbf5ed3 utils: Move shell script helpers to subdir
Change-Id: I86ed3b0bb779c50e57912cf6c2f1ee9fa6e5f557
2020-02-11 15:57:51 +01:00
Pau Espin 7381e820a1 remote: Add more helpers to operate on remote hosts
Change-Id: I034314839675038762e00750b069eee8fcb70a5c
2020-02-11 14:41:09 +01:00
Pau Espin 1bce944fa2 jenkins-build-srslte: Temporarily Switch git repo to own-controlled one
During integration of the different srsLTE processes, some bugs or
misbehaviors appear which require fixes in srsLTE. Let's use our own
temporary fork until integration is complete and all patches are merged
in upstream.

Change-Id: I6414d9855cf9c004385cc280e5a60e82f8e4fbad
2020-02-11 14:39:46 +01:00
Pau Espin 180adfc3a6 remote: Improve wrapper script handling proper exit of ssh-remote processes
Improvements include:
* Avoid race condition between receiving signal and process not yet
  started
* Make sure process is killed with -9 if process is still alive a while after
  we killed it (SIGINT, SIGTERM). This is useful for processes which
  sometimes hang during shutdown like srsue in some conditions.

Change-Id: I3c656b008a3c2b2bb453a59e51d338cb272fa50b
2020-02-11 14:39:36 +01:00
Pau Espin 14022d31b0 Add handlers to run process under a specific netns on a remote host
It will be used later to run iiperf3-cli connected to srsue on another host.

Change-Id: I8d223fc302df42446f5876ba020cfbea94be09b9
2020-02-11 14:39:28 +01:00