Commit Graph

196 Commits

Author SHA1 Message Date
Pau Espin 00fec58871 pcu: TC_paging_cs_from_sgsn_*: Fix race condition between BSSGP tx and RLCMAC rx
It can happen that the RLCMAC req arrives at osmo-pcu before the
CS_PAGING we send to it over BSSGP, in which case osmo-pcu will schedule
an RLCMAC DL Dummy Block. Take into account this scenario to avoid
failing id it occurs.

Change-Id: I30da93835c7738aefcd84691d83f39759dd4b599
2022-12-02 14:57:44 +01:00
Pau Espin 3f2b5e41ea pcu: TC_mt_ping_pong*: Fix race condition waiting for first DL data after X2002
Since recently osmo-pcu arms the X2002 in a more fitting place (later,
when paging.cnf is received from osmo-bts over PCUIF).
Since we use same X2002 value in TTCN3 to wait for the timer to trigger,
in the past it was always fine (the X2002 at osmo-pcu always already had
triggered before the one in ttcn3 after receiving the ImmAss).

However, now the timer is roughly set at the same time in both places (ttcn3 and
osmo-pcu) and hence there may be race conditions where we request a
DL data block before the X2002 triggered at osmo-pcu, in which case we
receive a DL dummy block because the TBF is not yet in the FLOW state

Change-Id: Icc94eb0544226facddcd65be65a8a41bcfc662cc
2022-12-02 14:56:03 +01:00
Pau Espin 45b98aa0ee pcu: TC_dl_flow_more_blocks: Fix race condition waiting for first DL data after X2002
Since recently osmo-pcu arms the X2002 in a more fitting place (later,
when paging.cnf is received from osmo-bts over PCUIF).
Since we use same X2002 value in TTCN3 to wait for the timer to trigger,
in the past it was always fine (the X2002 at osmo-pcu always already had
triggered before the one in ttcn3 after receiving the ImmAss).

However, now the timer is roughly set at the same time in both places (ttcn3 and
osmo-pcu) and hence there may be race conditions where we request a
DL data block before the X2002 triggered at osmo-pcu, in which case we
receive a DL dummy block because the TBF is not yet in the FLOW state

Change-Id: I67483bc423567d1fc98eb912ece1cf5cda746119
2022-12-02 14:53:31 +01:00
Pau Espin e3e2bf6e78 pcu: Fix race condition in TC_cs_max_dl waiting for timer first DL data after X2002
Since recently osmo-pcu arms the X2002 in a more fitting place (later,
when paging.cnf is received from osmo-bts over PCUIF).
Since we use same X2002 value in TTCN3 to wait for the timer to trigger,
in the past it was always fine (the X2002 at osmo-pcu always already had
triggered before the one in ttcn3 after receiving the ImmAss).

However, now the timer is roughly set at the same time in both places (ttcn3 and
osmo-pcu) and hence there may be race conditions where we request a
DL data block before the X2002 triggered at osmo-pcu, in which case we
receive a DL dummy block because the TBF is not yet in the FLOW state.

Change-Id: If7121473a3580b40d3a658dc38b9bb1421196127
2022-12-02 14:53:28 +01:00
Pau Espin 99e00b480d pcu: Introduce tests TC_ul_tbf_{1,2}phase_while_dl_ass_pch
Related: OS#5700
Change-Id: I6a72c36265bfdc757180cbb466492ad6bbbf16ad
2022-11-04 09:35:37 +00:00
Pau Espin 15b2b94883 cosmetic: pcu: Fix typo in several comments
Change-Id: I7a2419514582cb9efd8df126bf449711f78586fe
2022-10-28 15:08:44 +02:00
Pau Espin 0b6b0d0bdb pcu: Introduce test TC_ul_tbf_finished_pkt_dl_ass_pch
Related: OS#5700
Change-Id: Id99b048e7c305fe616bb54437313a1e45449ff57
2022-10-28 15:07:11 +02:00
Vadim Yanitskiy 150d6d1bdc library: move IA/IAR Rest Octets to GSM_RestOctets.ttcn
Change-Id: Icd96fc461e37d1346950a4fa158e0421bd7330c5
2022-10-21 10:35:27 +00:00
Vadim Yanitskiy 7179d3e8d2 library: s/tr_RLCMAC_DUMMY_CTRL/tr_RLCMAC_DL_DUMMY_CTRL/
There also exists UL equivalent of this message, for which I am
planning to add a template.  Let's clarify direction in the name.

Change-Id: I3b19c6679eb432b062e28aee9dd1220dbf33ee31
2022-10-05 09:09:28 +00:00
Pau Espin 6844c161f9 pcu: Introduce test TC_dl_llc_sapi_priority
Related: OS#5508
Related: SYS#5908
Change-Id: I26308a59718a6470853c964583a39986006e59c0
2022-04-05 10:22:14 +00:00
Pau Espin 835fd300f8 pcu: Start PCUIF related components as alive-type
This should prevent following race conditions at shutdown:
"""
131 - Terminating component type PCUIF_Components.RAW_PCU_BTS_CT.
...
PCUIF_Components.ttcn:642 Dynamic test case error: Sending data on the connection of port BTS to 131:PCUIF failed. (Broken pipe)
"""

Change-Id: I17b2cfed2edbea7427e608380059bb1b422ca600
2022-02-24 11:47:43 +00:00
Pau Espin e5fe6e7527 pcu: Fix race condition in TC_t3141
The test was expecting to always receive at least 1 DL packet with
USF_UNUSED, but since we implemented idle blocks in PCUIF that may not
always be the case anymore. If the TBF is freed in between last
requested block and next one, there may be no TBF and hence no MS
listening on the TS, so PCU will optimize and send an idle block.

Change-Id: Ia301c01a3f5c3fd0b11d8f20e39061aa7abc6127
2022-02-24 11:47:43 +00:00
Pau Espin 1538c3b616 pcu: Drop mp_osmo_pcu_newer_than_0_9_0
osmo-pcu 1.0.0 was released, so we can drop references to older osmo-pcu
versions.

Change-Id: Ife37fc92c5b1ebf7e87b66c136ae900f44861510
2021-11-16 19:22:07 +01:00
Pau Espin 59aa109194 pcu: Introduce test TC_ul_tbf_reestablish_with_pkt_dl_ack_nack
Change-Id: I2058862cf11d0027b040eb6d9c0a27524df593b5
2021-11-16 11:32:55 +01:00
Pau Espin e8a9444356 pcu: Introduce test TC_t3172_*
Related: OS#3928
Change-Id: I3f4368c99b00453b471c3d741fecb8864ecdc628
2021-11-16 11:32:25 +01:00
Pau Espin 209dc7d4e1 pcu: No need to set t3142 in TC_ratectr_all_available_allocated
That's a copy-paste artefact from another test.

Change-Id: Ib0ec4a9bb4f48330ab5ced94fe6b705a9fc69603
2021-11-15 17:07:35 +00:00
Pau Espin 6eb4d25ba0 pcu: Introduce test TC_ratectr_all_available_allocated
Related: SYS#4878
Change-Id: Ide1254954b5cf02a19e190b19d06c7aaeedb6ede
2021-11-15 12:51:45 +01:00
Pau Espin 907ba20f37 pcu: Fix race condition in TC_n3101_max_t3169 and TC_n3103_max_t3169
I cannot reproduce the issue in my local system with docker, probabluy
due to different performance from jenkins builder. It triggers almost
every time in jenkins nightly TTCN3 PCU_tests though.
A similar fix was already introduced recently for TC_n3105_max_t3195
since PCU started submitting empty (idle) blocks when there's no TBF
listening on that PDCH. We need to update the test to account for that,
since our TTCN3 timers are not necessarily exactly matching the one at
the PCU side.

Change-Id: Ia5344df15c612c70a6cdd7bb6f12dc7524a23bf4
2021-11-15 11:15:12 +01:00
Pau Espin 518e82faf9 pcu: Introduce as_ms_rx_ignore_empty helper
It will be further used in follow-up patches.

Change-Id: I3c80ba4b8d229fa4a75dfd04abb7c5aae26e221c
2021-11-15 11:13:11 +01:00
Pau Espin 023330db64 pcu: Improve counter validation
Validate some new counters recently added in osmo-pcu.

Related: SYS#4878
Change-Id: I98e340053c91abdbf28c6e9641190bc78df35eff
2021-11-08 18:42:31 +00:00
Pau Espin d658f345f6 pcu: Introduce test TC_ul_tbf_reestablish_with_pkt_resource_req_n3105_max
Change-Id: I3a50445c707430900c78623c7093ff7eb1f3ed95
2021-10-20 13:35:04 +00:00
Pau Espin 332aba85b0 pcu: Adapt tests to pass with new idle blocks from PCU
Depends: osmo-pcu.git Ife718eeed2af011479c03099ea109518f04567bc
Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62
2021-10-20 13:35:04 +00:00
Pau Espin 376045711a pcu: Add missing test TC_ul_tbf_reestablish_with_pkt_resource_req in control()
Fixes: cdbe90306b
Change-Id: I1c0bd188ec972e6224c980bf96d7f6da1de98fbc
2021-10-15 14:36:29 +02:00
Oliver Smith f04762d48d pcu: add TC_stat_pdch_avail_occ_ms_not_known_*
Add two new tests to verify occupied and available PDCH stats if MS is
not known by the PCU.

Related: SYS#4878
Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8
2021-09-17 16:59:32 +02:00
Oliver Smith 4b2a89f308 pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats
Extend the test to verify that TTCN3.bts.0.pdch.occupied.gprs and
TTCN3.bts.0.pdch.occupied.egprs work as expected. These new stats are
needed for performance measurements in 3GPP TS 52.402 § B.2.1.54-55.

Related: SYS#4878
Depends: osmo-pcu I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42
Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8
2021-09-17 08:03:03 +00:00
Oliver Smith edcded2d81 pcu: TC_stat_pdch_avail_occ: enable 4 TRX
Enable multiple TRX to verify that counters work as expected if the
allocator spreads TBFs over multiple TRX.

Related: SYS#4878
Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50
2021-09-17 08:03:03 +00:00
Pau Espin f28fd080fc pcu: Support Neighbor Address Resolution over PCUIF
New versions of osmo-pcu support Neighbor Address Resolution over this
interface, and deprecated the old CTRL interface.
Let's use it by default while still keeping support for the old one for
a while to avoid breakage of existing deployments.

Tests run to validate:
* Old osmo-pcu still passes tests using CTRL interface
* New osmo-pcu (with new iface support) still passes tests using CTRL
  interface
* New osmo-pcu (with new iface support) passes tests using new iface

Related: SYS#4971
Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50
2021-09-14 09:11:14 +00:00
Oliver Smith 72d0c693ab Cosmetic: pcu: fix GprsMS count comment
Related: SYS#4878
Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713
2021-09-08 10:04:15 +02:00
Oliver Smith 3d174882ba pcu: add TC_stat_pdch_avail_occ
Test new stats bts.N.pdch.available/occupied, which count available
PDCHs (3GPP TS 52.402 § B.2.1.38) as well as occupied PDCHs
(§ B.2.1.42-44).

Related: SYS#4878
Related: osmo-pcu I74760a68ee055510a79e80854ec7bf1521669119
Change-Id: I607b4729740159c161af824317f9fc04878eb13d
2021-09-06 09:11:30 +00:00
Pau Espin 3aa61c66fa pcu: Introduce test TC_pdch_energy_saving
Related: SYS#4919
Related: OS#4772
Change-Id: Icf5cc467ecabe3fcbf86e0f4caf497669b76fb42
2021-08-31 10:10:29 +00:00
Oliver Smith e1a77c4c59 pcu: add test TC_paging_pch_timeout
Related: SYS#4878
Change-Id: I8a8a912908f42d16dc04e2abe8ee4117f08bc672
2021-08-15 17:21:48 +00:00
Oliver Smith fbd3931051 pcu: f_tc_paging_ps_from_sgsn: move init/shutdown
Prepare to use this shared function in a new test with additional
commands between init, the function and shutdown.

Related: SYS#4878
Change-Id: I6fd523c7f5ab496b3356cf896a8ceaf9b6e874d2
2021-08-15 17:21:48 +00:00
Oliver Smith 36d95d8502 pcu: test counter bts.0.pch.requests
Related: SYS#4878
Change-Id: I366b5c699708a69ca0e9d8c74319a241a46ed842
2021-08-10 10:38:12 +00:00
Oliver Smith 61b4e73379 pcu: test counter pcu.sgsn.0.rx_paging_ps
Related: SYS#4878
Depends: docker-playground 22c6ef9e6ba9c368dc058319662ff95ccbab8063
Change-Id: I20398eed7f462940bcd3d6354d1cd4d47329b74f
2021-08-10 10:38:12 +00:00
Vadim Yanitskiy 866f870b7a PCU_Tests: new test case TC_ta_ul_ack_nack_first_block()
In a busy network, there can be a significant delay between resource
allocation (Packet Uplink Assignment above) and the actual time when
the MS is allowed to transmit the first Uplink data block.

Verify Timing Advance value indicated in Packet Uplink ACK/NACK message
sent in response to the first Uplink block after resource allocation.

Change-Id: I30f82c51b3e9a167af4dbce3e74697dd79ff15bf
2021-06-04 21:05:01 +00:00
Pau Espin 1451f9f860 pcu: Introduce test TC_t3141
Change-Id: I5f30e93de4a109d60577394da4e00a15ab23d1d6
Related: OS#1940
2021-05-18 19:04:09 +00:00
Pau Espin 436e2bdb4c pcu: Introduce test TC_rim_ran_info_req_single_rep_eutran
Related: SYS#5314
Change-Id: I87f3daba1521d2dc8eed78ffdc6de5744484ba7a
2021-05-17 20:33:00 +00:00
Pau Espin 93ae4527bf pcu: TC_n3103_max_t3169: Send TLLI in UL blocks
Otherwise MS is not behaving correctly and newer versions of PCU (more
strict checking TLLI and behaving better) may not accept it and make the
test fail.

Related: OS#1940
Change-Id: I2efa5ce97bf2c82727efcbdebdc0a0b686664e12
2021-05-13 18:03:24 +00:00
Pau Espin a5cee4c8e6 f_TC_egprs_pkt_chan_req_reject: Validate WaitIndication in ImmAssRej
Related: OS#3928
Change-Id: Id277f11b411d7b18e3a0445e0c76cbd107c6857d
2021-04-27 10:28:11 +02:00
Pau Espin 8f56ecd65c pcu: Drop test TC_t3169
This test was added a long time ago to test what used to be the previous
early implementation of T3169, which didn't follow specs as per TS
44.060.
Since recently, osmo-pcu supports tracking UL PDCH blocks and hence
properly implementing N3101 and N3101, finally also implementing T3169
correctly.
The counters N3101/3 and timer T3169 are already being tested in
following tests:
TC_n3101_max_t3169
TC_n3103_max_t3169

Since osmo-pcu I2cec531e2633281b88f69ba065c0105580c81076, time-based
T3169 is dropped and TC_t3169 doesn't pass anymore, since it had wrong
expectancies (because it's not sending RTS to osmo-pcu, hence not
triggering USF/RRBP N3101/3 timeouts).

Change-Id: I023fb406f1df6e67e16982cb11dc1fcb6fb9b544
2021-04-27 10:28:11 +02:00
Pau Espin dee557059b pcu: Take into account TbfStartingTime
New versions of osmo-pcu will validate the Pkt Resource Request is sent
on the correct FN, so we must send first UL block exactly when
requested.

Change-Id: I6dad0f3167ace8d4a763fed971db94f32faf6ced
2021-04-27 10:28:06 +02:00
Pau Espin cc895dfc4d pcu: Introduce test TC_n3103_max_t3169
Related: OS#5033
Change-Id: I90661ce249ff2a2040b9e82688cf413eb65e0c8e
2021-04-21 18:19:47 +02:00
Pau Espin bf8c71f8ac pcu: Fix TC_n3105_max_t3195
The previously request Dummy block was processed later in an unrelated
place of the test, hence making expectations fail.

The condition T_3195.running doesn't really change the logic/behavior,
but removes an annoying warning in log files everytime the alt step is
run.

Change-Id: I4aa25d1220ccbeb8f1870f36651c9d6793a452b1
2021-04-21 18:08:15 +02:00
Pau Espin 02a6d0c489 pcu: Fix typo in variable name
Change-Id: I8233b0b7f425fba4cbea9859a13b6e612cccede2
2021-04-19 17:11:07 +02:00
Pau Espin 73c5d37846 pcu: Adapt N3101_MAX verification expectations
There's some offset between Tx and Rx path, so we need to account for
differences counting and finding out USF blocks didn't arrive.

Change-Id: I868e7d24c8bdc9b85797f8fe4f9ee1bc5a3d1adb
2021-03-29 14:23:05 +02:00
Pau Espin 4ceb61c063 pcu: Avoid early TBF release due to N3101 in TC_multiplex_dl_gprs_egprs
Also change a bit expectations, since it can actually happen that DL
blocks for GPRS-only MS never signal USF for itself, which is
still fine.

Change-Id: Iedff87cedf55ab18b32bd0f159d1145901878203
2021-03-29 14:22:40 +02:00
Vadim Yanitskiy 1da1fefb73 library/PCUIF_Types: get rid of version 9 compatibility glue
Change-Id: Ia9f366ca1fdad700a90ca3367e43523f7bac39a1
Related: OS#5083
2021-03-23 13:41:09 +00:00
Pau Espin f30fa1d24d pcu: Introduce test TC_n3101_max_t3169
This test currently fails to pass in master osmo-pcu (and latest) due to
T3169 not being implemented exactly as per specs (due to limitations in
detecting lost UL blocks with assigned USF).

Related: OS#5033
Change-Id: I56177850f084cdaf4fcac63ebdcdff9cef4e7a5d
2021-03-05 15:06:49 +01:00
Pau Espin 14ca7e3398 pcu: Introduce test TC_n3105_max_t3195
Related: OS#3928
Change-Id: I6f756c928509364fee14c552279f01b4e4f0e060
2021-03-05 15:04:50 +01:00
Pau Espin 84a8c3c3dd pcu: Introduce tests to validate X2301 and T3191
They are tested together since anyway in order to reach T3191 we need to
go through X2301 (IDLE TBF timeout).

Related: OS#3928
Change-Id: Ib6dfc5711b9c6f1fd404bce424bbf4b115fc930e
2021-03-05 15:04:47 +01:00