Commit Graph

980 Commits

Author SHA1 Message Date
Pau Espin 786a6bcd20 Introduce initial Amarisoft ENB support
* object class expects the amarisoft software to be placed in directory
  provided by env var AMARISOFT_PATH_ENB. On local runs, it will run the
  software from there. On remote runs it will copy over that directory to
  the slave.
* Configuration provided works with 6 PRBs, but probably won't work for
  other values (yet).
* ZMQ support not yet available, only UHD.

One can select the Amarisoft ENB by declaring it in resources.conf:
"""
- label: AmarisoftENB-B200
  type: amarisoftenb
  rf_dev_type: uhd
  rf_dev_args: "type=b200,serial=317B9FE,recv_frame_size=9232,send_frame_size=9232"
  remote_user: jenkins
  addr: 10.12.1.206
"""

And running:
"""
$ export AMARISOFT_PATH_ENB=/path/to/binaries
$ osmo-gsm-tester.py ... -s 4g:amarisoftenb-rftype@uhd+srsue-rftype@UHD+mod-enb-nprb@6 -t ping
"""

Change-Id: I1ddf4962ea6438ad977382ab201b724028ca46b3
2020-03-31 08:22:18 +00:00
Andre Puschmann 3c207529de srs_enb: enable console trace, use RemoteProcess class and fix params
In order for the console trace to work over SSH this commit
switches to use the default RemoteProcess class. Note that srsENB
now correctly handles the SIGHUP signal.

The commit also remove a few unneeded params of the eNB.

Change-Id: If5af43effa9145b6764a32557a20a2e1760f0486
2020-03-30 21:31:35 +00:00
Andre Puschmann 793260d0f6 defaults.conf: set num_carriers default value
Change-Id: Ibe94fada0a40c499dd516408756c4ef7988ccec5
2020-03-24 21:21:16 +01:00
Andre Puschmann 54f25cabc5 srs_ue: remove hard-coded num phy thread param
Change-Id: Ia4fac188ecbe6aba393a68ec0291b51cd1441029
2020-03-24 17:33:55 +01:00
Andre Puschmann 4ae614dbef srs_enb: remove num_cells getter
Change-Id: Ic5c45bb17440d2ee241840591baf02930a0b3470
2020-03-24 16:40:29 +01:00
Andre Puschmann a0782d5df9 srs_enb: remove unneeded enb parameters
Change-Id: I1f2e18c6552fc4a6e3a68d75a85744fadf26aacb
2020-03-24 16:40:10 +01:00
Andre Puschmann c2c8221c12 srs_enb: enable console trace, use RemoteProcess class
In order for the console trace to work over SSH this commit
switches to use the default RemoteProcess class. Note that srsENB
now correctly handles the SIGHUP signal.

Change-Id: I26391eb8409e14b34987e0b338e10613fa157e06
2020-03-24 16:39:35 +01:00
Andre Puschmann 3ffea80ae8 srs_{enb,ue}: add secondary cell and set dl/ul freq in eNB/UE config accordingly
Change-Id: I3730856003fffda4f3c3f9e835d62ddc312c4c31
2020-03-24 14:30:19 +01:00
Andre Puschmann d61613ac80 srs_ue: adding num_carriers paramter and corresponding modifier
this allows to configure a UE to support multiple carriers

Change-Id: I4fa0a0c6e52efb17aa0b07e55abb5470d8028e8b
2020-03-24 14:30:19 +01:00
Andre Puschmann 82b88901f3 srs_enb: add num_cells param to srsENB
this is needed to support the upcoming multi-cell feature in srsENB.
It's required for carrier aggregation (CA) but can also
be used for (currently) two independent 4G cells.

This commit adds baseline support for the parameter. Upcoming
commits will add hooks to configure the cell's EARFCN, etc.

Change-Id: I6d1658bf820163aee03b64b0f4ac68046c243f37
2020-03-24 14:30:19 +01:00
Andre Puschmann 22ec00a01f ms: add optional param to specify fixed APN IP address assigned to a MS
this allows to specify a fixed APN address for each subscriber in the
HLR. If the param is not provided in the resources config, the default
allocation type is used, which is to dynamically allocate an IP in the
supported range.

Change-Id: Ie6fcd7987dc7bc62a686bee3a10c67e3dd813419
2020-03-24 14:30:19 +01:00
Andre Puschmann 35234f2e21 srs_ue: add scenario for airplane mode simulation in srsUE
Change-Id: I5db2ff325ce4b4236c1ceec0831dd7420d52dedb
2020-03-23 21:00:36 +01:00
Andre Puschmann bf960ec0cc srs{enb,ue}.conf.tmpl: make sure to only use a single PHY thread when running with ZMQ
Change-Id: Icc1e67705c0354ece77c037f224a9c756a16daaa
2020-03-23 21:00:36 +01:00
Andre Puschmann cfdcf89515 srs_ue: run srsUE as normal RemoteProcess
running with RemoteProcessFixIgnoreSIGHUP was needed bc
srsUE used to ignore SIGHUP that is delivered to the process
when the SSH session is terminated causing the UE to not
quit properly. This isn't the case anymore so we can use
RemoteProcess for spawning the UE.

Furthermore, the wrapper script didn't pass along stdin
to it's child process, i.e., srsUE. Therefore the console
trace can't be seen if the run through the wrapper.

Change-Id: Iab4dafc58167620362a36ec9e904b8d49a7d5fc1
2020-03-23 18:54:15 +01:00
Andre Puschmann 2e8626f9be srs_ue: send t+Enter to stdin after launching app
this enables the console trace which is printed to stdout
and provides human readable radio statistics

Change-Id: If1c998aff1c5c11d3fa636fb60cb4991e0def768
2020-03-23 18:54:15 +01:00
Andre Puschmann 66272f8ac8 process: add stdin_write method to communicate with child on stdin
Change-Id: I3e5d843911998bb50726d93e3dfd3de584dc81a5
2020-03-23 18:54:15 +01:00
Andre Puschmann f00d9bc259 relax max_rate for iperf UL/DL tests
Change-Id: Ia243156931918d5ab013c64c37823bc2e400798e
2020-03-21 21:45:29 +01:00
Andre Puschmann e227fa3b13 fix lookup table for maximum DL/UL rate for srsENB
Change-Id: Ieb027eaf5d8f4d774d0e29207f7a3b75dec6ee5b
2020-03-21 21:45:29 +01:00
Andre Puschmann b778707767 srsenb.conf.tmpl: update to new version
Change-Id: I204d03307aaaddcb15fed6f7310b64d09c43f64c
2020-03-21 21:45:29 +01:00
Pau Espin b99b0f308c doc/manuals: Introduce chapter explaining config data mangling
Explains how configurations bits are arranged and mangled to provide a
last config set.

Change-Id: I5c8f136e743b6beb02956b3436aa3d1010205141
2020-03-17 20:20:34 +01:00
Pau Espin 7788e3952d scenarios: Drop unnecessary srsue-rftype-soapy.conf
There's already a parametrized scenario handling it. We don't use any
soapy backend for srsue anyway yet.

Change-Id: Ie680178d2b16139473b5899803fb69a715a79216
2020-03-17 20:12:46 +01:00
Pau Espin c1220e1418 doc/manuals: Several format and styles fixes for config.adoc
Change-Id: I6371e09d6d88f137e7611bd60ac97b86414d8c47
2020-03-16 19:50:40 +01:00
Pau Espin 8ccd99a3a9 doc/manuals: Add proper content for Debugging section
Change-Id: Iaed2544d59f7c5dd69eef3ddfade544b35c837cd
2020-03-16 19:48:02 +01:00
Pau Espin cc0ad7dc78 doc/manuals: Introduce Troubleshooting section about SIGKILL fix
Add a section describing how to clean up and recover osmo-gsm-tester
state after a sigkill is used.

Change-Id: I4841ab6d44a122140e6352df1fb6543418adc033
2020-03-16 19:03:46 +01:00
Pau Espin 1e81b5af9a srs{ue,enb,epc}: Disable pcap by default, allow enabling by param
Take the change to fix several small things and support recording pcap
in srsENB.

pcap generation can be enabled with scenario cfg-srs-enable-pcap.

Change-Id: Ia096a9be7efb2123f95115c751e2402fb4fec935
2020-03-16 13:47:30 +01:00
Pau Espin 71a54fbf81 doc/manuals: Fix title out of sequence
asciidoc: WARNING: install.adoc: line 450: section title out of sequence: expected level 3, got level 4

Change-Id: I0c881405e66cc6815533bb884016db20cfdff3dc
2020-03-14 19:20:05 +01:00
Pau Espin 7dc2216071 doc/manuals: Write section explaining parametrized scenarios
Change-Id: I04b7fa46c2a282095bbb8f6d69ade87ff86f910c
2020-03-12 17:50:06 +00:00
Pau Espin 94622f12d9 doc/manuals: Write proper content for Ansible Setup section
Change-Id: Iffd3beefa50dd5f18908b4c3f7e4deb169feca62
2020-03-12 17:50:06 +00:00
Pau Espin bff90dce73 doc/manuals: Write proper content for Docker Setup section
Change-Id: Ie883adbf03a3b5c9a852182c01d15a212749ce04
2020-03-12 17:50:06 +00:00
Pau Espin 7e0b2ddfb8 doc/manual: Refactor, rewrite, improve and update most of the User Manual
* Some TODOs are added as comments which actually require code changes.
  These are details which showed up as incongruences or missing bits
  while writing the documentation for them.

* Some sections are introduced but still waiting to be writen soon:
** Debugging section
** Docker Setup section
** Ansible Setup section
** Troubleshooting (add jenkins red cross button sending kill -9)
** resources.conf attribute list needs to be converted to a table

* Device related setup needs to be updated and extended
* Parametrized scenarios need to be documented
* 4G resources documentation needs to be added.

Change-Id: Ifc2a3c74d45336cc988b76c0ff68a85311e4dd40
2020-03-12 17:50:06 +00:00
Pau Espin 990b520b1f osmo_ms_driver: Store cfg files and logs in correct test rundir
This way all the content is available as an artifact when we run it
inside osmo-gsm-tester.

Change-Id: I3ab493e6aafef90bb0c5d98e552840fd11c43079
2020-03-12 18:04:15 +01:00
Pau Espin e10970d626 Drop wrong vty cfg line ms-power-control
Those two BTS backends never had their own MS Power Control Loop, so
they should be using the "osmo" common one. This wrong value "dsp" used
to be accepted for no good reason, but it's no longer the case. Let's
remove the line to let the backend take the default one (osmo).

Change-Id: I842fce2b8185c53d1684747afcfc3ae8fba1afee
2020-03-12 16:13:23 +01:00
Pau Espin 66a38917f4 Move RESOURCES_CONF from resource.py to config.py
This way we have all known config file names in one place, in the module
containing the implementation to retrieve them
(config.read_config_file()).

Change-Id: I8304dda70268b16dbc316af882fecdbf20ac25ec
2020-03-11 20:15:13 +01:00
Pau Espin a2e81f5e19 config.py: use var to hold defaults.conf string
This way we have all config file names together in same place.

Change-Id: If35739f21f1414efdaba71acbb60661213ac58df
2020-03-11 20:15:07 +01:00
Pau Espin 5b31cc358c srsue: Use logfile instead of stdout
newer srsLTE has fixes to exit properly after 3 seconds and then flush the log file.

Change-Id: I9801ce932ad08b7fbb6d14a66e1dba64d4af38f7
2020-03-09 18:48:47 +01:00
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