Skip to content

Changes

Started by Pau Espin Pedrol
Started 7 yr 7 mo ago
Took 2 min 0 sec on build2-deb9build-ansible
schema: Accept band GSM-900
Change-Id: I274c3010f33776b2967ee01de027c44b794cc5d4
Pau Espin Pedrol at
example: Add scenarios to select BTS for a specific band
Change-Id: Id830536c9337151818901cb25c3a568a77cdbf5e
Pau Espin Pedrol at
nanobts: Add support to run nanobts on the 900 band
Change-Id: I13b494630ea835f4bed38ccc77f6a4d5e18326af
Pau Espin Pedrol at
example: Run tests on both nanobts with different bands
Change-Id: Iee2220e1770caa891713dbd18e8f4a4741c1fbe4
Pau Espin Pedrol at
templates: osmo-bsc: Remove no longer available cfgs
osmo-bsc c74a5616bf1c77ac40ddd92f4927dca7a1b45bc8 removed these cfg
options as they are dead code.
Change-Id: I2fb63d31d5d7424b48ed2cfc694d09db072db485
Pau Espin Pedrol at
event_loop: Use glib as mainloop impl and move modem to use event_loop
Several benefits:
- We can add APIs to poll on fds in the future (for smpp socket for
instance) instead of using busy polling.
- During wait(), we now block in the glib mainloop instead of sleeping
0.1 secs and not handling events during that time.
- We remove glib mainloop specific bits from modem.py
Change-Id: I8c3bc44bbe443703077110cdc67207e9cbb43767
Pau Espin Pedrol at
nanobts: Attempt at fixing race condition using ipaccess-config after
power up
It seems there's a period of time in between the nanoBTS starts
announcing itself and it can actually be managed by the BSC
(ipaccess-config in this case). If ipaccess-config is called quickly
after nanoBTS it first announced, its TCP conn will be rejected with a
TCO RST, and ipaccess-config will fail. Let's see if waiting a few
seconds is enough to have this working more reliably.
Change-Id: Iec8adb2cd13d808a6ca1843dc95b81bd1a97d1c0
Pau Espin Pedrol at
ms: Create a cumulative distribution function class
We are using the CDF to decide which percentage of the jobs should be
running at a given point. The x-axis is time and the y-axis the
percentage of how many jobs should be running.
There are three functions to do this. The first one is a constant which
would result in everything being started right now, one to start them
linearly and the last (formula from Qt/3rdparty) to first accelerate and
decelerate slowly.
Change-Id: I9e3064f4c3c4c7af5d3491f850090516e541f4d3
holger at
ms: Create a simple epoll (or kqueue) based event loop
Create a C-like single process event loop. It could be powered by
select/epoll or kqueue. It should scale to many open fds but we will not
have that many.
Change-Id: Iea06f33870cab9f21e9a1a1feb9758467343dd29
holger at
ms: Create an event server to handle Unix datagram messages
Create an EventServer that will create a unix domain socket and dispatch
incoming datagram messages. The lua remotes are not passing credentials
so this is a one way communication channel for now. Tests can register
to handle the message.
Change-Id: Ida97c570e8e741410f2dba4a231a8058ca96da25
holger at
ms: Add lua script support utilities
Add a JSON encoder and a small module to sent registration and other
events per unix datagram socket.
json.lua fetched using:
$ wget -O src/osmo_ms_driver/lua/json.lua \
https://raw.githubusercontent.com/rxi/json.lua/master/json.lua
Change-Id: I43ae84a944c7f33e41d5de0880d4aaab3378809b
holger at
ms: Lua part of location update testing
The lua part to start the MS and then signal the first successful
Location Update.
Change-Id: Ica5aa0c2f86d0e5d8a2bc4dc0652de18762dd156
holger at
ms: Create template for the osmocom-bb mobile application
Change-Id: I9296f42edfab57762f8dd317d63231298cda5430
holger at
ms: Create a starter for virtphy and mobile application
In the long run we might not want to start the virtphy but for now
virtphy+mobile belong together. Start virtphy first as mobile will not
handle a missing socket gracefully.
Change-Id: I5c6d742842d7f3e0a1858436ef3f8634d8c0582d
holger at
ms: Add a first test to use all parts of the system
This is an interim solution but is bringing all parts together. We will
need to:
* Abstract this into a base class
* Be able to mix different tests without interfering with each
  other (e.g. 10k LU tests, 2k SMS sending)
* The event loop will need to handle multiple timers/timeouts
* Stats printing should print more information and test pass/fail
* The test should quit early if everything has already passed
Change-Id: Id3277ed0f0f9ee734569bedd4752564eb68c9cfd
holger at
ms: Add a main function to start all of it
Add a main file to start everything. All parameters need to be made
configurable. Composition of testcase and IMSI ranges need to be
configurable as well. This is left for future commits. Right now it can
execute a single UL test.
Start with: export PATH=../osmocom-bb/src/host/layer23/src/mobile:$PATH
export PATH=../osmocom-bb/src/host/virt_phy/src/:$PATH export
PYTHONPATH=$PWD/src
python3 -mosmo_ms_driver
Change-Id: I58c938500a067eebb213750e56d8bf4d8af43df2
holger at
event_loop: Avoid leaking active timeouts on poll exception
It was spotted that when an error ocurred during poll generating an
exception to finish the test (osmo-msc ended prematurely), then the
active wait() condition was kept being checked for later tests, making
all followup tests fail.
That's because in case of exception we were not making sure the timeout
is removed and it kept firing forever.
Change-Id: I5c93cd67b2b83c0ecee96fbc6c4200b419bdf73f
Pau Espin Pedrol at
contrib: Enable address-sanitize in builds
Don't enable it for binaries built with sysmocom's cross-toolchain since
it doesn't contain required libasan.
Also, don't enable it on openbsc since we don't have an enable-sanitize
flag there.
Change-Id: Ibef6c2fc497bce0d799116a854a48872f9ca16d7
Pau Espin Pedrol at
contrib: build-osm-bts-sysmo: openbsc dep no longer needed
Change-Id: Iafd5ee1df001719ff6165ada996359b92116671e
Pau Espin Pedrol at
contrib: build-osmo-trx: Enable addr sanitize for osmo-trx
Change-Id: Iad90c7c8c2098680276de000c36bec0224f9746d
Pau Espin Pedrol at
build-osmo-trx: Disable asan in osmo-trx builds
Change-Id: Ic4ebbc3f66fd9de2343d486ed20a0f08fc11e326
Pau Espin Pedrol at
modem: Catch exception: call removed while waiting to become active
This can happen while in a test we use: wait(ms_mo.call_is_active,
mo_cid)
And then answer fails for whatever reason, after a timeout ofono will
remove the call object:
/sierra_2: DBG: 'org.ofono.VoiceCallManager'.CallRemoved() ->
/sierra_2/voicecall01
As a result, during next call o call_is_active() will try to get the
call object, but it doesn't exist anymore and an exception will be
created in method call_state during call to systembus_get().
Change-Id: I02b7e76425754372756493761819f18f1e3106c1
Pau Espin Pedrol at
osmo-trx binary is now called osmo-trx-uhd
Change-Id: Ibf111ba89b24964127b9c1db7102953e1dba3181
Pau Espin Pedrol at
bts_osmotrx: Don't use binary name as inst name
Change-Id: Iee20738f2aa750aa9035a9e54ad667d8753ea12e
Pau Espin Pedrol at
Check physical channel configs
Change-Id: I5894678e0d6f306173cc550dd6806a7d6f8a4c11
Pau Espin Pedrol at
bts: Refactor conf_for_bsc_osmo
Move duplicated code into a method in the superclass.
Change-Id: Ie27932f94142f667c3fb8c054b77e04afa0d5cbb
Pau Espin Pedrol at
bts: Pass defaults config name at construct time
It will be needed later at construction time when resolving the num of
trx.
Change-Id: I2c6a46ead14010f714897ea178917327215823e7
Pau Espin Pedrol at
bts: Move conf_for_bsc_prepare from bts_osmo to bts
nanobts inherits directly from bts.Bts, so we need to move
conf_for_bsc_prepare there to make nanobts work again.
Fixes: 530681fd86c4a4dab18e4575c9cdf339623ffa49 Change-Id:
I4305eefb4056ed7614118532e271efe780f4a87f
Pau Espin Pedrol at
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
Pau Espin Pedrol at
suite: Set suite subdir lib part of syspath so tests can import their
own modules
Change-Id: I3307c3ab314bb7a88d3c22c7c270c9f05fe6e03e
Pau Espin Pedrol at
tests: voice: Move logic to lib/testlib.py
This way we can have several tests sharing similar logic.
Change-Id: I5cfcc56970380a7c5400186fac5f504263d63c5f
Pau Espin Pedrol at
tests: voice: test voice calls on TCH/H timeslots
Change-Id: I897757a21fee516ce96808a180121b09f06a0fea
Pau Espin Pedrol at
tests: voice: Move mo_mt_call.py to mo_mt_call_tchf.py
Change-Id: I7306e62ad4c4294370690cf9006871f798a7b9ec
Pau Espin Pedrol at
tests: dyn_ts_*: Add tests to verify dynamic timeslots during phone
calls
Two different test suites are created since we want to run them with
different HW, because some HW support one type of PDCH channels, and
other HW supports the other one.
Change-Id: Id5e61eaff39ac7a6585dc7de2aeb2469dd2ce726
Pau Espin Pedrol at
default-suites.conf: Add dyn ts suites
Change-Id: Iec7c8d8c3617f11a5ee12c02bd75ed6822d76aa9
Pau Espin Pedrol at
default-suites.conf: Fix typo in previous commit
Change-Id: Ib1903324df8eb9f506b62dc0b9d2aa4a4a5179d7
Pau Espin Pedrol at
suites: Remove rebase artifacts from latest commits
Change-Id: I8afc446d4291810c63bfaeabb7167113667dd8d1
Pau Espin Pedrol at
Unload suite local modules after suite exit to avoid collisions
Since sys.path is modified idynamically to load modules from "lib"
subdir of each suite, from python env point of view all those modules
share a namespace. As a result, there can be name collisions.
If a name collision appears (eg test1 loads "testlib.py" and test2
afterwards also loads its own "testlib.py"), then python interpreter
thinks the testlib.py module is already loaded, so test2 ends up using
"testlib.py" from test1.
The way to solve this is to make suite local modules to live only
through the scope of the suite, and unload the modules once the suite is
finished.
Change-Id: I4efe815f85bc4ec2ca91aa9c2d3a369048f21571
Pau Espin Pedrol at
util: Fix unloading of suite lib import path
Change-Id: Iac81151f5baec092a3d15bbe6541b5bc007e6a03
Pau Espin Pedrol at
contrib: common: Record repo curr rev in have_repo instead of build_repo
This way scripts making use only of have_repo (to have build specific
insturctions) can still benefit from that code.
Change-Id: I03149942ac1d279a15c71df3eb880c331c8fc155
Pau Espin Pedrol at
contrib: common: create_bin_tgz supports sbin dir now
This is a preparation for inclusion of osmocom-bb build job, which
installs binaries such as osmocon in sbin.
Change-Id: I562721af82e481e926ee65dbcd9dcc5b55057ae8
Pau Espin Pedrol at
contrib: Add jenkins-build-osmocom-bb.sh to build osmocon
Change-Id: Ic5b29951d3fd143dce5826138c84301a9797b1ef
Pau Espin Pedrol at
testenv: Provide tests with access to process module
Some tests may want to start/stop/manages processes themselves. By using
the process module from osmo-gsm-tester, we make that possible easily,
providing with useful features such as requesting a suite to stop it on
cleanup.
Change-Id: I8e018107cbec81299ec2228bfff933fb3b0bb6cd
Pau Espin Pedrol at
contrib: build-osmocom-bb: Download and install osmocom-bb fw from OBS
As it's quite complex to build osmocom firmware nowadays (a specific old
release of gcc and binutils are required to build it), instead download
the already built binaries from OBS.
Change-Id: I2571268d91e2430a270e51438608e7dbd121e76d
Pau Espin Pedrol at
templates: osmo-bts: Use BTS assigned IP addr to bind CTRL and VTY iface
Change-Id: Ib1c3022a6c531ef8c6a5ba31927762806abc37ac
Pau Espin Pedrol at
bsc: Add API to mock BSC RSL IP addr
Change-Id: I9ca67964e656943b50967a27a88054fd3e484672
Pau Espin Pedrol at
process: Move cleanup log inside cleanup method
Change-Id: I72ad453e9dc8340946d7e7d041643fe8ef97439f
Pau Espin Pedrol at
Add option to expect bts/pcu failures and respawn its processes
Some tests may want to reproduce some scenarios in which it is expected
that a BTS process is stopped, for instance if the BSC link is dropped.
Provide a keepalive parameter to start() for bts and pcu objects to
inform suite that failures are expected and that it should keep them
alive in case that ocurrs by respawning the BTS process.
Change-Id: Ia2a7539f9fad457125ac9b60a52a52999e885ba8
Pau Espin Pedrol at
osmo-bsc.cfg.tmpl: Remove unused nd recently removed option dest
This VTY cmd has been removed in osmo-bsc.git
68e4be9c845e25f53aea511b1c57340a9da5825c.
Change-Id: I48c0b8a7b2a0088887f1309efc40bcf1da0f1626
Pau Espin Pedrol at
powersupply_sispm: Add port number to log name
This way it can easily be spotted which port is being triggered in case
someone wants to manually test it.
Change-Id: Ibd2c70170d97a786e37b6838b1ed6d4eb637ad8b
Pau Espin Pedrol at
event_loop: Log parameters during wait timeout exception
Change-Id: I1cf104392bfd11ad263264738eb4d8fa60550a5d
Pau Espin Pedrol at
osmo_ms_driver: Use the two new config options for the mobile
Avoid being stuck in c7 state and use the c7-any-timeout with a low
value. Do not attempt to store SMS in the home directory (if they are
received).
Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170
holger at
ggsn: Bind VTY and CTRL ifaces to assigned ip addr
Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f
Pau Espin Pedrol at
ms: Use the new API to pass credentials to the event server
We are using the "autobind" feature of Linux to get a special socket
address. This allows us to have roughly 2^20 clients on the system.
Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f
Holger Freyther at
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
Pau Espin Pedrol at