Skip to content
Success

#18 (Jun 3, 2025, 6:24:03 AM)

Started 8 mo 19 days ago
Took 1 min 33 sec on build4-deb12build-ansible

Started by user Oliver Smith

This run spent:

  • 5 ms waiting;
  • 1 min 33 sec build duration;
  • 1 min 33 sec total from scheduled to completion.
Revision: 0285c3de4a29940094ac5aed992aa7f0edc2d9f2
Repository: https://gerrit.osmocom.org/osmo-ttcn3-hacks
  • refs/remotes/origin/osmith/wip
sccp: Initial testenv

Change-Id: I616425d729dda342e78537c6b7256d5dddebaa88
Pau Espin Pedrol at
sccp: Let some time for SCCP RLC to reach IUT before finishing test

Otherwise tear down of the test component immediatelly afterwards
creates a race condition where sometimes the RLC message is not sent
before closing the socket.
As a result, the SCCP-SCOC stays in DISCONN_PEND until T(rel) fires a
while afterwards, generating a new RLSD in a follow-up test, disrupting
expectancies of that unrelated test.

Since sccp_demo_user doesn't implement a Layer Manager, the recv() 0
from the socket doesn't automatically tear down the SCCP conn, since it
could have several ASPs:
"""
0: asp-asp-srv-client: ss7_asp_xua_srv_conn_rx_cb(): sctp_recvmsg() returned 0 (flags=0x80)
...
asp-srv-client: connection closed
XUA_ASP(asp-srv-client){ASP_ACTIVE}: Received Event SCTP-COMM_DOWN.ind
XUA_ASP(asp-srv-client){ASP_ACTIVE}: state_chg to ASP_DOWN
XUA_AS(as-srv-client){AS_ACTIVE}: Received Event ASPAS-ASP_DOWN.ind
XUA_AS(as-srv-client){AS_ACTIVE}: state_chg to AS_PENDING
Delivering N-PCSTATE.indication to SCCP User 'SCCP Management'
Ignoring SCCP user primitive N-PCSTATE.indication
[Here same 2 lines for SCCP User 'refuser', 'echo', 'callback', 'test_client_vty']
XUA_ASP(asp-srv-client){ASP_DOWN}: No Layer Manager, dropping M-ASP_DOWN.indication
XUA_ASP(asp-srv-client){ASP_DOWN}: No Layer Manager, dropping M-SCTP_RELEASE.indication
"""

Change-Id: Id7d5970bb0fe0e42fedcb56fe4a738a92ddd5bbf
Pau Espin Pedrol at
library/s1ap: f_tr_S1AP_RABSetupRsp(): use ispresent()

Change-Id: I6ee1246ef9f32ac7d5ce107d3ba9ea11ed87af20
Vadim Yanitskiy at
library/s1ap: add E-RAB MODIFY REQ/RSP templates

Change-Id: Id38cd51698c1388311a41f045ff08ec7f8a85146
Vadim Yanitskiy at
library/s1ap: add E-RAB MODIFY IND/CNF templates

Change-Id: I2dd3d420ebfaf37fefa1d33a40176ec57fee5619
Vadim Yanitskiy at
s1gw: make f_ConnHdlr_rx_session_modify_req() more flexible

Allow the caller to pass FAR ID, SEID, and E-RAB parameters (F-TEID),
so that it can also be used for testing the E-RAB MODIFY procedure.

Change-Id: I52317e79ac02cb4e321b49c2cd824de28e25a1c6
Vadim Yanitskiy at
s1gw: add constants for PFCP FAR IDs

Change-Id: Ib25e5cc9ca21047f9884e1c13d0861bf4f7251a1
Vadim Yanitskiy at
mgw: Improve log and teardown upon unexpected mgcp resp received

Change-Id: I233075f5a88ed7f1f7de496664cdc7281aefa900
Pau Espin Pedrol at
PCU_Tests_SNS: sns_del: check if removed NS-VC still transmits

After removing a NS-VC via SNS-DEL, the NS-VC shouldn't receive
any further NS PDUs.

Related: OS#6611
Change-Id: Ied4367a519cf75291ff8766c9efebb0f8a12b11f
lynxis at
GSUP_Templates: Purge MS Request: allow the Message class IE to be present

Change-Id: I367f63fe5286e39ba51de94729455d2638f19c6f
lynxis at
SGSN: f_cellid_to_RAI: fix spaces vs tabs

Change-Id: Ic1927729dd0d205f1bd866423c8dfdf91caf597d
lynxis at
msc: add testenv.cfg

Change-Id: Ia93115e3a27ac43b6530f2669e210f59169d75b9
lynxis at
stp: Improve failure teardown using Misc_Helpers.f_shutdown

Change-Id: I776bc32b1bdb52d7e90102c4ab6ff7b0ef7a12c6
laforge at
stp: set up all M3UA ports in array in steps

This way we have all ports in more or less the same state when handling
messages.
It should also speed up tests and mitigate sporadic failures  under some
scenarios where we already accept the SCTP conn instead of rejecting it
and waiting for reconnect from client.

Change-Id: I585d9c768301bfd9ba849876923787137fc35981
laforge at
gbproxy: Don't log the payload size for every DL/UL-UNITDATA

This just wastes memory. We can check the pcaps if a test does fail.

Change-Id: I862d67a48f1d694262cf39a1e939033bde0c6eab
Related: OS#6704
dwillmann at
testenv: run: add --autoreconf-in-src-copy arg

Add a new argument that avoids the problem that ./configure refuses to
run if it has already been executed in the source dir. (It aborts and
asks the user to run "make distclean" first, which is especially
annoying if it has to be done in multiple source dirs before being able
to build successfully.)

Put the new logic behind an "experimental argument" for now. I think it
improves usability greatly and plan to make it the default later when
it has been well tested.

I have also considered making the source dir read-only when mounted into
podman and this argument is set. This was the original goal of Lynxis'
related patch, on which idea this one is based. But osmo-dev still
needs to write into the source dir in case it clones a new repository,
so making the sources dir read-only with this trade-off should be a
separate flag and could be added in another patch later.

Related: osmo-ttcn3-hacks I0f1ac8852218f158ece14c176f05574f60d9d1f7
Depends: osmo-dev I18ac50e3441df81e1fe7d8d5321df7e80ab9c650
Change-Id: I5c38ce69dc39823d12be574c74a654d2fa6ed8fb
Oliver Smith at
library/s1ap: fix criticality in UE CONTEXT RELEASE PDUs

Change-Id: I6c63b3ecb428b54705aea0c14610c00223651d8f
Related: SYS#7310
Vadim Yanitskiy at
s1gw: add f_TC_exec()

The idea is to reduce the amount of boilerplate code.

Change-Id: I0df4ad15bc2dca2afb2c598c1b053f45b69c181b
Vadim Yanitskiy at
s1gw: add TCs for UE CONTEXT RELEASE procedures

Change-Id: I065692f311e9d03630ab3ca2f6a03465418f0e71
Related: osmo-s1gw.git Ic94489e3d3052221b49431da3a95e5c1eb0e0ba0
Related: SYS#7310
Vadim Yanitskiy at
hnbgw: Use Misc_Helpers.f_shutdown upon rx of unexpected msg

Otherwise the test continues for a while and ends up with a DTE which
makes it harder to figure out the original test failure.

Change-Id: I7f07cff2ce93e8b11338ba4e39e1d49662323f58
Pau Espin Pedrol at
MGCP_Emulation: Make sure peer is running before Tx

This avoid DTE with "Broken pipe" if messages are being transmitted
while tear down process has already started, even if components are
created as "alive".

Change-Id: I8724870b9b967ffa49c3da03e1cdb2941f81653a
Pau Espin Pedrol at
hnbgw: Submit proper L3 PDUs during CR

Generating random PDU values makes hnbgw act on it, since it looks up
higher layers to figure out NRI steering.

Change-Id: I725c35a3584b7d2d162c24ab2b662cfb80e539d7
Related: OS#6717
Pau Espin Pedrol at
Mutex: Create component alive

Change-Id: Ie2980705dd0d2d8ed11a6c13349fb85e6f254748
Pau Espin Pedrol at
RAN_Adapter: Create components alive

HNBGW_Tests.TC_hnb_disconnected_timeout needs modification since it
expects the component to drop the underlaying conn towards the IUT when
the component is stopped. This is not longer the case when the component
is created as "alive". In order to make sure its resources are
destroyed, one needs to kill it.

Change-Id: Ice4d93b42552f1c5d621582b1fc3a38b4e1ae837
Pau Espin Pedrol at
hnbgw: Create all components alive

This makes it easier to figure out errors due to getting rid of DTEs
changing the result output of the test.

Change-Id: If7ef1897adf3ef819314aa094ba78c526d77770f
Pau Espin Pedrol at
pcu: Fix wrong BSN uint size

3GPP TS 44.060 9.1.4.2, BSN is 11 bit long.

Change-Id: Id1ef8b58dc61ab91de2c781a2fd1e8da5eba83a7
Pau Espin Pedrol at
pcu: Fix TC_dl_cs1_to_cs4 sporadic fail

The test TC_dl_cs1_to_cs4 failed sporadically in ttcn3-pcu-test-asan.
Due to how the DL data arriving at Gb is split in chunks over RLC/MAC
(also based on how CS changes over time), it may happen that the full
PDU content doesn't finish at the exact block number where PCU expects
the DL ACK/NACK. As a result, since PCU delays finishing the DL TBF and
some data for that DL TBF has already not been ACKed (and since there's
no more active DL TBFs), it will decide to retransmit some of the
RLC/MAC blocks which haven't been yet ACKed, instead of transmitting
nothing.
This is an optimization to increase the probabilities the MS has
received all the data.
We need to account for this possibility in f_dl_data_exp_cs(), used in
the mentioned test. In there, it needs to be checked whether the
received DL data block is a retransmission, and use that knowledge to
resolve that all data has been transmitted and hence the final condition
can be checked.

Change-Id: I7fb40689547645adf1d54f43c263161be1d7a440
Pau Espin Pedrol at
pcu: Fix dummy DL block received due to timer race conditions

Timer X2002, which manages delay at PCU between sending DL TBF Ass over
CCCH and start transmitting for it over PDCH, is clock-time based.
As a result, timer at PCU process and ttcn3 process may time out
slightly differently. Hence, it can happen that we request a DL block
immediatelly *before* the timer triggers at the PCU. In that scenario,
PCU transmits a dummy block instead of a data block.
Account for this race condition in several tests; some tests already
used this formula.

Change-Id: Ic2bb953483cd1f678cbe32c7a94e177f79ecb4e4
Pau Espin Pedrol at
s1gw: f_ConnHdlr_session_delete(): invalidate peer's SEID

Change-Id: If8027e2bdb5822eb7555cd02a72be900a1f18880
Vadim Yanitskiy at
s1gw: f_ConnHdlr_session_delete(): respect any order

It's not guranteed (nor required) that PFCP Session Deletion Request
PDUs are sent in the same order as their respective ERab records are
organized in the given ERabList.  They can be emitted in any order.

Make f_ConnHdlr_session_delete() more flexible:

* Expect to receive N PFCP Session Deletion Request PDUs;
* For each received PFCP PDU, find the matching E-RAB;
* Make sure that an E-RAB is never released twice;
* Send PFCP Session Deletion Response.

This patch fixes the following TCs:

* TC_ue_ctx_release_req3
* TC_ue_ctx_release_cmd_compl3

Change-Id: I93d3d38829b1f425d18d59464894da239e3511eb
Related: 75cb01b7 ("s1gw: add TCs for UE CONTEXT RELEASE procedures")
Related: SYS#7310
Vadim Yanitskiy at
s1gw: add TC_e_rab_modify_req_rsp[_multi]

Test the E-RAB Modify procedure (MME initiated), which is defined
in 3GPP TS 36.413 section 8.2.2.

Change-Id: I58b9964bae24b5aac526ee0c0c8ac8798f351e05
Related: osmo-s1gw.git I24d57ea390d71b640cb42046a8658e9d30670682
Related: osmo-s1gw.git I057a1c58d0c6ad04c00ad3ea4c68230d8632a07e
Related: SYS#7308
Vadim Yanitskiy at
s1gw: add TC_e_rab_modify_ind_cnf[_multi]

Test the E-RAB Modify procedure (eNB initiated), which is defined
in 3GPP TS 36.413 section 8.2.4.

Change-Id: Iec95ca0ecf37290bddfbefce1861f8ae66bf4db1
Related: osmo-s1gw.git I750ada0a5a21edc8bc06d567c8000b6304966474
Related: osmo-s1gw.git Icc16a57d40b68bd17c5d207b643927d58176e088
Related: SYS#7308
Vadim Yanitskiy at
hnbgw: remove osmo-hnbgw <= 1.6.0 code path

osmo-hnbgw 1.7.0 has been released, so we can remove this code path.

Change-Id: Ie55b752c19aa597afdc47b6e57e8ff0b42313e00
Pau Espin Pedrol at
sgsn: remove osmo-sgsn <= 1.12.0 code path

Now that 1.13.0 has been released, we can run this test in latest too.

Change-Id: I4ead7b05d7d956303584ccbfe1e13692f54341af
Pau Espin Pedrol at
eim: move es9p_Types_JSON to library

The TTCN3 module es9p_Types_JSON is currently only used by the eIM testsuite,
but it may also be helpful in other testsuites in the future.

Related: SYS#7339
Change-Id: If4be10a298e30188aebe7c9d3efbdb56d2816c7f
pmaier@sysmocom.de at
mgw: osmo-mgw.cfg: remove deprecated no-op params

This patch fixes the following warnings:

% Deprecated 'sdp audio-payload number <0-255>' config no longer has any effect
% Deprecated 'sdp audio-payload name NAME' config no longer has any effect
% Deprecated 'loop (0|1)' config no longer has any effect
% Deprecated 'allow-transcoding' config no longer has any effect
% Deprecated 'loop (0|1)' config no longer has any effect
% Deprecated 'allow-transcoding' config no longer has any effect

Change-Id: Ie4f2b46eda2e848781b77e590ad20e80fed86257
laforge at
bts: expect TC_data_{rtp,facch}_tchf144 to pass

Change-Id: I5dfcecc9cb6829ad208a54d7a3092a4cde327fb3
Related: OS#6167
laforge at
stp: Allow setting up different m3ua_config list by test

This is useful, for instance, for tests willing to test dynamic ASPs.

Change-Id: I0a875bac5e9506be9140d5afa28da25bdc99a5a6
Pau Espin Pedrol at
Use fork of titan.ProtocolModules.M3UA containing fix

Use a fork of the repository until the M3UA_NOTIFY decoding bug gets its
fix merged, currently submitted upstream in [1].

[1] https://gitlab.eclipse.org/eclipse/titan/titan.ProtocolModules.M3UA/-/merge_requests/4

Change-Id: I9ac3dcad88cd13c1b45fb70bdcd2a474d084a652
Pau Espin Pedrol at
stp: Pass M3UA conn idx to f_M3UA_rkm_register()

Change-Id: I9295a2c3518f82e8c82625fb573e414b1d634146
Pau Espin Pedrol at
stp: NOTIFY expectancy fixes

Fix expected behavior of STP according to specs (RFC 4666 4.3.4.5),
after osmo-stp got several related fixes in libosmo-sigtran.git
Change-Id I85948ab98623a8a53521eb2d2e84244011b39a93 and Change-Id
I3dffa2e9c554f03c7c721b757ff33a89961665b5.

Change-Id: I3a56b4fcb8c119a31815f3175db2d7899fbfddd7
Pau Espin Pedrol at
stp: Introduce tests TC_dyn_(2)asp_as_rkm_permitted

These tests allows testing behavior of scenarios related to dynamic
ASP/AS/RKM improved/fixed in libosmo-sigtran.git Change-Ids:
I986044944282cea9a13ed59424f2220fee6fe567
I85948ab98623a8a53521eb2d2e84244011b39a93
I3dffa2e9c554f03c7c721b757ff33a89961665b5

Change-Id: Ic3116cbe63832003876ae19b31491275aebb41a9
Pau Espin Pedrol at
stp: Fix expectancies of TC_clnt_quirk_snm_inactive

The test STP_Tests_M3UA.TC_clnt_quirk_snm_inactive validates the
snm_inactive quirk by sending a DAUD before the link being activated,
and expecting a DAVA to make sure osmo-stp did indeed process the SNM
message.
However, osmo-stp used to lack proper route validation based on link
state, which means it would incorrectly assumed the link for the
affected PC (55) in the test was active and hence would answer with a
DAVA. After libosmo-sigtran.git Change-Id
I928fb1ef5db6922f1386a188e3fbf9e70780f25d this wrong behavior is fixed,
and hence osmo-stp starts answering with a DUNA instead of a DAVA, since
AS "as-client" has not yet been activated during the test.
Fix the test expectancies by expecting a DUNA instead of a DAVA.

Change-Id: I907981c1487b299df852c405bae1fefff4bf5191
Depends: libosmo-sigtran.git Change-Id I928fb1ef5db6922f1386a188e3fbf9e70780f25d
Related: SYS#7112
Pau Espin Pedrol at
stp: Fix brokeness in STP_Tests_M3UA.TC_tmt_loadshare

The test was not even setting the traffic-mode in the IUT.
Furthermore, it was expecting pure round-robin behavior, which was the
older behavior of osmo-stp when loadshare traffic-mode was selected.

Actually split the test into 2, naming them properly (since round robin
is not a AS traffic mode in itself, but a possible implementation of the
loadshare traffic-mode.

The new test validates the usual loadshare traffic-mode based on SLS
distribution.

Related: SYS#7112
Depends: libosmo-sigtran.git Change-Id I61340549c596f1c04bc2269dbc165c327bf72037
Change-Id: I16d81cb2f88bb2927f248182ad4f8f27c8c24859
Pau Espin Pedrol at
stp: Fix brokeness in STP_Tests_IPA.TC_tmt_loadshare

Similar to previous commit for M3UA, this time for IPA.
Since in IPA so far the SLS is fixed per ASP, we need to add an extra
sender ASP which will get a new asp_id (and hence SLS) so that we can
also test traffic being sent/distributed to the 2nd receiver.

Change-Id: I61c3efbf8e30533d051e2de506f7c8eaae7e297b
Pau Espin Pedrol at
stp: STP_Tests.ttcn: Use M3UA PC and RCTX from config

Change-Id: I81c8402d5ccd6e59f2a6869927c637fff30cb952
Pau Espin Pedrol at
es9p_Types_JSON: split headers into separate module

The headers used in the JSON binding of ES9+ are also used in ES2+, ES11 and ES12.
Let's split the headers into a separate module, so that we can re-use them in
other definitions too.

Change-Id: I0242c877805003fa67445800960f75ce27752383
Related: SYS#7339
pmaier@sysmocom.de at
RSPDefinitions_Templates: add missing default values

The template parameters of some templates lack a reasonable default.
Let's add default values to those.

Related: SYS#7339
Change-Id: Ia55d17a00462c7c7729eb0d8d24ab0556c4c6918
pmaier@sysmocom.de at
es9p_Types_JSON: add decoder/encoder functions for opposite direction

We currently only have ES9p encoder/decoder functions to emulate an ES9p server,
however, we will need to emulate ES9p clients too

Change-Id: Ic7e3390bd09cc9e0c91ca90ac60cdde5d2ce1384
Related: SYS#7339
pmaier@sysmocom.de at
HTTP_Adapter/cosmetic: remove stray newline

Change-Id: If23ca399071ddb8f9f39797b543d43f6173406f9
pmaier@sysmocom.de at
testenv/README: fix markdown syntax

Put the two wget lines into a code block, otherwise the line break is
omitted and it looks weird.

Change-Id: Ia61d56cdf4822595e2a05b320e387a079bdbfeb2
Oliver Smith at
HTTP_Adapter: allow requests to different hosts

The host that is requested via the HTTP_Adapter is configured once on
initialization. This is fine if the test scenario only has exactly one
destination to query. For multiple destinations, this model does not
work. Let's add an http_pars parameter to the request functions, so
that the user can direct the requests to different hosts dynamically.

Related: SYS#7339
Change-Id: Ic87674f2381b3c6a1be6d0ce28a9e5403cda201b
pmaier@sysmocom.de at
HTTP_Adapter: add missing omit qualifiers

On some function in the HTTP_Adapter module, the (omit)
qualifiers are missing.

Related: SYS#7339
Change-Id: I985021852cbe2bcce60b1466e8ec9c3820a0c0f8
pmaier@sysmocom.de at
testenv: use --autoreconf-in-src-copy by default

Pass --autoreconf-in-src-copy to osmo-dev's gen_makefile.py by default,
so we can always avoid errors related to:

* running "./configure" in-tree and out-of-tree (results in "configure:
  error: source directory already configured; run "make distclean" there
  first")
* running "./configure" / "autoreconf" with different autotools versions
  (on host system and in podman container)

I've kept is as experimental flag at first for better testing, but make
it the default now as it seems to work reliably.

The old make dir is cleaned up when the user runs "./testenv.py clean"
the next time.

Related: osmo-dev I18ac50e3441df81e1fe7d8d5321df7e80ab9c650
Change-Id: I41e1fb534e253ddb43f266d73485b83259a8aa40
Oliver Smith at
deps: Update titan.ProtocolModules.M3UA to upstream master

MR contained in our fork was merged [1], so we can use upstream again.

[1] https://gitlab.eclipse.org/eclipse/titan/titan.ProtocolModules.M3UA/-/merge_requests/4

This patch doesn't contain an update hash because it was merged as
fast-forward so the commit hash now in master HEAD did not change from
the one in our repo fork branch.

Change-Id: Icf411559d3ba5bc699d8a66d7c42e7034392a9e6
Pau Espin Pedrol at
stp: STP_Tests_IPA.TC_tmt_loadshare_sls: Fix test expectancies

Change-Id: I68856e11a92b707eb11ab4813390e6faf3c54b69
Pau Espin Pedrol at
sccp: Improve logging receiving unexpected msg

Change-Id: I90c5236882e96fc038fee0d2f4551cfc58767c78
Pau Espin Pedrol at
sccp: Fix test rx SLS expectancies

The SLS is the same for all messages in conn being sent in one direction, but
doesn't need to be the same value on both directions.
Since the SLS value on the other direction is not selected by the test
itself, we cannot expect a given specifi value.
Update the test expectancies.

This started to fail since recently libosmo-sigtran started properly
setting SLS values, eg libosmo-sigtran.git
7781eb275da41a9b6b1ea5d8b0e802e87a8e9d53 and
0061e8d0bcba3b0ed5ea255588619627d0975380.

Change-Id: Ic288b58629361de9cfadb568a27b51b7e02c9e99
Pau Espin Pedrol at
SCCP_Templates: Expect either proto class0 or class1 upon rx SCCP

Until recently, libosmo-sigtran only sent class0, but it is now able to
send class1 too (0061e8d0bcba3b0ed5ea255588619627d0975380).
Adapt the test expectancies.

Change-Id: Ia1e05b24f1b56404d951eece0e9314d784d375db
Pau Espin Pedrol at
HTTP_Server_Emulation: allow multiple HTTP server ports

At the moment the HTTP_Server_Emulation component can only provide
a single HTTP server. Let's extend it so that it can provide multiple
HTTP server.

Related: SYS#7339
Change-Id: I11df9df5c3041f977b458835e923c74abe3bba7b
laforge at
testenv: -h output: add more binary repo examples

It wasn't clear how to use the nightly asan repository with testenv.
Extend the help output for that.

Change-Id: I5e18059f129423eac3374bd6beff32930a0f7c95
Oliver Smith at
bts: BTS_Tests.cfg: remove commented out params

... most of them are personal stuff.

Change-Id: I892ae9003082da78ba41df55b6fb56ff4aae5526
Vadim Yanitskiy at
bts: BTS_Tests.cfg: set BTS_Tests.mp_transceiver_num

At least for osmo-bts-trx, we are running the testsuite with 4
transceivers.  This is also required for running the hopping config.

Change-Id: I449001f67abe1748f221c1ef9d0212f024f710dd
Vadim Yanitskiy at
bts: Run osmo-bts-trx with sched_rr priority

use a real time prio since it really needs to do stuff in ral time with
high prio. Use lower rt prio than fake_trx since that one is the most
important piece providing clock.

Change-Id: I0251ed3ec0645617cf4e9bcc03e75c805bf1634c
Pau Espin Pedrol at
asterisk: Rework test TC_ims_call_mo_after_tcp_conn_closed with new expectancies

Previous expected behavior (and Asterisk-UE implementation) was wrong.
Since recently, Asterisk behaves better, that is, whenever the TCP conn
is dropped by the peer, it will attempt re-connecting and
re-registering.

Related: SYS#7398
Change-Id: I7ec1e8e30c4d72be96c8e300e0d038e63ba0e600
laforge at
mme: Take into account KSI update by Network

Since recently, open5gs updates the KSI received from the UE in order to
comply better with 4G Core expectancies.

Track assigned KSI in ttcn3 code and update it according to
expectancies.

Depends: open5gs.git 70310979c58fe186e9eaa06bec9d9a31f24ff7a1
Change-Id: Ie97788c5d9996370cd3e24cc0ff7c003adff1a65
Pau Espin Pedrol at
mme: Replace TC_s1ap_setup_wrong_plmn with test with different expectancies

This test was written following previous open5gs behavior, which was
wrong and updated in https://github.com/open5gs/open5gs/issues/3544.

Expect test to trigger a successful S1 setup procedure.
Rename the test to reflect the new expectancies.

Related: OS#6634
Change-Id: I3aba3d642e3bc70f08b6e0713514fb8906da775d
Pau Espin Pedrol at
rmlinks.sh: use -delete instead of -exec rm

Change-Id: Ic2cf9c36159a2bbf1acb59e6b316d1ef30aabe28
Vadim Yanitskiy at
rmlinks.sh: remove non-existent path exclude

Change-Id: I91ae0d3a610f4c9d826bfb1f579204fb0f55e7c8
Vadim Yanitskiy at
remove unused ROHC_CNL113426_LATEST dir

Change-Id: I30a5595ad1d0dfd2d6e4193add9e9e3503210aca
Vadim Yanitskiy at
deps: fix overriding recipe for target 'titan.ProtocolEmulations.SCCP'

This patch fixes the following warnings:

Makefile:188: warning: overriding recipe for target 'titan.ProtocolEmulations.SCCP'
Makefile:185: warning: ignoring old recipe for target 'titan.ProtocolEmulations.SCCP'
Makefile:188: warning: overriding recipe for target 'titan.ProtocolEmulations.SCCP/clean'
Makefile:185: warning: ignoring old recipe for target 'titan.ProtocolEmulations.SCCP/clean'
Makefile:188: warning: overriding recipe for target 'titan.ProtocolEmulations.SCCP/distclean'
Makefile:185: warning: ignoring old recipe for target 'titan.ProtocolEmulations.SCCP/distclean'

The problem is that 'titan.ProtocolEmulations.SCCP' is listed in
both ECLIPSEGITLAB_REPOS and OSMOGITHUB_REPOS.

Change-Id: Ia215f02fc08d66fb56e7e0e452b75d6e2f6c59c5
Fixes: 207ce0370 ("deps: Update titan.ProtocolEmulations.SCCP to upstream master")
Vadim Yanitskiy at
bts: simplify f_tc_rsl_ms_pwr_ctrl()

Change-Id: I67968a0398f9957dc4cc9c7fdffaf2b0ac40b88a
Vadim Yanitskiy at
library: fix coding style near f_rnd_int()

Change-Id: Ic9b97cd1626f35b3483f37fa250eea9dfd35ef51
Vadim Yanitskiy at
library: add f_rnd_sleep()

Change-Id: I97474d0c39052d8a9dd294238530e0b6c31a19e0
Vadim Yanitskiy at
library/s1ap: cosmetic: fix a typo

Change-Id: I50aceea2653c426d1f60542dbb6721b8c75ed3fb
Related: SYS#7288
Vadim Yanitskiy at
library/s1ap: split PDU specific API to S1AP_Functions.ttcn

Change-Id: Id3ba089140093490abd0307addeb5d7287dc5894
Related: SYS#7288
Vadim Yanitskiy at
s1gw: derive altsteps from f_ConnHdlr_rx_s1ap_from_{enb,mme}()

Change-Id: I8637a8abed0f0152abf2dce63ac28aa90f85bdc7
Related: SYS#7288
Vadim Yanitskiy at
s1gw: add UE multiplex component

The UEMux is built upon the ConnHdlr component, allowing to simulate
concurrent activity of multiple virtual UEs.  This new component will
be used in follow-up patches.

Change-Id: I60e6f5d2b9882c27cecd06a2450bda4909c0532a
Related: SYS#7288
Vadim Yanitskiy at
s1gw: add TC_uemux_uldl_nas_release

So far all of our *_multi TCs have been running the test logic in
multiple eNB connections.  This is the first TC simulating activity
of multiple virtual UEs within a single eNB connection.

Change-Id: I8e5db55739241f89592a7d2a81a13e8028e90d1d
Related: SYS#7288
Vadim Yanitskiy at
s1gw: disable Nagle for eNB and MME connections

Change-Id: Id89941659fd2763aad9262b05aa007370424f2c1
Related: SYS#7288
Vadim Yanitskiy at
msc: f_establish_fully(): merge EST_TYPE_MO_{CALL,CSD}

There's nothing special about CSD at the stage of MM connection
establishment, it looks like a normal call at this point.

Change-Id: I732b58ed43bc0d76fb78a6a41e19261658d8f755
Vadim Yanitskiy at
msc: use f_expect_paging() in SS/USSD TCs

Change-Id: Ia75420c738ef412af6ae602566fab7c997b48335
Vadim Yanitskiy at
msc: split up as_unexp_gsup_or_bssap_msg()

Make use of derived as_unexp_{gsup,bssap}_msg() altsteps.
Take a chance to improve them by printing unexpected PDUs.

Change-Id: Ie6c349bdae289d19614809545e23c2b7bf88f8ed
Vadim Yanitskiy at
msc: add TC_gsup_mt_sms_{paging,conn}_timeout

Change-Id: Ief16753783e044911f1e3cef8d7012810d709e61
Related: SYS#7323
Vadim Yanitskiy at
s1gw: ConnHdlr: allow passing {MME,ENB}-UE-S1AP-ID

This is needed for follow-up UEMux testcases, in which we spawn
multiple virtual UEs with unique {MME,ENB}-UE-S1AP-IDs.

Change-Id: Ife37c77cff348cdfbde191dbad6da816e68ca941
Related: SYS#7288
Vadim Yanitskiy at
s1gw: add UEMux TCs for E-RAB SETUP and RELEASE

Change-Id: Ia4583f82a768ca3d185aad596ce8ec9bbd37ad32
Related: SYS#7288
Vadim Yanitskiy at
s1gw: add UEMux TCs for INITIAL CTX SETUP and UE CTX RELEASE

Change-Id: I811904e50dd6f0a05b0bb6babebe5b4690e2d3ec
Related: SYS#7288
Vadim Yanitskiy at
s1gw: fix passing swapped {MME,ENB}_UE_S1AP_ID

This commit fixes a regression introduced in 64db5053
and makes the following TCs green again:

* TC_e_rab_modify_ind_cnf[_multi]
* TC_e_rab_modify_req_rsp[_multi]

Change-Id: I9b19a82234f547a9e44c9c034492ee4b21892818
Fixes: 64db5053 ("s1gw: ConnHdlr: allow passing {MME,ENB}-UE-S1AP-ID")
Vadim Yanitskiy at
remsim: make client tests work in testenv

* Prevent osmo-remsim-client-shell from closing immediately with "STDIN
  was closed, terminating".

* Fix REMSIM_Tests.cfg:
  * move mp_ to proper section
  * proper IP

Change-Id: I91b08b9bfde11f4600993b18ece1e810b61ed904
Oliver Smith at
testenv: fix building osmo-remsim with osmo-dev

Use --disable-remsim-client-ifdhandler as configure argument for
osmo-remsim. We don't need this for running tests and this prevents the
buildsystem from trying to write to /usr/lib/pcsc/drivers/ which fails
the build.

Change-Id: I3b00e5301433476bd19de3814943878f918c1fa0
Oliver Smith at
Cosmetic: testenv/testdir: fix formatting

This wasn't caught by previous ruff versions, fix it.

Change-Id: Ib770ee2e14811777efdb2c5867b29ba379abde7c
Oliver Smith at
stp: TC_tmt_loadshare*: Use new vty command 'binding-table reset'

Reset the eSLS binding table state before starting the test, to run it
with a clean state.

This test also fixes TC_unknown_client_dynamic_tmt_loadshare since it
now resets the table after connecting the 2nd dynamic ASP, which allows
re-distributing all seeds in the table into the new available set of
ASPs.

Depends: libosmo-sigtran.git Change-Id I56c34072a9ded42c13dbfc105a0ab3353ca353ec
Change-Id: I40b7724edcc06a3df641e316be4770d0e56bb72d
Pau Espin Pedrol at
testenv: fix OSMO_DEV_MAKE_DIR env var

When --autoreconf-in-src-copy was made the default, the make dir name
has been changed to make2 but this variable was not adjusted. Fix it.

Fixes: dacbca96 ("testenv: use --autoreconf-in-src-copy by default")
Change-Id: Ia46ebe1240806995960545afbb34e6533580f209
Oliver Smith at
sccp: testenv: fix hardcoded sccp_demo_user path

The current path only worked for with podman and with osmo-dev. Make it
work for the following use cases too:

* without podman, with osmo-dev
* with podman, with binary packages (instead of osmo-dev)

Removing package=no is required, so testenv builds sccp_demo_user from
source when running with --binary-packages. This is needed as
sccp_demo_user is not packaged (OS#5899).

Change-Id: Id6e0b669dcb71cab9e789fe011e60827a8e07f77
Oliver Smith at
sccp: testenv: fix run with asan + latest binaries

When running against osmocom:nightly:asan, build sccp_demo_user with
--enable-sanitize. Otherwise this code is not running with asan and
doesn't even start (as the libraries we link against are built with
--enable-sanitize).

When running against osmocom:latest, check out the latest tag instead of
current master.

Fixes: OS#5899
Change-Id: I5307125560694feae9f0978ebd27607a77ed8675
Oliver Smith at
testenv: remove TESTENV_GIT_DIR

This variable is not used anymore, remove it.

Change-Id: Iabb9fa3b9b393b2cb7f18fb877746e5d1e510e63
Oliver Smith at
msc: add/expect network-originated MT-Forward-SM.Err

The idea is to have two variants of the MT-Forward-SM.Err:

* _MS: originated by the MS/UE (via RP-ERROR),
* _NET: originated by the network (MSC) itself.

In both testcase scenarios we expect the network to indicate the
MT_FORWARD_SM_ERROR on its own, due to the lack of response from MS/UE.
Use the right template kind for that, expect a specific Cause value.

Change-Id: Ic27d943645fdff8d34f958e3bf16c8ee6e8368d2
Related: osmo-msc.git I51d92752471147e6d21a5059bebb0702b32642a5
Related: e9de1515 ("msc: add TC_gsup_mt_sms_{paging,conn}_timeout")
Related: SYS#7323
Vadim Yanitskiy at
msc: execute more SMS-over-GSUP tests via UTRAN

Change-Id: Ia3c044ad04561a4ee6dbb4a3fe59fedd3ac79bba
Related: 1cd11a05a ("MSC_Tests.ttcn: introduce TC_gsup_mt_multi_part_sms")
Related: 8d0d7af27 ("msc: add TC_gsup_mt_sms_lu_delay for X36 (LU delay) timer")
Related: e9de1515d ("msc: add TC_gsup_mt_sms_{paging,conn}_timeout")
Vadim Yanitskiy at
testenv: make clone project function generic

Prepare to use the same code for cloning libosmocore in order to build
osmo-ns-dummy in a follow-up patch, which isn't in the binary packages
either.

Change-Id: Id19ed229545b22751c810b647e9be24f955f348d
Oliver Smith at
testenv: clone_project: fix getting latest version

Extend the logic for getting the last version, so it doesn't only work
with libosmo-sigtran (where the last version happens to be the last one
returned by "git ls-remote --tags") but also for libosmocore where this
isn't the case. Filter the versions by the relevant ones and then sort
them to get the highest one.

Change-Id: Ic15e385b9c8bab5c0dc70276049d6ad5ae927a6a
Oliver Smith at
ns: initial testenv config

Change-Id: I7b0d81db49dae0a3bb3d4c3b36fd3f8b4b590760
Oliver Smith at
hnbgw: Support configuring RAC on each hnb conn

Change-Id: Ie6a731d641ca963f71537e09fda8c894730bee84
Pau Espin Pedrol at
hnbgw: Test paging with PAge Area ID IE

Change-Id: I313aadae08f187b413e894a93faa29ce771ef7fe
Pau Espin Pedrol at
stp: Fix typo in comment

Change-Id: I9f4a1e5ec0b0d2614b3cec0768e8847fce3e3cdf
Pau Espin Pedrol at
testenv: clean: fix cleaning git dir

Don't try to build a PATH that contains the testsuite dir if running the
"clean" action, because then no testsuite is defined.

Fix for:
  $ ./testenv.py clean
  [testenv] + ['rm', '-rf', '/home/user/.cache/osmo-ttcn3-testenv/git']
  Traceback (most recent call last):
    File "/home/user/code/osmo-dev/src/osmo-ttcn3-hacks/./testenv.py", line 137, in <module>
      main()
    File "/home/user/code/osmo-dev/src/osmo-ttcn3-hacks/./testenv.py", line 133, in main
      clean()
    File "/home/user/code/osmo-dev/src/osmo-ttcn3-hacks/./testenv.py", line 117, in clean
      testenv.cmd.run(["rm", "-rf", path])
    File "/home/user/code/osmo-dev/src/osmo-ttcn3-hacks/_testenv/testenv/cmd.py", line 106, in run
      env=generate_env(env),
          ^^^^^^^^^^^^^^^^^
    File "/home/user/code/osmo-dev/src/osmo-ttcn3-hacks/_testenv/testenv/cmd.py", line 72, in generate_env
      path += f":{os.path.join(testenv.testsuite.ttcn3_hacks_dir, testenv.args.testsuite)}"
                                                                  ^^^^^^^^^^^^^^^^^^^^^^
  AttributeError: 'Namespace' object has no attribute 'testsuite'

Change-Id: I65da89581260fc60b3d8da0a93ee04c0c22c7f2c
Oliver Smith at
Revert "hnbgw: Test paging with PAge Area ID IE"

This reverts commit b0e3627eaa2665a03eb2301b099da6bceb4e4d4a: caused
regression in several other tests.

Related: OS#6762
Change-Id: I416d514e739cc0b16832192bfdb746a4ed09336f
Oliver Smith at
Revert "hnbgw: Support configuring RAC on each hnb conn"

This reverts commit 4e4398aac6d19fe16c40be88290e0da08588fd2d: caused
regression in several other tests.

Related: OS#6762
Change-Id: I077c584219bfa54468bd796a1fc2e85fd60b7a02
Oliver Smith at
msc: add TC_mo_ussd_evil_ms for OS#6756

This is an "evil MS" scenario that crashes current osmo-msc.

Change-Id: If1d85a1b4b63b01b4565e53677acfd21e664e799
Related: osmo-msc.git I724f0f0c9ef8611d3c3653e9370361b252127f72
Related: OS#6756
Vadim Yanitskiy at
buildsystem: move related scripts to subdir

Clean up the main directory by moving all buildsystem related scripts
into a _buildsystem subdirectory.

Rename gen_links.sh.inc to gen_links.inc.sh while at it, so vim does
syntax highlighting as shell script and not bitbake.

The rest of these patches in this series lead up to changing the
buildsystem to build out-of-tree (so we don't clutter the source dirs
with symlinks and build artifacts) and making the build output more
readable.

Related: OS#6599
Change-Id: Ieeefdfd74b2698794fb12fec4ed32565dc9f36a6
Oliver Smith at
buildsystem/regen_makefile: change to inc script

Make the regen_makefile script more consistent with gen_links.inc.sh by
also turning it into an include script. By doing this all previously
declared variables are available in regen_makefile, which means export
and passing as arguments is not needed anymore, making the resulting
users simpler.

Use #!/bin/sh -e while at it and remove empty CPPFLAGS_TTCN3 vars.

Change-Id: I10a41671e857024be6a5e8577c2aaca83228793e
Oliver Smith at
buildsystem: remove ttcn3_compiler workaround

The related debian bug has been fixed in 2018, so remove the workaround.
I've also verified that the binary is called "compiler" in Arch Linux
(as some developers are on Arch).

Change-Id: Ia50aa3caffeaa85eefba10695096aa23dcb69c93
Oliver Smith at
buildsystem/regen_makefile: modernize

Apply various small changes to make this file more readable.

Change-Id: I5a7dcd6171c6a370928ebedafc5ed318384dd8dd
Oliver Smith at
buildsystem/gen_links: move set -e to users

Make it more obvious that the various gen_links.sh scripts are running
with "set -e" by adding it to the #! line instead of setting it through
an included file.

Change-Id: I4caf445bef716161526a213d6a06ecc9d30f78cb
Oliver Smith at
buildsystem/gen_links: rename ignore_pp_results

Rename ignore_pp_results to gen_links_finish in preparation for the next
patch where the function will be used for generating more symlinks
instead of writing to a gitignore file. This is a separate commit to
make the next one more readable.

Change-Id: I6a1a79f1a3ff18fe4b51e4c72c3e9b56c571935e
Oliver Smith at
buildsystem: build out-of-tree

The buildsystem used to create symlinks to dependency source files in
the testsuite directories, and then building inside that source
directory. This lead to many unrelated files being in the source
directory.

Change the logic to create symlinks to all sources in a separate
$BUILDDIR instead (default: _build) and do the build there.

Advantages:
* Source directories are not cluttered with other files anymore.
* Clean up logic becomes much simpler and faster (rm -rf _build instead
  of generating a Makefile and running "make clean" in every testsuite
  directory).
* No need to generate gitignore files on the fly anymore.
* Using a separate $BUILDDIR is now possible, this will be used by
  testenv in a follow-up patch when running with podman, to make sure
  that build artifacts from podman and not using podman are not mixed as
  they are incompatible.

Related: OS#6599
Change-Id: If18aaf2a2a0d55bb617e5cb1b73f6ee4b1952494
Oliver Smith at
buildsystem: make output more readable

Generate short and readable compile messages:

  CC       IPL4asp_PT.o
  CCLD     TCCInterface.so
  CCLD     TELNETasp_PT.so
  CCLD     MGCP_Test

Instead of the very verbose messages we would get otherwise. Especially
the linking message clutters a whole page of terminal output without
this path:

   if ... g++ ... $ALL_OBJ_FILES; then : ; else ... $ALL_OBJ_FILES; fi

Change-Id: I780106e64089dc24a7ba724f6a94e67417d49c30
Oliver Smith at
testenv: remove copy_ttcn3_hacks_dir

When running with podman, set a separate builddir to avoid conflicts
with build objects generated from running "make" outside of podman. As
the buildsystem supports setting a differerent builddir directly now,
remove the copy_ttcn3_hacks_dir logic that was used to emulate this
feature.

Change-Id: I9cae0c4f8c34bb6876ef51048ef19b35a2e369a9
Oliver Smith at
testenv: refactor run --until-nok code

Refactor the code in preparation for using the code that checks if the
testsuite was successful with a new --bisect arg in the next patch.

Change-Id: I3a8fc83c6833f0d2a8be9c0d7ddaea0546859988
Oliver Smith at
testenv: run: add --bisect argument

Add an argument that lets testenv.py exit with != 0 when at least one
test has failed, so it can be used with "git bisect".

Change-Id: I941064c1c704560e0f7351c82e810481cd72b6da
Oliver Smith at
start-testsuite: fix passing $TEST to ttcn3_start

Fix that testenv / ttcn3_start kept running after the testsuites were
already done. This was caused by passing an empty string to ttcn3_start
as test argument, which causes it to still use the config file, but run
in a single test mode:

https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/9.0.0/mctr2/mctr/ttcn3_start#L307-319

After the first test ran, ttcn3_start sends "emtc" to the MTC, which
replies with "MTC cannot be terminated." as it is still in
MC_EXECUTING_TESTCASE instead of MC_READY:

https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/9.0.0/mctr2/cli/Cli.cc#L695-700

The ttcn3_start script then waits forever for the "MTC terminated.."
string, which doesn't come since "emtc" isn't sent to the MTC a second
time:

https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/9.0.0/mctr2/mctr/ttcn3_start#L353-356

Fixes: 050ba48c ("buildsystem: build out-of-tree")
Change-Id: Ic50de8350e20d101417c5689058b64fe6547126f
Oliver Smith at
README: use # and ## for headlines

Prepare README to be able to use deeper headline levels.

Change-Id: Ice2baaf3ffdd1c11238c7791ab39925bed10818d
Oliver Smith at
start-testsuite: respect $TTCN3_DIR (if set)

Change-Id: I5c1cdc6ffbe50cf7ee48a160d2f406e428326d14
Vadim Yanitskiy at
Move f_{dec,enc}_mcc_mnc() API BSSMAP_Templates.ttcn -> GSM_Types.ttcn

The GsmMcc and GsmMnc types used in the function are defined in
GSM_Types.ttcn, which is also incldued by BSSMAP_Templates.
Hence, move the function there so that it can be used in other
testsuites including more generic GSM_Types.ttcn but not
BSSMAP_Templates.ttcn.

Change-Id: Iafafd2957a11d34a9402d252a169fec40593f483
Pau Espin Pedrol at
Fix MNC decoding in f_dec_mcc_mnc()

This API is so far only used in MSC_Tests.ttcn f_sgs_perform_lu(), but
will be used in more testsuites in follow-up commits.

Change-Id: I9db37d0dc9abbbefd57af4f0e2b91bf8a918d4e9
Pau Espin Pedrol at
hnbgw: Support configuring RAC and Cell ID on each hnb conn

Change-Id: I490e770be5e390a1f55e1dff1cf0c42e917a8d33
Pau Espin Pedrol at
hnbgw: Test paging with Page Area ID IE

Change-Id: I5a053bcf1f8470038e95d03889da077f8f967bfa
Pau Espin Pedrol at
README: explain how to run testsuites manually

As the testsuites are now in the _build directory, running them might
not be as obvious. Add an example to the README. While at it, explain a
bit more what the testenv script does and where one can read more about
it.

Change-Id: I1ee9319ada889a8dd43cfb32776dc1a8ae12d607
Oliver Smith at
start-testsuite: remove workaround for TITAN < 9.0.0

We're using the 9.0.0 nowadays, which does not need this workaround.

Change-Id: I57eecd6e0ea9e488a2110b029ddc313bd05cd1fa
Vadim Yanitskiy at
testenv: support fetching coredumps in jenkins

The Osmocom jenkins nodes run inside LXCs. When we get a coredump it
appears on the host, fetch it from there via testenv-coredump-helper,
which gets added to the hosts in the related patch.

Related: osmo-ci I7e66c98106b7028a393e3b873e96ae2dcb412c48
Related: OS#6769
Change-Id: I3784b4cbcef08b26f77b6f6f7a70a830d9c81a18
Oliver Smith at
bts: set osmo-bts sched priority to 30

Change the scheduling priority from 10 to 30, as we are currently see
osmo-bts suffering from scheduling latency in jenkins even though we
don't run other jobs at that time:

  20250425034138405 DL1C ERROR PC clock skew: elapsed_us=387574, error_us=382959 (scheduler_trx.c:449)

This should fix that the kernel prioritizes other (userspace or kernel)
processes running on the same machine that have a higher priority. We
have seen such an improvement after increasing scheduler priority for
osmo-bts-sysmo too (see I2394e6bbc00a1d47987dbe7b70f4b5cbedf69b10).

Priority 30 is higher than 10. From sched(7):

> Processes scheduled under one of the real-time policies (SCHED_FIFO,
> SCHED_RR) have a sched_priority value in the range 1 (low) to 99 (high).

This testsuite currently gets executed through docker-playground and it
fetches this config from osmo-ttcn3-hacks (see
If15461240f3037c142c176fc7da745a1701ae3f8).

Related: osmo-ci I0162f7299c8e37f893ffa10ddc4c8edece29ed7f
Change-Id: I828422e2363a58ca8c19d0f1b8a1b7d4e4bc031e
Oliver Smith at
tcpdump/dumpcap: move kill_rm_pidfile to inc file

Move kill_rm_pidfile out of the 4 ttcn3 tcpdump/dumpcap scripts into a
shared include file. Use the version of the function that only tries to
kill the command with sudo if it was started with sudo.

This fixes dumpcap not stopping if:

* it was started with ttcn3-tcpdump-start.sh (despite the name it will
  start dumpcap instead of tcpdump if dumpcap was found), where it gets
  started without sudo, and

* no rule is set in the user's sudoers file to run kill as root with
  NOPASSWD.

Change-Id: Ia63c37b54fb42a8c64a676334cef6f9df4152e18
Oliver Smith at
Common.cfg: Logging: add %p to LogFile format

Add the process ID at the end of the log file that ttnc3 writes, to
avoid potential conflicts:

> Otherwise if you have eg TC_foobar in STP_Tests_M3UA and
> STP_Tests_IPA, you may end up rewriting one of them since both would be
> written with the same file name.

%e is the name of the TTCN-3 executable, e.g. STP_Tests even if the test
case is in STP_Tests_M3UA. It is not possible to get STP_Tests_M3UA into
the file name with any of the meta characters, I've tried it out.

Related: https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/9.0.0/usrguide/referenceguide/7-the_run-time_configuration_file.adoc#L632-666
Change-Id: I0a2a376cd11784addff8ca228e3cc3e831b418a2
Oliver Smith at
Cosmetic: log_merge: modernize

Move license and copyright up and use an SPDX license identifier.

Change-Id: Iedd4f575edeaf47852f073d04d8cd8ffd92920dc
Oliver Smith at
log_merge: ensure we don't overwrite the log file

Add a safety check that ensures we don't overwrite an existing log file
by accident.

Change-Id: Ieda3d95c60dfae208959b80d55a1e8c3925a9dad
Oliver Smith at
log_merge: use same prefix as for pcap files

In some testsuites we have tests in ttcn3 files other than the main
testsuite executable. In that case we save the pcap files with the name
of the ttcn3 file with the test, but before this patch the merged log
file has the name of the main testsuite. This is inconsistent and may
lead to a conflict if a test exists in multiple ttcn3 files.

Fix this by getting the same prefix as we use for the pcap from the
logfile itself. Fall back to using the same prefix as without this patch
in case we can't parse the log line.

Fixes: OS#6787
Change-Id: Id2937d711a54a34c0d87d080199b4c3d5a5d6e06
Oliver Smith at
M3UA_Templates: Allow passing multiple Routing Context values

Change-Id: I117c63786d71aea683b554cf294fee0ceed665e0
Pau Espin Pedrol at
stp: Update TC_rkm_unreg_active to expect multiple routing contexts

That test is registering a new routcing context (AS) into an
existing/pre-configured ASP.
As a result, the ASP serves 2 AS. When we receive notifications on that
ASP then we'll be receiving info on 2 routing contexts, one for the
pre-confgiured AS and one for the dynamically registered one.

Depends: libosmo-sigtran.git I646301ec3d08ef98f227cf4d19da1039e40cedd2
Change-Id: I2dc4d197e6de38781b63e3079ada4c4b4a0db31d
Pau Espin Pedrol at
stp: Store asp name in array of m3ua cfgs

This way we keep STP specific config in one place instead of having to
figure out the ASP name on each test where we want to modify that ASP.

Change-Id: I1d5d9113dc95a8da911a7a99260c9bfe6e9de7c9
Pau Espin Pedrol at
stp: Introduce test TC_clnt_sctp_adm_shutdown

Related: OS#6752
Change-Id: I8b1c8b633afc1515dedfccd43e642401896b167e
Pau Espin Pedrol at
stp: Introduce test TC_m3ua_sctp_srv_adm_shutdown

Related: OS#6752
Change-Id: Iad34af7e7758fbd3a0d686a261ccce53bc705817
Pau Espin Pedrol at
hnbgw: HNBGW_Tests.default: Drop unused LLSK config

That's only used in osmo-hnodeb, and it's probably a leftover when
copy-pasting from hnodeb directory to create the hnbgw testsuite.

Change-Id: Ic04ded35f64b5dac0c5f36ebdf066d751013c438
Pau Espin Pedrol at
hnbgw: Add missing plmn config in osmo-hnbgw.cfg

Change-Id: Ie360247b7be9cf5ac4feeab2a8957131896f7721
Pau Espin Pedrol at
hnbgw: Configure local ASP/AS in osmo-hnbgw.cfg

This allows us using known port for the SCTP assoc, which can then be
used to look up ASP in osmo-stp VTY.

Change-Id: Ic04702b597f7217890ee58734c11b866fb14af8b
Pau Espin Pedrol at
hnbgw: Introduce test TC_{cs,ps}_rua_dt_during_sccp_wait_cc

Related: SYS#7453
Change-Id: I97767db5560edf951202c876726d0c52b5b5b49f
Pau Espin Pedrol at
gbproxy/testenv: initial

Change-Id: I75265eb0765da85bffd76f8d64d278ed008d9b47
Oliver Smith at
gbproxy: sync configs with docker-playground

Change-Id: Ibef7e870c5c90d1cc861c89904950b1ac68dc9b2
Oliver Smith at
hnbgw: Introduce altstep as_pfcp_handle_del_req()

Change-Id: I94101b5f0ad8634db68f0a9d5230c00926b02061
Pau Espin Pedrol at
hnbgw: Introduce tests TC_ps_rab_release(_abnormal)

Same as their existing CS counterparts TC_rab_release(_abnormal).

Related: SYS#7451
Change-Id: Ia25efc2d6bf01d4a13e7fd1ce0563d20dd2e321e
Pau Espin Pedrol at
testenv: podman_install: show checked out commits

When running with --podman --binary-repo and a testsuite needs a
component for which we don't have a binary package (such as
sccp_demo_user), we need to clone the source and build it.

Show the commit from which we are building / have already built the
component.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I2837a41c919a9f7ef8c315ce5aa48fb4fe3f9a85
Oliver Smith at
testenv: podman_install: tweak git commands

* Do not run them in podman: git is required to run testenv, by not
  running it through podman the command in the log is shorter.
* Set advice.detachedHead=false for the git clone to avoid printing the
  "You are in 'detached HEAD' state. You can look around ..." text block
  that isn't useful in this context.

Change-Id: I2ee26764d1471e54eff748e11ec2cce6fb662667
Oliver Smith at
testenv: no python trace for setup script failures

Do not print a python trace when a setup script fails, usually it is
unrelated and just clutters the output.

Change-Id: Icbec52befa268547906fdbe9b52bdbc9e94722e6
Oliver Smith at
testenv: podman: add erlang-dev

Add the full erlang-dev package to the podman container, so we can build
osmo-epdg from source. Without this it fails with ei.h missing.

Change-Id: I4ca9d1823037889315f50de629e5581964cda079
Oliver Smith at
testenv: podman: add missing tree command

The tree command is used by the testenv scripts when building QEMU
initrds to quickly show the contents of the initrd before packing it.

Fix for:
  + tree -a /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1151-745e3562-dxt_lu1f/ggsn/_initrd
  osmo-ggsn/run.sh: 140: tree: not found

That the build initramfs logic did not abort here is another bug that
gets fixed in a follow-up patch in this series.

Change-Id: I75fcd210db9e5c9364cb98ee09ebf754790aa55f
Oliver Smith at
testenv: qemu: fix adding kernel modules

Without this patch qemu_initrd_add_file fails to add kernel modules
with "No such file or directory" when running in podman, even though the
files exist:

  ./testenv.py run ggsn -Dp -c osmo_ggsn_v4_only
  …
  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/net_failover.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1146-cd82caba-wegi5i98/ggsn/_initrd/usr
  cp: 'lib/modules/6.1.0-34-amd64/kernel/drivers/net': No such file or directory
  …

When looking at it with strace it became clear that this comes from a
getxattr that fails in the podman filesystem and returns a misleading
error:

  getxattr("lib/modules/6.1.0-34-amd64/kernel/drivers/net", "system.posix_acl_access", 0x7ffc012054e0, 132) = -1 ENOENT (No such file or directory)

Fix it by modifying the cp command to not try to preserve any attributes
(they don't matter in the initramfs).

Change-Id: Ic32318da169ee8ebf867937782be5cf8a15f9f2f
Oliver Smith at
testenv: fix not aborting on build_initrd error

Without this patch the build_initrd function keeps going on errors:

  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/net_failover.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1040-a21668df-euc9e2fs/ggsn/_initrd/usr
  cp: 'lib/modules/6.1.0-34-amd64/kernel/drivers/net': No such file or directory
  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/virtio_net.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1040-a21668df-euc9e2fs/ggsn/_initrd/usr
  …

The reason for that is that even though the script runs with set -e, the
-e flag gets ignored between if…then where the build_initrd shell
function gets called:

  if ! build_initrd >build_initrd.log 2>&1; then
  qemu_initrd_exit_error "build_initrd.log"
  fi

Fix it by using a trap instead.

Related: https://unix.stackexchange.com/a/65564
Change-Id: I2870b7e7ba28b2afc72e86b7a3bc389103564c80
Oliver Smith at
testenv: qemu: initrd build fail: stop immediately

Let qemu_wait.sh fail immediately when building the initrd has failed,
instead of waiting until it runs into a timeout.

Change-Id: I6de4d1c31385af52ee0fd55378adb10a9e2c2154
Oliver Smith at
testenv: qemu: add modules.alias

Fix loading the sctp module, which is needed to run osmo-epdg in QEMU:
  modprobe: can't load module libcrc32c (kernel/lib/libcrc32c.ko): unknown symbol in module, or unknown parameter

Change-Id: I475176734b994e7abda63badda0983ab6534b682
Oliver Smith at
testenv: support qemu=required in testenv.cfg

Make it possible to set qemu=required in addition to the existing
possibility of qemu=optional in the testenv configs and verify that
either the debian kernel (from the podman container) or a custom kernel
gets used for such configs.

This is in preparation for adding a testenv config for osmo-epdg, which
uses kernel-gtp and unlike osmo-ggsn doesn't have userspace fallback
code. With testenv using the hosts gtp kernel device for this is not
supported (it would have several downsides anyway, such as not being in
control what exact kernel version is used leading to different test
outcomes for different users, not being easily able to compare different
kernel versions, having a harder time getting debug logs from the module
etc.).

Change-Id: If4abdf1f9248fee0915603a9b3c6e3e5e5083057
Oliver Smith at
testenv: qemu_initrd_add_bin: support adding so

Erlang has its own library loading mechanism, so we need to explicitly
add the depending libraries to the initramfs instead of just pointing at
binaries.

Change-Id: I1b9f06e7bff22b9260fbe0bd765177a25e97b557
Oliver Smith at
testenv: cfg: check for multiple spaces in lists

Pau ran into an unexpected bug while having entries in copy= separated
by multiple spaces ("copy=osmo-stp.cfg  osmo-stp-m3ua.confmerge"):

  [testenv][m3ua] + ['cp', '-a', 'osmo-stp.cfg', '', 'osmo-stp-m3ua.confmerge', '/tmp/testenv-stp-m3ua-20250516-1349-e4103924-bfvi_syt/stp']
  cp: cannot stat '': No such file or directory

Catch this early and print a more useful error:

  [testenv] /home/user/code/osmo-dev/src/osmo-ttcn3-hacks/stp/testenv.cfg: copy= in section [stp] has multiple spaces:
  [testenv]   "osmo-stp.cfg  osmo-stp-m3ua.confmerge"
  [testenv] Please separate elements with only one space.

Change-Id: Ie47cf5482ba479457a662759ce87611a7c41e29c
Oliver Smith at
stp: Rename STP_Tests.ttcn -> STP_Tests_IPA_M3UA.ttcn

The previous name usually causes confusion since it seems to indicate
either:
* Some sort of common placeholder for STP_Tests_IPA and STP_Tests_M3UA
  (it's not the case, we already have STP_Tests_Common.ttcn for that)
* A placeholder for tests not IPA or M3UA related (it's not the case,
  since it only contains IPA<->M3UA tests).

Hence, rename it to denote better the aim of that file, ie. testing
forwarding between IPA and M3UA AS(P)s.

Change-Id: Id2963407adf11add01630c3899a062d764c8ad75
Pau Espin Pedrol at
stp: STP_Tests_IPA: Support configuring less than 8 AS(P)s

This is a preparation patch towards splitting testsuite into smaller
configurations.

Change-Id: I820d295cd22fe824abf0f60bf6f1f0f3fd069d85
Pau Espin Pedrol at
epdg: add sleep to f_TC_hss_initiated_deregister_permanent_termination

The test sends PERMANENT_TERMINATION twice to osmo-epdg. If we don't
sleep between them, osmo-epdg is not able to terminate related FSMs
quickly enough between the first and the second termination request when
running in QEMU, which results in osmo-epdg answering with
DIAMETER_SUCESS instead of DIAMETER_ERROR_USER_UNKNOWN for the second
f_DIA_SWx_RT.

Related: OS#6796
Change-Id: I5d7021b6a9800cf1d7588f4a0ef864f5c30cf475
Oliver Smith at
epdg: TC_concurrent_ues_MTC: rx CMD_ATTACHED without from vc_conn_list[i]

This is needed to make the test pass in QEMU. I think this makes it
accept the COORD_CMD_ATTACHED in any order instead of the order the
COORD_CMD_START were sent beforehand.

Increasing the sleep between the COORD_CMD_START also makes the test
pass in QEMU, but that increases the overall test time significantly in
TC_concurrent_ues100.

Change-Id: I4c76d12273a14df562ea906e6c8ddb348d1b0eda
Oliver Smith at
epdg: initial testenv.cfg

With this config, all tests are passing.

Depends: osmo-ci Ia60d5c1f5ade31e37293b40340e789f04ea86287
Change-Id: Ide2873be7830cc43e7fa09f26b2d504d0563a3c2
Oliver Smith at
testenv: check eclipse-titan version

The osmocom:latest repository currently has eclipse-titan 9.0.0 and we
assume that the user has at least this version installed. Add a check to
avoid subtle unexpected errors caused by using older versions.

Related: I57eecd6e0ea9e488a2110b029ddc313bd05cd1fa
Change-Id: Icace325f492ce803d6f25a30b128ee0676e16727
Oliver Smith at
stp: Initial split into several testenv config

As a first step, split the generic config into 3 configs, one per
module.

The idea is to have a different config for a given set of related tests
running on a specific network topology/setup.

This helps in simplifying the test conditions, which allows easily
adding new topologies to test, validate specific scenarios or debug
existing ones.

For instance, to test Combined linkset loadsharing, we'll need to set up
some sort of scenario where we have at least 2 AS with each at least 1
ASP.

Change-Id: I4ec8e1bbc8e71d8bd421dfbd5356bf1937ce2bb4
Pau Espin Pedrol at
stp: Split M3UA TCP tests into its own testenv config

That group of tests explicitly tests operation of m3ua-tcp AS(P)s and
interaction with m3ua(-sctp) ones.
Hence, create a new config to test those, where we keep the TCP related
configuration in osmo-stp.

Change-Id: I8123887755aa3253830b43407b4cc6b21142233c
Pau Espin Pedrol at
stp: m3ua: Specify ASP names to use per test

Since we recently introduced an "asp_name" into each m3ua_config,
use that to construct a list of m3ua_configs to set up for each test.

This makes each test only set up the relevant ASPs for the test easily,
plus the big win of port offsets becoming test-specific.

That means changing the order or clients or servers in the testsuite
config, or adding new ones won't break existing tests.

Also add a new "is_server" field which allows specifying clients and
servers in whichever order we like.

Change-Id: I63ed043014ee8a9a593ed17797b621f39c746bcd
Pau Espin Pedrol at
stp: ipa: Specify ASP names to use per test

Similar to what was done for M3UA ASPs in previous commit.

Change-Id: Ifce2a3964d4caf0850691515e516cee93dbe8d44
Pau Espin Pedrol at
library: NGAP encoding/decoding using libfftranscode

This allows us to encode/decode 3GPP NGAP messages, as used on the
N2/NG-C interface control plane between gNB and AMF.

asn files fetched from https://forge.etsi.org/rep/int/5g-core/ngap.git
directory ttcn/LibNGAP/lib/asn1, commit
fa43d01e202379a969e991a9454d9c6c6930b5b5.

Change-Id: Ia8e29c77e09a4388c774e3d7286f96052d67fe3f
Pau Espin Pedrol at
library: Add NGAP_Templates.ttcn

files fetched from https://forge.etsi.org/rep/int/5g-core/ngap.git
directory ttcn/LibNGAP/lib/LibNGAP_*.ttcn, commit
fa43d01e202379a969e991a9454d9c6c6930b5b5.

Change-Id: I52aed2961329ee904de82b4fdb91e3eaca2059c9
Pau Espin Pedrol at
ngap: NGAP_Pixits: fix modulepar without default value assigned to template

Otherwise titan errors during startup when trying to assign unbound
values to template parameters in NGAP_Templates.ttcn.

Change-Id: Ib2410457d2b25f09134509b618b079b010e6ace0
Pau Espin Pedrol at
NGAP_Templates: Fix criticality of PLMNSupportList IE in NGSetupResponse

The criticality rejected is specified in 3GPP TS 38.413 version 18.5.0
Release 18, both in the ASN.1 definition of "NGSetupResponseIEs NGAP-PROTOCOL-IES",
as well as section 9.2.6.2.
open5gs-amfd is correctly sending reject there.

Change-Id: I0e73a97201e61a41ce5b056a149e185582ed187c
Pau Espin Pedrol at
NGAP_Templates: Add missing rx template for NGSetupFailure with TimeToWait optional IE

Change-Id: I241b83119e1fcf849895393ac1a1231368a85cbb
Pau Espin Pedrol at
library: Introduce NGAP Emulation

Only initial features are working, like sending NG Setup Request +
Response.

Change-Id: I5aea8be12c54cf907e71bffe6456efb5e60eb203
Pau Espin Pedrol at
testenv: podman: Stick rebar3 downloaded version to 3.24.0

The previous URL now contains a newer 3.25.0 rebar3 release, which
requires minimum OTP 26, but debian12 launches with OTP 25.

"""
  This BEAM file was compiled for a later version of the runtime system than the current (Erlang/OTP 25).
  To fix this, please re-compile this module with an Erlang/OTP 25 compiler.
  (Use of opcode 182; this emulator supports only up to 180.)
"""

Change-Id: Idce3a0a9e61b1d897a6d26f6b6eb49d59b0883ad
Pau Espin Pedrol at
5gc: Introduce testsuite

Change-Id: I867433c87c6da2f0d1f299245aedf4830acbf539
Pau Espin Pedrol at
library: Rename NAS_Templates.ttcn -> NAS_EPS_Templates.ttcn

This new naming matches existing files like NAS_EPS_Types.ttcn.
This also allows differentiating it from 5G NAS.

Change-Id: Ief9835e7c70ed2885105117613ec653a6ed4dfea
Pau Espin Pedrol at
testenv: add -j/--jobs parameter to run action

Allow building with less than all CPU cores. This may be desirable
because the NGAP asn1 files are huge and building with -j$(NPROC) eats
all the memory on some systems.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I191291cabd40e23983d29a350e587c1e11a52c0d
Oliver Smith at
testenv: add TESTENV_INSTALL_DIR

This is useful for e.g. the new 5gc testsuite.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I0a45e67c40a2c1d2220ef301e3e51178939f60b6
Oliver Smith at
testenv: README: document env vars set by testenv

Change-Id: I1a43d6b71c4dbc00abd8a4347fb2b35704491591
Oliver Smith at
5gc: Initial ConnHdlr support

With this we can already send an InitialUEMessage(Registration Request)
to the 5GC and see if everything is configured properly there.

Change-Id: I094b6775198dfcbf4041c3af423baa6f5072b97d
Pau Espin Pedrol at
stp: ipa: Introduce tests to validate incoming TCP conn with unkown AS (ipa_unit_id)

Change-Id: If6a9f54a19f6a4d833bbf66aad5dafd7e9917f82
Pau Espin Pedrol at
testenv: deduplicate make_dir

Generate the osmo-dev make dir path in one location, in testenv.cmd
which gets imported by testenv.osmo_dev instead of doing it in both.
This makes it easier to bump make_dir_version when necessary.

Change-Id: Id3cb30e1ea126daf04dac227a2bf39b746549ec9
Oliver Smith at
testenv: fix TESTENV_INSTALL_DIR

When osmo-dev is used (no --binary-repo arg is set), then set
TESTENV_INSTALL_DIR and --install-prefix for osmo-dev to:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/install
Old --install-prefix:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/usr
Old TESTENV_INSTALL_DIR:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}

The old behavior was misleading, because:
* It resulted in configs getting installed into:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/usr/etc/...
* TESTENV_INSTALL_DIR looked like it would point at the install dir
  (because there is usr inside that directory), but it was actually
  pointing at the top dir of the install dir.

Fixes: 143b1000 ("testenv: add TESTENV_INSTALL_DIR")
Change-Id: Id94936338a6eb74dee0b3f4668cbaca309b269e4
Oliver Smith at
5gc: testenv: use TESTENV_INSTALL_DIR

Change-Id: I412e53d132957a877a9a0478df3ac2fe31327a6c
Oliver Smith at
log_merge.sh: Merge all logs if no test cases are found

This can happen for instance if titan exits with an error during startup
even before starting any test.
In that scenario, titan still writes stuff to a file (eg.
C5G_Tests--efc28eab6a6d-hc-1305.log).
Let's try to make everything logged available in that case, so user can
debug what went wrong.

Change-Id: Ifc68e42022e8b2990d3c5221b3901f255e4e759b
Pau Espin Pedrol at
deps: Depend on osmocom fork of forge.etsi.org nas.git

This module provides types, templates and functions to operate NG NAS
(5G).

A fork is needed because:
* Upstream code doesn't compile against eclipse titan (A PR has been
  submitted upstream and we should eventually be able to compile ttcn3
  code just fine in that regard).
* Some system/external functions need to be implemented, such as
  fx_GetSystemTime(). We currently do that in our fork.

Related: SYS#7073
Change-Id: I004fc26e5d691ee7e3be984e28f5516e2b55258c
Pau Espin Pedrol at
5gc: Initial support encoding NG NAS UL messages

Change-Id: Id59564114cf18ae745e3e385e2c91779a453e545
Pau Espin Pedrol at
library/ngap: Fix wrong id set on PWSFailureIndication templates

Change-Id: Ied1c7a5914c6cbacf64ba857aa31c12ca6f001fb
Pau Espin Pedrol at
library/ngap: Fix criticality of several NGAP messages

As defined in ASN.1 in 3GPP TS 38.413 section 9.4.3.

Change-Id: I2283a5b025f0ce7d7445fa0ce9ba8405156c4533
Pau Espin Pedrol at
bts: f_init(): print testcasename() in the IUT's logs

It's useful to see testcase names in the IUT's logs in some
situations.  For instance, when some testcase crashes the IUT.

Change-Id: I16136f32d7143edfc1638e359ef5b1066c248732
Related: OS#6794
laforge at
bsc: fix race condition in RSLEm

It may happen that the RSLEm component receives a DChan message
earlier than we suspend the DChan processing.  We saw this once:

  RSL for unknown Dchan
      BSC_Tests.ttcn:12769 BSC_Tests control part
      BSC_Tests.ttcn:5888 TC_ho_int_a5_4 testcase

Let's guard against this by calling f_rslem_suspend() earlier.

Change-Id: I012d4db05538d294a6b4aa85be4a40bb0bad28a3
laforge at
testenv: run "make deps" every time

The previous logic of not always running "make deps" was useful when
"make deps" would take a long time to complete even if there were no
changes. But this has been fixed in c7e40d6a ("Makefile: avoid fetching
deps if not needed"). Run it every time now in order to fix that deps
are not updated after deps/Makefile gets changed.

Change-Id: I02668530ce36c51a1c641fb816464c9c8e6ded9e
Oliver Smith at
5gc: Initial NAS receiving support

With this patch it is already possible to receive the NAS Auth Request
in the test ConnHdlr.

nas.git dep needs updating to include a new patch fixing decoding of
NG_AUTHENTICATION_REQUEST.

Change-Id: I6697f30f95777fc9aed16a529a669d10f42c57be
Pau Espin Pedrol at
5gc: Initial NAS transmitting support

With this patch it is already possible to transmit the NAS Auth Response
in the test ConnHdlr.
We still lack generating a proper RES to have the response properly
accepted.

Change-Id: I951e98217b0150eed58fabb8e50a4782c1a3b510
Pau Espin Pedrol at
testenv: podman: Install newer libcurl from bookworm-backports

It was already spotted a few days ago that libcurl4 7.88.1-10+deb12u12,
currently being shipped by debian12, contains some sort of bug where it
doesn't properly format/read HTTP2 requests when used in open5gs.
It was found out that installing a newer version of libcurl4 fixes the
problem.
This patch also fixes the problems spotted in the 5gc testsuite when
running within podman (they didn't show up outside podman because I'm
using Archlinux and hence using newer libcurl 8.13.0 too).

Change-Id: I799eeac73c49b9596502ad98acaa11dba3b88e97
Pau Espin Pedrol at
5gc: Fix upfd failing to start outside podman

tuns need to be recreated beforehand with sudo, as already done in
ttcn3-ggsn-tests-ogs, otherwise upfd would need root access to create
them.

Change-Id: I5d3e0c3b7391d312304190acf07b347320481275
Pau Espin Pedrol at
testenv: use eclipse-titan 11 in Dockerfile

Install eclipse-titan from osmocom:nightly instead of osmocom:latest,
which now has version 11. Once we ensured everything works as expected,
we will upgrade the version in osmocom:latest too.

Change-Id: I660dd6ca93a54087b1d41787c4ed2b64a3ad0437
Oliver Smith at
Revert "testenv: use eclipse-titan 11 in Dockerfile"

This reverts commit 8082d099e3f96da3dfe4348b0e1bd794d93b8b02.
Oliver Smith at