summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
3 daysfixup for Osmocom_CTRL_Functions: rate counters in bulkHEADmasterNeels Hofmeyr2-9/+7
At the time of writing Ief0d9b096feeee7d37b5f2429dd3e80de0161806 I wasn't aware of the 'inout' keyword, which allows to pass the counter list by reference. Rather modify the counter lists in-place. Instead of requiring list := f_counter_name_vals_add(list, ...) rather implement by directly modifying list: f_counter_name_vals_add(list, ...) Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a
8 daysbsc: MSC pooling: also test rate countersNeels Hofmeyr1-0/+113
Use new f_counter_* functions to verify osmo-bsc MSC pooling counters. This nicely also verifies the intended effect of each test in detail. Depends: I2ded757958dfa62b502efbab765203bcadf899e2 (osmo-bsc) Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f
8 daysOsmocom_CTRL_Functions: add: retrieve and verify rate counters in bulkNeels Hofmeyr1-0/+123
First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806
8 daysbts: Introduce TC_tx_power_ramp_adm_state_changePau Espin Pedrol1-0/+55
Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da
8 daysbts: Introduce test TC_tx_power_start_ramp_down_bcchPau Espin Pedrol1-4/+118
Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12
8 dayslibrary/RSL: pass lost link event to upper layers instead of failingPau Espin Pedrol1-5/+24
Some tests may expect that behavior so let the test decide what to do with it. Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c
10 daysbsc: Add CommonID Test: Send CommonID from MSC and check it is processedHarald Welte3-3/+60
Related: OS#2969 Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159
10 dayslibrary/RSL: fix trailing whitespacePau Espin Pedrol1-2/+2
Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407
11 daysBTS: refactor f_init_rsl(): make number of transceivers configurableVadim Yanitskiy1-29/+32
Not all osmo-bts backends do support multiple transceivers, while we still want to run test cases against them. Let's make the number of transceivers configurable (mp_transceiver_num), so it can be adjusted depending on osmo-bts backend to be used. Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155
12 daysMSC_ConnectionHandler: fix race condition in f_establish_fully()Vadim Yanitskiy1-0/+12
For more details, see I25e10e28de174337233e6a3bb32cc16f2d7d614e. Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Related: OS#4619
12 dayslibrary/RSL_Emulation: implement waiting queue for DChan messagesVadim Yanitskiy1-1/+75
Since change [1] has been merged, we see multiple regressions in ttcn3-bsc-test (all LCLS test cases) and ttcn3-bsc-test-sccplite (sporadic failures). In all failed cases, the reason is similar: RSL for unknown Dchan BSC_Tests.ttcn:4501 BSC_Tests control part BSC_Tests.ttcn:2176 TC_assignment_codec_fr testcase The mentioned change enables TCP_NODELAY option for all IPA based connections, including both OML and RSL. This option disables Nagle's algorithm [2], so we get less delays on IPA based links. It took me a lot of time to investigate, and finally, I figured out what is actually causing those regressions. The TCP_NODELAY itself is not a problem, of course. As it turned out, the problem is here, in our TTCN-3 test case framework. Each test case involves several components (actors) running in parallel. One of them is RSL_Emulation_CT, which is responsible for handling and routing of RSL messages between the connected components. A test case may register dedicated channel handlers by calling f_rslem_register(), so DCHAN/RLL/IPACCESS messages will be matched by RslChannelNr/TrxNr and routed to the corresponding one. If no handler is found for a given RSL message, the RSL_Emulation_CT would abort the test case execution. And that's where the problem is. Given that all components are running in parallel, it may happen that a received RSL message would be processed by the RSL emulation component faster than the test case would call f_rslem_register(). The test case would be aborted due to "RSL for unknown Dchan". Speaking in context of the failing BSC test cases, a test case calls f_rslem_register() on receipt of an Assignment Command as it contains all the assignment parameters. After that we expect to receive an RSL ip.access CRCX for that channel. The problem is that both Assignment Command and ip.access CRCX messages are sent by the BSC simultaneously, so the later may be handled faster than the first one. Race condition! Let's work this around by maintaining a waiting queue, where the messages, for which no handler was found, will be kept until the corresponding dedicated channel is registered. This is an optional feature that needs to be enabled explicitly by calling f_rslem_dchan_queue_enable(), and then explicitly disabled by calling f_rslem_dchan_queue_disable(). If at the moment of calling f_rslem_dchan_queue_disable() the waiting queue is not empty, e.g. because the IUT sent us more messages than we expected, test execution will be terminated. The actial fix for the LCLS test cases will be submitted next. [1] Ia3d4c41bf0659e682f0b7ae5f3d58ed0f28edb58 [2] https://en.wikipedia.org/wiki/Nagle%27s_algorithm Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Related: OS#4619
12 dayslibrary/RSL_Emulation: fix comment near f_rslem_suspend()Vadim Yanitskiy1-1/+1
Change-Id: If6487065329a4fc44275999de1972f76ded06562
12 daysbsc: Sync osmo-{bsc,stp}.cfg with docker-playground.gitHarald Welte3-24/+66
It appears some changes were made only to the files in docker-playground.git, but not here. This means that running tests locally produced unexpected results. We must always ensure that the tests run both without and with docker, which means making sure the configs are all maintained! Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c
12 daysosmo-bsc.cfg: Remove access-list directiveHarald Welte2-2/+0
This was removed when libfilter was removed from osmo-bsc. For some strange reason apparently the config files were not used/tested while testing the removal of libfilter. Also, irrespective of breaking TTCN3 test execution, we must introduce a dummy 'access-list' VTY command to osmo-bsc to ensure we don't break virtually every config file out there. Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78
13 daysbsc: set longer T_guard for TC_ho_neighbor_config testsNeels Hofmeyr1-5/+5
They perform several handover runs and tend to timeout prematurely on my machine. Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f
13 daysbsc: allow individual T_guard timeout via f_init()Neels Hofmeyr1-3/+3
The TC_ho_neighbor_config_* tests sometimes take longer than 30 seconds, because they run multiple handovers. Since they don't have access to the Test_CT, they cannot restart the T_guard. The simplest solution is to choose a longer T_guard timeout for those tests specifically, by adding an argument to f_init(). (A longer timeout for those tests is following in another patch.) Why f_init()? Assigning a different default value to T_guard seems to not be possible, but a different timeout value can be passed to T_guard.start(), which happens in f_init(). Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33
13 daysRAN_Emulation: drop unused function f_bssap_wait_for_reset()Neels Hofmeyr1-22/+0
Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241
13 daysbsc: undup pars.sccp_addr_msc and _bscNeels Hofmeyr2-32/+25
Handover testing required passing MSC and BSC addresses to f_tc_* functions and added pars.handover.sccp_addr_msc and .handover.sccp_addr_bsc. MSC pool tests added a separate sub-record pars.mscpool which also contains these two fields. Move them both up one level, to form a single pair of pars.sccp_addr_msc and pars.sccp_addr_bsc. This eliminates the pars.handover sub-record. Change-Id: Iae81ca58001455099218ce769a97dc6402832490
2020-06-18bsc: add MSC pooling testsNeels Hofmeyr3-3/+736
The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904
2020-06-18sgsn: Add series of tests on suspend/resume and paging behaviorHarald Welte1-0/+163
Let's test whether paging is triggered after T3314 expiration, as well as suspend and explicit and implicit resume work as expected Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Related: OS#4616
2020-06-18sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding caseHarald Welte1-2/+13
In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616
2020-06-18sgsn: Add functions for BSSGP suspend + resume procedureHarald Welte1-0/+40
Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Related: OS#4616
2020-06-18Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template argumentsHarald Welte1-1/+1
Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af
2020-06-18sgsn: Add BSSGP_SIG port to ConnHdlrHarald Welte1-0/+3
So far, the ConnHdlr components were only able to exchange BSSGP PDUs on the PTP BVC, but not on the SIGNALING BVC. For this, we need to actually connect to the BSSGP_SP_SIG that BSSGP_Emulation provides. Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Related: OS#4616
2020-06-18sgsn: Fix comment [cosmetic]Harald Welte1-1/+1
Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805
2020-06-17RAN_Emulation: allow sending UnitData from MSC_ConnHdlrNeels Hofmeyr1-0/+6
Add BSSAP_N_UNITDATA_req to RAN_Conn_PT, so that we are able to send a Paging from a test function that runs on MSC_ConnHdlr. This will be needed by upcoming MSC pool tests, see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930
2020-06-17RSL_Emulation: fix rx of tr_RSL_PAGING_CMD()Neels Hofmeyr1-1/+1
For tr_RSL_PAGING_CMD, also check comp_ref against null. Upon receiving a tr_RSL_PAGING_CMD, the code tries to dispatch the Paging Command to all valid clients. However, the ConnectionTable[*].comp_ref is *always* present, and actually null for unconnected clients. So, before this patch, a Paging Command from osmo-bsc gets sent to a null client, which disconnects the RSL emulation and aborts the test. There is currently no test using this, but the upcoming MSC pool tests will: see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5
2020-06-16bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass nowVadim Yanitskiy1-12/+2
Change I16cc50dfca102030380a06e16c234d5f6698f38f fixes them both. Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8
2020-06-16library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit longVadim Yanitskiy2-7/+7
Unlike the RSL_IE_MS_Power, where power_level is 5 bit long, in the RSL_IE_BS_Power it's 4 bit long. Fix this. Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365
2020-06-14bsc: allow multiple MSCsNeels Hofmeyr3-75/+119
Similar to the MSC tests, have several g_bssap and mp_bssap_cfg. Prepare for MSC pool tests. Replace g_bssap with a g_bssap[NUM_MSC] array. Replace mp_bssap_cfg with an mp_bssap_cfg[NUM_MSC] array. Requires patch I1986e4ef43beee161c82193694421b56136c1afe in docker-playground to match the new required BSC_Tests.cfg format. Related: OS#3682 Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f
2020-06-14move type RAN_Configurations to RAN_Adapter.ttcnppNeels Hofmeyr2-1/+1
So far used only in MSC_Tests.ttcn, but soon to be used also in BSC_Tests.ttcn. Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306
2020-06-14fix f_enc_IMEI_L3() oddevenIndicatorNeels Hofmeyr1-5/+14
f_gen_imei() calls f_enc_IMEI_L3() with a 14 digits argument, but the IMEI_L3 template used is hardcoded to 15 digits. So the oddevenIndicator must always indicate odd, not depend on the digits argument. f_gen_imei() should probably also compose a Luhn checksum, leaving that to another patch. Found by using the new osmo_mobile_identity API in osmo-msc, which is stricter about odd/even and filler digits than our previous implementations. See osmo-msc Idfc8e576e10756aeaacf5569f6178068313eb7ea . Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0
2020-06-13Add test whether we accept DATA without Routing Context IEHarald Welte1-0/+20
There are some M3UA implementations out there who use a routing context during the ASPAC procedure, but who then don't use it in subsequent DATA transmission. Let's add a test case for that. Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Related: OS#4594
2020-06-10BTS: fix latest: ignore mismatching messages in as_rsl_init_guard()Vadim Yanitskiy1-0/+2
Another surprise from the latest osmo-bts release: it may send us CCCH LOAD INDication message during the RSL bring up. Ignore it. Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d
2020-06-09library/RSL_Emulation: optional IPA stream ID patchingVadim Yanitskiy1-0/+25
Unfortunately, the latest release of osmo-bts still has a bug, that has been fixed [1] in the recent master. Because of that, most of the test cases in ttcn3-bts-test-latest currently fail. The problem is that all transceivers use IPAC_PROTO_RSL_TRX0, regardless of what the BSC tells them to use. Let's work this around by patching IPA stream ID in ASP_RSL_Unitdata messages coming from the IPA emulation. [1] I5927f59a49724170a63e87be604973f7c9d5d8be Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0
2020-06-09bts: Introduce test TC_tx_power_start_ramp_up_bcchPau Espin Pedrol3-3/+82
This test verifies power ramping (up) is working fine during BTS startup. config files are updated to make sense: * "nominal power" in osmo-bsc.cfg reflects correct default nominal tx power of fake_trx. * "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts use the value received through OML (max_power_red 20). * "power-ramp step-size" in osmo-bts.cfg is increased to speed up the test. There's no good reason to keep it lower. Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003
2020-06-07bts: Fix trailing whitespacePau Espin Pedrol1-1/+1
Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d
2020-06-05BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connectVadim Yanitskiy1-18/+28
Fixes TC_paging_{imsi,tmsi}_{200,80}percent test cases. Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Related: OS#4546
2020-06-05library/RSL_Emulation: cosmetic: improve logging messagesVadim Yanitskiy1-4/+4
Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892
2020-06-02MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversionPhilipp Maier1-1/+5
The rtp payload test vector in TC_amr_oa_bwe_rtp_conversion is wrong, it lacks the last byte which should be 0x00. Also the testvector is not very well chossen since it after BWE conversion the actual payload does not shrink (even if it looks like if it would because of the 0x00 byte at the end). Lets pick a better payload from a real world trace that actually shrinks by one byte when it is converted to BWE and use that one. Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8
2020-05-29PCU: s/f_establish_tbf/f_pcuif_tx_rach_rx_imm_ass/gVadim Yanitskiy2-6/+6
Fix confusion: f_ms_establish_ul_tbf() vs f_establish_tbf(). The new name precisely describes what the function does. Sending a RACH.ind and receiving a DATA.req with RR Immediate Assignment is just a part of the TBF establishment process. Change-Id: I1e22b9936bf68ebcaf70cefbc57345995ebbbaed
2020-05-29PCU: revert changes to f_TC_egprs_pkt_chan_req(), fix testsVadim Yanitskiy1-17/+5
I noticed that TC_egprs_pkt_chan_req_reject_exhaustion has started to fail since the refactoring change [1]. As it turned out, this test case does not init a GprsMs instance, which is needed by a function it depends on - f_TC_egprs_pkt_chan_req(). I don't really see the point of using the GprsMs abstraction for such small test cases sending just a few messages, which do not require us to keep any state. Let's just revert those changes, and keep using the low level API. [1] Ib3fee37580f0ea0530a659dec83656799bf57288 Change-Id: I4f32c138e7587e68d2d35d13d13c044893fec4b2
2020-05-29bts/BTS_Tests: add frequency hopping parametersVadim Yanitskiy2-16/+38
Change-Id: I111a14ca5d77c589529b40429d99d9ec6fa55a98 Related: Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b Related: OS#4546
2020-05-29library/L1CTL_PortType: f_L1CTL_DM_EST_REQ_IA(): handle hopping paramsVadim Yanitskiy1-4/+21
Change-Id: I8c14fee3ec8f7a799469c681b5afe79ab74a5dfc Related: OS#4546
2020-05-29library/L1CTL_Types: introduce ts_L1CTL_DM_EST_REQ_H1Vadim Yanitskiy1-0/+23
Change-Id: Ie236c48a906679a5f46346ac7cbaf5866fd8befc Related: OS#4546
2020-05-29library/L1CTL_Types: fix definition of L1ctlH1 (hopping parameters)Vadim Yanitskiy1-3/+13
Change-Id: I87555de751e6e4af6ac5fe308c3e77fa15c8bb16 Related: OS#4546
2020-05-29library/L1CTL_PortType: refactor L1CTL channel establishmentVadim Yanitskiy4-22/+29
- Get rid of f_L1CTL_DM_EST_REQ, it's not really needed. - Derive ts_L1CTL_DM_EST_REQ_H0 from ts_L1CTL_DM_EST_REQ. - Turn all its params into (value) templates. - Turn it into a (value) template itself. - Pass GsmArfcn directly to ts_L1CTL_DM_EST_REQ_H0. Change-Id: I4f275e22d4309a23b4ed301a0779c4ecb92023a8 Related: OS#4546
2020-05-29start-testsuite.sh: allow overriding TTCN3_BIN_DIROliver Smith1-1/+4
Override the default of /usr/bin with the environment variable of the same name, if set. Related: OS#4564 Change-Id: I245ae368a97558006fc9f85d4fcb4e4cd52fb19a
2020-05-28pcu: Add missing f_shutdown() to exit as soon as possible without final=truePau Espin Pedrol1-0/+3
Change-Id: I9703f7c81a98b6ef826db48c107ee833c125e5cc
2020-05-28pcu: TC_mt_ping_pong: Request UL TBF on last DL ACKPau Espin Pedrol3-6/+23
Let's test the code path where UL TBF is requested through DL ACK/NACK here, since we already test the usual UL TBF through CCCH approach in most tests. rlc_mode is changed to ACKED since that's the mode we are using so far in tests. Change-Id: I5a9a2e8107c87fdbf74cc2f09ae5eeafbb13ad55