Commit Graph

363 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 7031893cf5 pcu: fix coding style in f_ms_handle_pkt_neighbor_cell_data()
Change-Id: Ie30c2e031c17c8a6173499635cf10656c33b7e7f
2022-10-05 09:10:36 +00:00
Vadim Yanitskiy 1160284ba6 pcu: cosmetic: fix coding style in f_ms_rx_pkt_ass_pacch()
Change-Id: I901a540e4461eed6019a8e3288ea0bb1f5c4d57d
2022-10-05 09:10:36 +00:00
Vadim Yanitskiy 1030b7ab99 pcu: cosmetic: fix coding style in f_tx_data_ind_fn()
Change-Id: Ib7ffed5573281b343c7691ff218458a0641ee8b0
2022-10-05 09:10:36 +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
Vadim Yanitskiy b34f5a9c37 pcu: osmo-pcu.cfg: update GSMTAP Um logging configuration
Change-Id: Ia53f59da04fd30f055ee3a6a46e9afb5ecd48162
2022-10-02 14:48:57 +07:00
Neels Hofmeyr 13b83db5db update various expected-results.xml
Change-Id: I850b79526145307246bca40c70ed8e4d586d8c68
2022-08-12 02:31:23 +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 3bb9edf95d pcu: usse alive-type for NS and BSSGP created components
Internal BVC components in BSSGP are now created as alive. We have to
create also BSSGP one as alive in order to avoid having the BVC
component sending stuff to the BSSGP when it has already been killed:

BSSGP_Emulation.ttcnpp:1133 Dynamic test case error: Sending data on the connection of port BVC to 486:BVC failed. (Broken pipe)

Change-Id: I369a5e2246204416c2f29a114bde6bc21f7eaf4f
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 4c23aeabc4 pcu: Drop mp_send_all_data_ind
osmo-pcu 1.0.0 was released, so we can drop references to older osmo-pcu
versions.

Change-Id: I6720f066731b4336f8527643bed16ae7ea047c20
2021-11-16 19:22:01 +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 f8fe1329e2 regen_makefile.sh: set executable name explicitly
Set the executable name in each regen_makefile.sh explicitly with -e,
instead of having it set indirectly from the first .ttcn file. Make it
consistent by placing the name on top of each of these files.

Fix for warning:
ttcn3_makefilegen: warning: File `BSC_Tests.ttcn' was given more than once for the Makefile.

Related: OS#5252
Change-Id: I5ed03f8f3ed905483620dc7bae33b617bbb8507f
2021-10-13 11:12:22 +02:00
Oliver Smith 2e0e624060 regen_makefile.sh: files/flags in separate lines
Make all regen_makefile.sh more readable and diff friendly by moving
each entry in FILES and CPPFLAGS_TTCN3 into separate lines. Order
entries alphabetically.

Related: OS#5252
Change-Id: I6b6866eb9f6ec6232e4ae434517457a4c8c1c050
2021-10-12 16:35:01 +02:00
Pau Espin cf2ada57cc pcu: Allow empty rlcmac blocks in data_req
They are used by osmo-pcu to signal idle blocks.

Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4
2021-09-22 14:36:35 +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
Pau Espin 1f7dec451d pcu: as_rx_fail_dummy: Drop unneeded dependency on ms param
The parameter is not used, so let's drop it and rename it to make it
usable without ms.

Change-Id: I57e9c754c00f930fccc35cf8d853e576fc8054da
2021-08-31 06:59:12 +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
Neels Hofmeyr cb8d9894af update expected-results.xml files
Change-Id: Idcf764cd2d251210bb123d2a5ea782cda0d670b7
2021-07-05 13:11:14 +02:00
Vadim Yanitskiy 40bc162398 PCU: remove deprecated 'alpha 0' from osmo-pcu.cfg
Change-Id: I38d2d141a0743cc4bb61f62a98d7cc5c1384cff5
2021-06-21 09:36:13 +00:00
Alexander Couzens bd6e9a1da9 RAW_NS/NS_Provider_IPL4: allow to use the new NSVC interface
RAW_NS used previous a single TTCN3 port for a single UDP port
(source/listen side).
This has the limitation that only a single NSVC could be tested for a
local UDP port. However SNS tests require multiple NSVCs over a single UDP port.
NS_Provider_IPL4 already supports multiple NSVCs for the NS_Emulation.
Extend the support in NS_Provider_IPL4 to also allow RAW_NS to use
multiple NSVCs.

Related: OS#5036
Change-Id: Iafd9310e04066958914201da0cbdcd563bd5c976
2021-06-15 20:20:44 +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
Vadim Yanitskiy 474ec92c7f f_ms_tx_data_ind(): indicate actual Timing Advance in DATA.ind
Change-Id: Id89a5ed1ea82a81f0ce4e75204117afb322f5264
2021-06-04 19:57:35 +00:00