Commit Graph

102 Commits

Author SHA1 Message Date
Pau Espin 8028463e57 Add and use compatible scenario when testing IPA dynts with nanoBTS
nanoBTS doesn't support SDCCH8 in TS!=1 according to osmo-bsc code.
Let's use in this case TCH/H to make sure they are not used for the test
(since we require osmo-bsc to use full rate codecs for the call).

Change-Id: I37f3fe813d4074fbfe64ff3176048e7d25d470e2
2018-11-30 11:30:33 +00:00
Pau Espin 5686602a98 resources.conf: Set UHD identifiers on B200 devices
osmo-trx-uhd uses these args during device search/selection process. As
those were not set until now for B200, it means when a B200 was used by
osmo-gsm-tester any UHD device could be picked up and used by UHD.
That was actually happening since inclusion of UmTRX devices in Prod
setup, when running tests against desired B200, actually the UmTRX
device was being used.

Change-Id: I696bbc800b05fdd9a68a77f363d76dcc53ef24ee
2018-11-23 13:42:36 +00:00
Pau Espin 289383c914 resources.conf.rnd: gobi2k changed by ec20
Given current bad support of most features used, gobi2k modem was
removed and an EC20 was added instead.

Change-Id: I2df38547978c7d2b1a1309f6e73b5a59413e08ff
2018-11-19 09:40:24 +00:00
Pau Espin 4a6324742a default-suites: Enable tests for LimeSDR-USB
Change-Id: I896ea76f1d2847ec014a62c87220d184b95d1dd2
2018-11-18 20:30:02 +00:00
Pau Espin b79d39eb2c default-suites: Add tests for UmTRX
Change-Id: I0d0fe17676550a96d9bcf795faf43f7e6b82fb1a
2018-11-09 13:34:18 +00:00
Pau Espin e7f9f41e12 resurces.conf.prod: Add UmTRX device
Change-Id: I11f3275bddcc1c0c5bcd75e6a32f040a8f7c1174
2018-11-09 13:34:18 +00:00
Pau Espin a89d2e31d6 resources.conf.prod: Update modem info after HW upgrade
A new quadmodem with 4xEC20 has been added to the Prod setup.

Change-Id: I51f0b7dd7a1857d34fc2c5076016caeffa15240d
2018-11-06 15:47:19 +00:00
Pau Espin fcdf34ade8 resources.conf: ec20: Enable voice support
It was tested that it could do MO and MT voicecall just fine as SierraW
modems.

Change-Id: Ie14c00f9f80e00fdbb52ab82a53b4b5a187d41e7
2018-10-31 09:59:45 +01:00
Pau Espin 8cecdb2ae3 default-suites.conf: Enable testing egprs
Change-Id: I1885e2a749e62547f60b9c35e15f1277b2627bb4
2018-10-31 09:59:45 +01:00
Pau Espin 4f23ab58ad Add support to enable EGPRS
Change-Id: I682f0c1b4cb97b704d646f18f54e748baaefd677
2018-10-31 09:59:45 +01:00
Pau Espin 34735f1c49 resources.conf: Add extra IPaddr to pool
Change-Id: If0f1a6a3f4e99091ed117bc7a77a5e60eccb2425
2018-10-31 09:59:02 +01:00
Pau Espin fd4c144049 Add support to test gprs IPv4 data plane
Since the modem iface and the GGSN iface are on the same host/netns,
it's really difficult to conveniently test data plane without getting
routing loops. As a result, either GGSN or modem iface must be moved to
a different namespace. The decision after a few discussions was finally
to move modem interfaces to a different netns.

Expected setup:
* ofono is patched to avoid removing modem if it detects
through udev that its net iface was removed (due to for instance, net
iface being moved to another netns and thus not being reachable anymore
by systemd-udev process running in root netns).
* After ofono is started (and successfully configured all the modems and
detected its net ifaces through syfs/udev), script "modem-netns-setup.py
start" which creates a netns for each modem, naming it after its usb
path ID. net ifaces for that modem are moved into its netns.
* Modem is configured to use 802-3 data format, and as a result the net
iface is configured through DHCP (DHCP req only replied AFTER pdp ctx is
activated!).
* Since osmo-gsm-tester knowns the modem USB path ID (available in
resources.conf), it can run required steps (ifup, DHCP) to configure the
interface. The interface name is provided by ofono to osmo-gsm-tester.
* As a result, any process willing to transmit data through the modem
must be in the modem netns.

Related: OS#2308
Change-Id: Icb06bdfcdd37c797be95ab5addb28da2d9f6681c
2018-10-31 09:59:02 +01:00
Pau Espin 317cdf64e2 default-suites.conf: Make sure we use fr codec with IPA dyn TS
IPA style dynamic timeslots (TCH/F_PDCH) support only TCH/F and thus
only full rate codecs are to be used.

On the other hand, OSMO style dynamic timeslots (TCH/F_TCH/H_PDCH) can
use both full rate and half rate, so no need to be restrictive there.

Change-Id: I0039ef60b323ed72cfe00d8fd9e9287e9c82d49f
2018-10-30 16:24:25 +01:00
Pau Espin c046dba575 default-suites: Remove .conf suffic from scenarios
Change-Id: I090a3ba8c5eb8fc256f09c798bfb5a17cdca274e
2018-10-30 16:17:14 +01:00
Pau Espin d11da2e6bc defaults.conf: Set valid default codec_list matching avail TS types
By default, all channels are TCH/F, and as a result we cannot run half
rate codecs on it.

Since recent versions of osmo-bsc, it checks this kind of
misconfigurations and answers with an Assignment Failure:
....
20181029162133430 DMSC <0007> codec_pref.c:445 codec-support/trx config of BTS 0 does not intersect with codec-list of MSC 0
20181029162133430 DMSC <0007> osmo_bsc_main.c:887 Configuration contains mutually exclusive codec settings -- check configuration!
....
20181029162255253 DMSC <0007> osmo_bsc_bssap.c:859 Rx MSC DT1 BSSMAP ASSIGNMENT REQ
20181029162255254 DMSC <0007> osmo_bsc_bssap.c:718 No supported audio type found for channel_type = { ch_indctr=0x1, ch_rate_type=0xa, perm_spch=[ 42 21 11 01 25 05 ]

Change-Id: Ie6b37839fe363b5d1ba64c267d751221434cdedb
2018-10-29 17:47:01 +01:00
Pau Espin e789f0c088 osmo-bts-trx: Add support for osmo-trx-lms
Change-Id: I44db0fe4592109ecb665e1880806d90379da64f7
2018-10-10 09:39:58 +00:00
Pau Espin 1a39ec14c3 resources.conf.prod: Update TRX host ip addr
The host was updated to have several IP address to be able to run
several instances of osmo-trx in parallel.

Change-Id: I3595b82a5d202caec7bc48a63e28ce0331e5abb7
2018-10-09 12:21:33 +02:00
Pau Espin 3fa41541e2 defaults.conf: Add SDCCH8 ts in TRX1 cfg
This way we can test too if SDCH8 channels are allocated and used
correctly in TRX1 in multiTRX setups.

Change-Id: I9d08f3d019a28cf775d70d941c5a60a7e7ca20a9
2018-10-04 12:53:01 +02:00
Pau Espin 01a40a14ce default-suites.conf: Add test to check multiTRX with Ettus B200
Change-Id: Ied768938851488c3f502b2d41334afa17f7f5401
2018-10-03 12:37:33 +02:00
Pau Espin 1ff03766be osmo-trx: Enable multi_arfcn for B200 and only in multiTRX setup
Change-Id: I6a29e1813f0603b00b49b7b7c805be23a72cf0e3
2018-10-02 15:58:32 +02:00
Pau Espin b54d7c9261 resources.conf.prod: Use specific remote machine to run osmo-trx
Run osmo-trx in a separate more powerful machine (i5) rather than
running in low end APU where osmo-gsm-tester runs.

Change-Id: I0479643789783d5e8a142042a65c4d53020d1e79
2018-10-02 15:29:04 +02:00
Pau Espin a9006dffd9 osmotrx: Allow running osmo-trx from remote host
Change-Id: Ia31ac8eb41e02eda28d9f6f56774679300244ee8
2018-10-02 13:10:36 +02:00
Pau Espin 32512ae54b default-suites.conf: Add empty lines to easily spot different sections
Change-Id: If33fa9be091113d57b25dc3d73e277bbb3b0ce5a
2018-09-25 10:21:25 +00:00
Pau Espin 7fa19ac077 Add dynts suite to test switch between PDCH and TCH
It seems for not yet clear reasons the MS require some time after the
PDCH channels have been activated again to use them reliably. If no
sleep is used between call hangup and gprs activate pdp ctx, the MS
fails to activate the pdp ctx due to QMI error respone to the "Start
network" requested.

Related: OS#2582
Change-Id: I73b51c31309ac4c28c64ed7eb7c8c649e535aa22
2018-09-25 10:21:25 +00:00
Pau Espin 5876f4dfb8 default-suites: Remove nanobts HR1 voice test
nanobts doesn't support this codec, so it will always fail.

Change-Id: Iea4e6395809e5ef5485892f8f17e0dcfa36640dc
2018-09-18 20:29:07 +00:00
Pau Espin 94eab26bf3 osmo-trx: Add multi_arfcn support
2nd TRX arfcn is changed in defaults.conf because multi_arfcn requires
them to be alocated in steps of 4 starting from TRX0.

It is not enabled by default yet on B200 (it must use it to support
several TRX) because current host running osmo-gsm-tester is not
performant enough and cannot keep up with timers due to multi-arfcn CPU
overhead.

Change-Id: I096df82ad1f4cbb41dfbd6a78466a845f34be385
2018-09-18 11:29:12 +00:00
Pau Espin 44b7ea18ca osmo-bts-trx: Add multiTRX support
Support is limited to 1 osmo-trx with 1 phy and multiple instances.

Change-Id: If2bda5ec7ac9fa3fe6bc5d71f323c3ccc2a70158
2018-09-18 11:29:12 +00:00
Pau Espin 43857809c1 Sanitize existing suite names
When first suites were added, osmo-nitb was used. Then new tests using
regular split components were added with "aoip_" prefix. At some point
it was clear that osmo-nitb was being deprecated so new tests for split
components were added without any prefix, as they are expected to be the
default one. Since most current and future development is going to be done
for split components, as well as new tests added, it makes sense to move
the few old testsuites using osmo-nitb to have all "nitb_" prefix, while
keeping the split component tests without prefix as it's the regular
network topology.

Change-Id: Idea2e053d337548e0e9b1b47441dbb262124f909
2018-09-17 10:57:50 +00:00
Pau Espin 287bfcd788 Remove tests for unspecified speech HR2
HR2 was never specified, so there's no sense in attempting to test it.

Change-Id: Ifd7cab43bae0729106a9402e3e610eeecde645e4
2018-09-04 11:54:37 +02:00
Pau Espin 0d45504267 osmo-bts-trx: Big refactor and cleanup of osmo-trx related code
* This commit is a preparation for future commits to add support for
different osmo-trx devices and backends like osmo-trx-lms.

* Drop deprecated osmo-trx-* cmd line params and use VTY cfg to set them.

* As number of osmo-trx related osmo-gsm-tester attributes grow, group
them togther in an "osmo_trx" dictionary.

Change-Id: I77d29413c9e3b600b796627ba366f80c3281b7e1
2018-08-29 12:30:48 +02:00
Pau Espin a9fdda85af default-suites: Remove octobts tests
Since latest release firmware, we have been unable to start up octobts
correctly. As it's annoying having all those tests failing all the time,
let's disable them in nightly builds until we have a working OctoBTS
setup working again.

Change-Id: I828723193564b3a91aeac0c163c7c8c6b7e4058c
2018-08-29 10:18:05 +00:00
Pau Espin 7e58c61439 default-suites: Add suites testing different codecs
Change-Id: I591c71c66c5bbcd07466fe1d433aa87aed964fbe
2018-08-29 10:18:05 +00:00
Pau Espin 5dc245938b osmo-bsc: Parametrize codec-list VTY cfg
Change-Id: I1678aba43e8d399ecad192cbc416698373e3c0a0
2018-08-29 10:18:05 +00:00
Pau Espin a40bce5981 Add testsuite + scenarios to test nanoBTS multiTRX
Currently only 2 nanoBTS in the 900 band are attached together as a
multiTRX setup. We thus set num_trx to 2 and set channel allocator
descending to force the BTS to use the 2nd TRX when allocating channels.

Change-Id: I12e1bcb047c4efac5693cf725739e0ce2e0532ee
2018-08-23 16:56:29 +02:00
Pau Espin 722e94e833 Add channel_allocator cfg attr to bts resources
Change-Id: I682809d4aeb91a36e3a35fc481e8d40d0b084fa0
2018-08-22 11:59:09 +02:00
Pau Espin 2482416dd9 Replace suites dyn_ts_ipa* and voice using scenario modifiers
Now that we support modifiers in scenario files, we don't need to
duplicate tests and testsuites to dynamically set trx configuration at
run time. It can be done more easily with scenario modifiers.

Change-Id: I80c441bb5b98d5d2e95d4c6ae1efab3e5f3c40d9
2018-08-21 16:48:02 +02:00
Pau Espin aab56921f1 Introduce scenario modifiers
Before this patch, scenarios were only used to select resources with
specific attributes. This commit introduces "modifiers" in scenarios,
which allows setting or modifing config attributes of resources once
they have been reserved. This way same test can be run selecting same
resources but modifying its configuration, allowing for instance running
different number of TRX, different timeslot configuration, etc.

Modifiers are described by placing a "modifiers" dictionary in any
scenario file, similar to the current "resources" one used to select
requird resources. The "modifiers" dictionary is overlaid on top of the
"resources" one resulting from combining all the "resources" dictionary
of all scenario files.

Change-Id: If8c422c67d9a971d9ce2c72594f55cde2db7550d
2018-08-21 16:48:02 +02:00
Pau Espin 6caa5c1167 resources.conf.prod: Update modem paths after HW setup changes
Change-Id: I8673af3e9447b8093bc61503f9354a8f0431620e
2018-08-10 21:46:39 +02:00
Pau Espin f6a0712282 nanobts: Support multiTRX
num_trx is left for now by default to 1, but it has been tested to work
properly (current tests pass and both trx are configured) with
num_trx=2.

Change-Id: Ib3962f824a804e2aa582601475a8514c6cb0d8e7
2018-07-27 16:24:31 +02:00
Pau Espin bc1ed88304 Add ttcn3-bts-test env
Change-Id: I3251a49503dc823f0ef1fe8ef5d68236a584dad4
2018-07-25 16:38:30 +02:00
Pau Espin 80ce34bb88 resources.conf: Move nanobts address to differentiate them from local IPs
nanobts IP addresses are assigned through DHCP, and are not local to the
main unit. Let's use another subset for this DHCP pool as we usually use
.50ish for static local IP addresses.

Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012
2018-06-26 13:07:49 +02:00
Pau Espin a80e89c3d7 default-suites.conf: Fix typo in previous commit
Change-Id: Ib1903324df8eb9f506b62dc0b9d2aa4a4a5179d7
2018-05-08 20:53:49 +02:00
Pau Espin 1ffe768ca8 default-suites.conf: Add dyn ts suites
Change-Id: Iec7c8d8c3617f11a5ee12c02bd75ed6822d76aa9
2018-05-08 17:13:37 +02:00
Pau Espin 39df7f4668 bts: Allow setting amount of TRX and timeslot in cfg and from test at runtime
The num_trx attribute for a given BTS states the number of TRX to be
used by that BTS. If more than num_trx are configured in trx_list in the
cfg file, then only up to num_trx are taken into account. If a num_trx
value higher than max_trx is specified throuygh config file or at
runtime by the test, an exception is raised explaining the issue.

The num/max_trx attributes are overlayed along the config levels
(generic -> bsc_bts -> specific bts-type -> specific resource object).
This way we can specify a long list of trx+timeslot config in the
generic config (bsc_bts), and tune for each model and specific BTS which
is the desired default number of TRX, as well as the maximum supported
per type.

Change-Id: I7f46eaf7a16f03268653299c93600c0443f691ac
2018-05-08 14:55:12 +02:00
Pau Espin 47d2d3a838 example: Run tests on both nanobts with different bands
Change-Id: Iee2220e1770caa891713dbd18e8f4a4741c1fbe4
2018-03-27 19:26:37 +02:00
Pau Espin fef9c1c5cf nanobts: Add support to run nanobts on the 900 band
Change-Id: I13b494630ea835f4bed38ccc77f6a4d5e18326af
2018-03-27 19:20:47 +02:00
Pau Espin 3f480a0e05 example: Add scenarios to select BTS for a specific band
Change-Id: Id830536c9337151818901cb25c3a568a77cdbf5e
2018-03-27 19:16:14 +02:00
Pau Espin a238ed9931 nanobts: Bind to specific addr instead of specific iface
This way root access is not required.

Change-Id: I02f6fc9e1cb1ea1e1d950eafe22c231a18100f98
2018-03-27 14:51:51 +02:00
Pau Espin 807d865ebe default-suites.conf: Add nanobts related tests
Change-Id: I054db78e6a71514133e4e3c3158342b74af44201
2018-03-15 19:54:43 +01:00
Pau Espin 1b28a584ed Introduce ip.access nanobts support
Change-Id: Ibaea025b3a503dfe897d36701234445de6d49f82
2018-03-15 19:54:42 +01:00