Commit Graph

1318 Commits

Author SHA1 Message Date
Pau Espin 17e0f8c5a0 break GTP_Templates dependency on Osmo_Gb_Types, BSSGP_Types, NS_Types
The resulting set of dependencies needed just to have one simple CellId
struct is huge. That was fine for sgsn testsuite since anyway those were
being used, but it's not acceptable for other testsuites (hnodeb) which
only really require the GTP side.

After this change, GTP_Templates only requires GSM_Types, which ends up
in a much smaller subset of dependencies being pulled in.

Change-Id: Icd8234908af445b798517fe110cd0648969179a4
2021-12-09 15:25:50 +00:00
Vadim Yanitskiy a47cd4e6aa library/BSSMAP_Templates: parametrize codec list for tr_BSSMAP_ComplL3
Change-Id: I4abd77ebe47791adf2708e1c31614383d18e54b8
2021-12-07 07:38:33 +00:00
Oliver Smith 8b6d1804e1 library/Misc_Helpers: add f_osmo_repo_is()
Create functions to check which from Osmocom repository the SUT is
running. Put it in Misc_Helpers instead of a new library file since
Misc_Helpers is already available in many/all? tests and it fits there
too.

Depends: docker-playground Ic06532f7a67e59458652c5cf4c8f6fee8113e703
Related: OS#5327
Change-Id: Ic33d08992ea84af006d133db6aec508a7b7c7f28
2021-11-29 21:15:31 +00:00
Daniel Willmann ef8e50ef30 BSSGP_Emulation: Handle FLUSH_LL_ACK differently
The BVCI that this message might contain should not be used to route it.
It referes to the BVCI that the PDUs were transferred to (BVCI (new)).

Instead broadcast to all components.

Change-Id: Ia1df35da44ef28d91501bb898e1059bf1390129b
2021-11-26 12:05:20 +01:00
Pau Espin b54acca15f hnb: Introduce HNB_Tests testsuite
A new Iuh CodecPort + Emulation is introduced to (de)mux RANAP and RUA
in the same SCTP socket.
The Iuh_CodecPort.ttcn file has currently a hack to be able to test
HNBAP, since titan seem to be reporting sinfo_ppid=0 when in fact it
received sinfo_ppid=20 (HNBAP).

A couple tests are added to validate HNBAP HNBRegister Request  + Accept
or Reject. In current osmo-hnodeb state, both tests pass if run
separately, but fail if run sequentially since osmo-hnodeb still doesn't
re-connect properly after first test finishes and connection is dropped.

Related: SYS#5516
Change-Id: I7227917148e98a2c777f4b05d8d2eca6e9c121b7
2021-11-24 17:52:49 +00:00
Neels Hofmeyr afe2ea5c4f bsc: show bug: do inter-BSC-out HO by measurement report
So far all handover tests trigger handover via VTY command. This means
that any bugs introduced in measurement report handling and handover
target selection are by definition not caught.

Almost a year ago, fixing a handover oscillation bug for intra-BSC
handover introduced a segfault for inter-BSC handover targets, because
for those the target.bts is NULL. Show this bug.

Related: OS#5324 SYS#5259
Related: I5a3345ab0005a73597f5c27207480912a2f5aae6 (osmo-bsc)
Change-Id: Iba033c32015173f57dbb1c211aefab1a9094e29d
2021-11-24 15:26:50 +01:00
Vadim Yanitskiy 89f198cb8c library/DNS_Helpers: type 'char' was substituted with 'charstring'
Change-Id: I0c93002cf915a8ce7e63f208693b2b63ae52ac38
Related: SYS#5602
2021-11-19 03:31:19 +03:00
Pau Espin e8a9444356 pcu: Introduce test TC_t3172_*
Related: OS#3928
Change-Id: I3f4368c99b00453b471c3d741fecb8864ecdc628
2021-11-16 11:32:25 +01:00
Neels Hofmeyr b758187c86 bsc: add test for CM Service Reject counter
Related: I79b1261e5a281d9797eaaf9c27d90edd8e27c78b (osmo-bsc)
Related: SYS#4878
Change-Id: I0214b27da18af87eca9715ebf7eeeff945e3e12a
2021-11-10 14:32:50 +01:00
Neels Hofmeyr bd94fe7236 bsc: add TC_ratectr_all_available_allocated and _dyn
Test new rate counters all_allocated:{sdcch,tch,static_sdcch,static_tch}

Related: SYS#4878
Depends: I2fa14531f16d3f07085620f1c50eb839c420da6a (osmo-bsc)
Change-Id: Ib3997a827c9cc43d1361bb0cf3bfab9f6d91bf82
2021-11-10 13:31:48 +00:00
Vadim Yanitskiy f9e31d281b BTS_Tests: add test cases for Temporary ACCH Overpower
Change-Id: Ibdb94aa2779ae4b08f08cfef78c2959ae451a784
Related: SYS#5319
2021-11-10 03:35:19 +03:00
Vadim Yanitskiy e243ef6bf0 library/L1CTL_PortType: add f_L1CTL_rx_data() helper
Change-Id: I254171c6dc83f046b5ad1a72586c097deebb0fa7
Related: SYS#5319
2021-11-09 12:57:48 +00:00
Vadim Yanitskiy 66d3c338c3 library/RSL_Types: add templates for RSL_IE_OSMO_TopAcchCap
Change-Id: If2e287699925c6bb7f93439d0729e16682fab019
Related: SYS#5319
2021-11-09 12:57:48 +00:00
Vadim Yanitskiy a203d3b5e2 library/RSL_Types: add missing RSL_IE_OSMO_TOP_ACCH_CAP
Change-Id: I3bd491fba5b72f0fdd262992a97895f037be69d8
Related: SYS#5319
2021-11-09 12:57:48 +00:00
Vadim Yanitskiy 1f53215f45 library/RSL_Types: add missing RSL_IE_OSMO_REP_ACCH_CAP
Change-Id: I198cbfd176e41c55f67d625d9587ba5b6062f0c4
Related: SYS#5114
2021-11-09 12:57:48 +00:00
Vadim Yanitskiy 9cbb86ff2a library/GSM_RR_Types: remove misleading PADDING attributes
Unfortunately, TITAN has a weird (and often unusable) model of
defining padding in records.  According to its reference guide,
padding length is counted from the beginning of the message.
So if the 'MeasurementResults' is a part of another record, and
there are other fields preceeding it, the encoded representation
of the 'MeasurementResults' may still be shorter than 16 octets.

Change-Id: Ia1c87ae85ee402369dad0dfd81159f179095c8d2
2021-11-09 12:57:48 +00:00
Vadim Yanitskiy 9ff4780505 library/MNCC: implement MNCCv8 encoding/decoding support
Change-Id: I5488c5a4cc671e1d6a0d35b2ff4bdda0b0b48c00
Related: OS#5164, OS#5282
2021-10-28 16:16:33 +03:00
Vadim Yanitskiy f39627432c library/MNCC_Types: set 'sdp' field to omit by default
It's defined as 'optional', so let's rather use omit.

Change-Id: I96b03fe5363cc9bf1df622f7436d1a7c2da7514a
2021-10-28 16:10:27 +03:00
Vadim Yanitskiy d376063719 library/MNCC_EncDec.cc: fix encoding of optional 'sdp' field
Decoding was implemented in [1], but encoding was not.

Change-Id: I82f8afd3e64d83d165a7070a1b82a6276ef0b020
Fixes: [1] Ic9568c8927507e161aadfad1a4d20aa896d8ae30
2021-10-28 16:10:10 +03:00
Vadim Yanitskiy aff226fb03 library/MNCC_EncDec: rip out MNCC version 6 support
The latest release of osmo-sip-connector (1.5.0, 23 Feb 2021) does
support MNCCv7, so there is no need to maintain MNCCv6 support.

Change-Id: Ie45158e805a62e86b9496b46f323b83a74630460
Related: I5448ff931ec33f24f4837a51376f1703fe97683b
Related: OS#5282
2021-10-28 16:10:10 +03:00
Harald Welte 4038d4c4bd sccp: Add TC_process_rx_xudt, verifying reception of SCCP XUDT
Test if a XUDT SCCP message is processed by libosmo-sigtran.  We
assume any XUDT is received (and echoed back) just like normal UDT.

Related: OS#5281, SYS#5674
Change-Id: Idbf6db7a684e51858129618b2fcffcbe55b1b70f
2021-10-26 14:43:33 +02:00
Vadim Yanitskiy 42525ac97b library/TRXC_Types: add definitions for FAKE_TRXC_DELAY
Change-Id: Ic5034f244374d4368d4fcb9a382c984cc730c408
Related: OS#5245
2021-10-04 12:37:23 +00:00
Vadim Yanitskiy 418066a05c f_TRXC_transceive(): accept 'template (value)' parameter
Change-Id: I98012607f3e9da71234333aac77d59936cd3ee20
Related: OS#5245
2021-10-04 12:37:23 +00:00
Neels Hofmeyr 596393abe5 RSLEM: add f_chan_act_verify_tsc()
Will need this code again to verify the TSC during handover, so cast
this in a separate function.

Related: SYS#4895
Change-Id: I7a3f68ed1deba6a4a0a1cc4df7613638225c1640
2021-10-02 13:10:58 +02:00
Neels Hofmeyr ad26fc0017 RSLEM: add f_rslem_auto_chan_act_ack(boolean)
Allow to switch off automatic Channel Activation ACK via a new port
signature.

Required for upcoming BSC_Tests.TC_lost_sdcch_during_assignment().

Related: SYS#5627
Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66
2021-09-29 16:02:01 +02:00
Daniel Willmann c5bbcc6279 gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone
IF the BSS-BVC is gone gbproxy blocks the BVC towards the SGSN (this is
the only thing it can do since there is no BVC-REMOVE). If the SGSN ever
decides to reset that BVC the gbproxy should not ACK it, but instead
consider the BVCI unknown.

Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d
Related: SYS#5628, OS#5236
2021-09-27 12:10:17 +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
Neels Hofmeyr 8f17e05e25 fix errmsg in f_ctrl_set() which said "GET"
Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973
2021-09-07 17:23:17 +00:00
Neels Hofmeyr b07b295bb0 bsc: add TC_imm_ass_pre_chan_ack
Add tests for the new early IMM ASS feature in osmo-bsc:
  'immediate-assignment (post-chan-ack|pre-chan-ack)'

Related: 0b44493d3de03d2750527e224df67b473fe39f93 (osmo-bsc)
Related: SYS#5559
Change-Id: If71f4562d532b6c5faf55f5fd073449a8a137ebf
2021-08-17 22:06:57 +00:00
Neels Hofmeyr f8aa6c1a25 SMPP_Emulation: replace previous entries in f_create_smpp_expect()
Will be used by MSC_Tests.TC_call_re_establishment_auth in
I8110a6b432de734d53b111c7b69aabca12129691
to re-plug SMPP handling for an imsi to another vc_conn.

Related: SYS#5130
Change-Id: I63856fc158f5db9ced9185c208035b26e7ed7a74
2021-08-06 14:03:28 +00:00
Neels Hofmeyr 2c4f7d8dde GSUP_Emulation: allow moving HLR handling to another test component
Will be used by MSC_Tests.TC_call_re_establishment_auth in
I8110a6b432de734d53b111c7b69aabca12129691
where a call from one vc_conn gets re-established in another vc_conn.

Related: SYS#5130
Change-Id: I235492185cda68f9f8e845085e3f6efe76a13501
2021-08-06 14:03:28 +00:00
Neels Hofmeyr 2edc2cd742 MNCC_Emulation: allow moving call handling to another test component
Will be used by MSC_Tests.TC_call_re_establishment in
Ifdff5573eeb3b3d41e8599b9b0228411d2576864
where a call from one vc_conn gets re-established in another vc_conn.

Related: SYS#5130
Change-Id: If7e952e54ebd1bb88cce11ec5f0ff4826e02cb63
2021-08-06 14:03:28 +00:00
Neels Hofmeyr 5c449f346e MGCP_Emulation: allow moving ep handling to another test component
Will be used by MSC_Tests.TC_call_re_establishment in
Ifdff5573eeb3b3d41e8599b9b0228411d2576864,
where a call from one vc_conn gets re-established in another vc_conn.

Related: SYS#5130
Change-Id: Id46035e53c2870e1fdef1335dce42b2020f7cd54
2021-08-06 14:03:28 +00:00
Neels Hofmeyr e51ce49fbf L3_Templates: add ts_ML3_MO_CC_DISC
To simulate an MS initiated call release at the MSC, a MO CC DISCONNECT
is required. So far msc's f_call_hangup() has some really weird
sequences of MNCC events. This is one preparation to fix that.

Will be used by MSC_Tests.TC_call_re_establishment in
Ifdff5573eeb3b3d41e8599b9b0228411d2576864

Related: SYS#5130
Change-Id: Ie152f8760c9bd6df04a20fdbb7ce9bbde9cb3d68
2021-08-06 14:03:28 +00:00
Neels Hofmeyr c0ef35ca62 bsc: improve error log for "RSL for unknown Dchan"
The failure verdict includes the RSL message that could not be
associated with a handling component, but ttcn_logformat does not format
that message. Add an identical log() that gets formatted nicely.

Change-Id: Ibb8f60671e78075492783cba560a8229ba5a380b
2021-08-06 14:03:28 +00:00
Neels Hofmeyr feda88e51d bsc: add TC_cm_reestablishment
Related: SYS#5130
Change-Id: I1e7d446644f46b8a0a94688e618ffb4f23a8900e
2021-08-06 14:03:28 +00:00
Neels Hofmeyr 3222e0eee8 bsc: add RSL port args in MSC_ConnHdlr, RSLEM
Add explicit RSL_DCHAN_PT and RSLEM_PROC_PT args to functions and
altsteps related to channel establishment and assignment. This allows
establishing and assigning a channel on cells other than bts 0.

This is required for upcoming BSC_Tests.TC_cm_reestablishment().

Related: SYS#5130
Change-Id: Ic3206b7125ee22bf98330080d9b136cefe7da03f
2021-07-27 07:28:26 +00:00
Vadim Yanitskiy ed5129f313 library/RTP_Emulation: add optional port for RTP sniffing
Change-Id: I224d25aa298b5b512ab9e2a36c144e19c23d8462
2021-07-05 12:09:07 +00:00
Vadim Yanitskiy 8c978ec94f library/RTP_Emulation: improve readability of guard statements
Change-Id: Ic25646cca5c276feae8dda52153991a8d16913e1
2021-07-05 12:09:07 +00:00
Vadim Yanitskiy fc63164bac library/RSL_Types: use OCT4 for local/remote address fields
This way functions like f_inet_addr() and f_inet6_addr() can be
used directly without converting between bytes and integers.

Change-Id: I389a8cb95c025c9dddc751789223621c15d9b48f
2021-07-05 12:09:07 +00:00
Vadim Yanitskiy e9141c22b1 library/RSL_Types: add remote addr/port to ts_RSL_IPA_CRCX()
Change-Id: Iffcac2f1c9b877393fef547fb67ee24cc1e27a11
2021-07-05 12:09:07 +00:00
Vadim Yanitskiy 2a5a1ef401 library/RSL_Types: add matching templates for BS Power Control
Change-Id: Iceba738f71043dc22880d085836f8be9d14821ab
Related: SYS#4919
2021-06-30 10:20:33 +00:00
Neels Hofmeyr 0d841d98b6 msc: add inter-BSC HO tests with A5 encryption
Related: SYS#5324
Change-Id: I57e43c60d4389bd301d0195179321a34401bd1dc
2021-06-29 16:17:54 +02:00
Neels Hofmeyr f7831cbcd9 msc: cipher mode: move cipher expect to new function
Move the ciphering calculations from f_mm_common() to new function
f_get_expected_encryption(), so that it can be re-used for ciphering in
inter-BSC handover (upcoming patch).

Add tr_BSSMAP_CipherModeCmd2() to conveniently use the values returned
by f_get_expected_encryption().

To verify the Ciphering Mode Command in f_mm_common(), use the new
tr_BSSMAP_CipherModeCmd2(), and rely on template matching instead of
checking each IE individually.

Related: SYS#5324
Change-Id: I1f775889fb801d441ea6c8b0f0c34718b814c09e
2021-06-29 16:17:54 +02:00
Philipp Maier ca058278c9 BTS_Tests: add testcase TC_paging_imsi_200percent_with_ps
The current paging load tests only test what happens when the paging
load is introduced from the PS side. However there are no tests that
tests what happens when PS pagings are introduced from the PCU side
into an already overloaded system.

osmo-bts was equipped recently with a mechanism that detects congestive
situations. Once a congestion is detcted osmo-bts will drop pagings from
the BTS side. The rationale of the new testcase is that the behavior
must not change when the PS pagings start since osmo-bts is dropping
them.

Change-Id: Ie72e788d9ebff6ca4e50314746127a9689948062
Depends: osmo-bts I30f97672d7a0c369c4a656e878ab8cbbd83e31ea
Related: SYS#5306
2021-06-28 08:47:04 +00:00
Pau Espin 65d712e973 bts: Test forwarding PCUIF<->IPA/OSMO/PCU
Change-Id: I78880098a55d1cb456011746efa0a47832a86ca8
2021-06-28 10:43:21 +02:00
Pau Espin 6924ef7199 bts: Support passing PCUIF messages over IPA multiplex
Related: SYS#5303
Change-Id: I3cd0988cb654f1c5816d1c4717255a5e802d7925
2021-06-25 13:28:20 +02:00
Pau Espin 52c5485462 CSN1: Support enc/dec of Packet Measurement related messages
Related: SYS#5303
Change-Id: I5567a0d86c70d67e2012ba284146952a40c279d7
2021-06-25 13:28:20 +02:00
Vadim Yanitskiy d0766b28da library/PCUIF_Types: add definition for PCU_IF_MSG_INTERF_IND
Change-Id: I07d25d694c2f39a79295c2948ab6155f46e5c639
Related: SYS#5313, OS#1569, OS#1866
2021-06-22 20:07:48 +02:00
Neels Hofmeyr 1d8decea8b BSSMAP: add encr params to ts_BSSMAP_HandoverRequest
Related: SYS#5324
Change-Id: Idadc0e0a7a960a0ef88b3dca97c4fbaa16975b61
2021-06-21 20:18:35 +00:00
Pau Espin 14b5fea25f GSM_SystemInformation: Fix trailing whitespace
Change-Id: Ie910d376c472f23bde7c357baca004a25053f5ce
2021-06-21 15:42:48 +00:00
Pau Espin 81a55e686d OML: Add types/templates for GetAttributesResponse
Change-Id: Iec7198cc164b6e33e708d59c3f214efb3e1ac33b
2021-06-18 12:29:19 +02: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
Alexander Couzens 2d10ee65e4 RAW_NS: f_incoming_sns_chg_weight() allow to receive/send the chg_weight over a different
The SGSN/PCU will use a different NSVC as the NSVC which will be changed weight'ed.

Related: OS#5036
Change-Id: I5766afaa74db30d94318312ab775e7933b9df783
2021-06-07 01:11:13 +02:00
Neels Hofmeyr 1470fc668a allow ASP_RSL_UD on MSC_ConnHdlr RSL
In BSC_Tests_VAMOS.ttcn, in f_est_and_reassign_to_secondary_lchan()
there is a missing channel release ack. By allowing ASP_RSL_UD, this rel
ack can be sent trivially.

Change-Id: Icd04184ed87c359349d86c5e0893c2ce9de2f7f1
2021-06-05 20:24:35 +00:00
Neels Hofmeyr 9f3e6ac649 add bsc/BSC_Tests_VAMOS.ttcn
BSC_Tests_VAMOS.ttcn is separate from BSC_Tests.ttcn in order to
instruct osmo-bts-omldummy to pass BTS_FEAT_VAMOS == true in the OML BTS
attributes.

Add tests:
TC_chan_act_to_vamos()
TC_mode_modify_to_vamos_fr()
TC_mode_modify_to_vamos_hr()
TC_assign_to_secondary_lchan_fr()
TC_assign_to_secondary_lchan_hr()
TC_vamos_multiplex_tch_f_tch_f()
TC_vamos_multiplex_tch_h_tch_h_tch_h_tch_h()

Change-Id: I2c504099163a30ea102cbd26d3615ca2e5ce1e64
2021-06-05 20:24:35 +00:00
Neels Hofmeyr b5b7a6ea27 bsc: test TSC in various messages
In a recent osmo-bsc patch:

"allow explixit TSC Set and TSC on chan activ / modif / assignment"
c33eb8d56943b8981523754b081967e6ff5f245d
Ic665125255d7354f5499d10dda1dd866ab243d24

I accidentally changed the default behavior of the Training Sequence
Code sent to BTS and MS. So now, make sure that we verify the expected
Training Sequence Code in BSC_Tests, in:

RSL Channel Activate
RR Immediate Assignment
RR Assignment Command
RR Channel Mode Modify
RSL Mode Modify

Related: OS#5172 SYS#5315
Change-Id: Id67a949e0f61ec8123976eb8d336f04510c55c01
2021-06-05 22:14:46 +02:00
Alexander Couzens 54ebb4a27a RAW_NS: add support for an incoming SNS DELETE procedure
Change-Id: Ia682522fe583a82e16a9c8008972f660f03243f7
2021-06-05 15:49:44 +00:00
Alexander Couzens c56a3b2f12 RAW_NS: add support for an incoming SNS ADD procedure
Change-Id: I937b654d377e189ee811145474683b638153179e
2021-06-05 15:49:44 +00:00
Alexander Couzens 3f1d661551 RAW_NS: add missing idx to as_rx_alive_tx_ack
Without the index the message got send and received
via the wrong NSVC.

Change-Id: Ic5d1f4aa5e8a2373a4f46feef44e71b9688035c9
2021-06-05 15:49:44 +00:00
Vadim Yanitskiy 45749a85de library/PCUIF_Types: fix wrong parameter type in ts_PCUIF_DATA_IND
The 'lqual_cb' represents the link quality in centiBels, which
can be negative.  Use 'int16_t' instead of 'uint16_t'.

Change-Id: I038eec22928d831ddbc0a2704830d5e2eab2cb6b
2021-06-04 19:57:17 +00:00
Vadim Yanitskiy 9f69953a37 library/RSL_Types: complete definition of RF RESOURCE INDICATION
Change-Id: If3eedfaea6de252b8dc3ca238f6ffd45448065d1
Related: SYS#5313, OS#1569, OS#1866
2021-06-03 17:29:44 +02:00
Neels Hofmeyr 9c3b82f5dc GSM_Types, bsc: add VAMOS cbits
Change-Id: I2d98495b8c4c9a8466f2154af9bb29124c2cb0b5
2021-05-29 21:50:11 +02:00
Alexander Couzens 99b837ad09 NS_Provider_IPL4: fix typos in comments
Change-Id: I05ccbf2eb7387bc8c1277a53591efbf503d46051
2021-05-28 16:14:28 +00:00
Neels Hofmeyr 2bef0ddb12 RSL_Types: add VAMOS chan rates and OSMO_TRAINING_SEQUENCE IE
Prepare for upcoming VAMOS tests in BSC_Tests_VAMOS.ttcn.

Change-Id: Idbe9014754eff9c8b2bff19828581bae5b36fadf
2021-05-25 23:10:58 +02:00
Eric Wild 26f4a62642 msc: add first a5/4 tests
All msc tests involving classmarks suffer from the same problem: if a
existing subscriber is reused the old classmarks will stick, since the
msc only overwrites updated parts of the cm when receiving a new cm, so
"downgrading" the existing classmark information is not possible.

This is circumvented here here by using different imsi suffixes,
the last param passed to f_start_handler.

Additionally the handler will now properly respond to cm requests
by the msc, i.e. in case the early cm is not sufficient for a5/4
because it lacks cm3, so the msc attempts once to query the cm,
hoping to get a cm3.

Related: SYS#5324
Change-Id: Idc055a006b325f58a5eafa88bc4415181b3500a2
2021-05-19 17:49:52 +00:00
Pau Espin 8c74cbbf5a sgsn: Introduce test TC_rim_eutran_to_geran
GTP_Templates.ttcn new templates use BssgpCellId, hence it depends on Osmocom_Gb_Types.ttcn.

Related: SYS#5314
Change-Id: I9dcf6ee2dc55bc6aba178eca30080233254f025e
2021-05-17 20:33:00 +00:00
Harald Welte aed9f94db4 sccp: Add TC_callingparty_ssn_only()
This test verifies that libosmo-sccp will properly respond to SCCP
traffic that only has a SSN in the CallingPartyAddress.  That situation
poses the unique challenge of how to route a response, as we lack
a GT and a PC to do the routing.

In order to support this, libosm-sccp now adds the PC into the
CallingPartyAddr when passing such messages from M3UA to SCCP. This
way the recipient can simply respond back to that address and it will
be routed on PC.

Change-Id: Ided599a922fb7f6dbbfe90f817c5419ab793f293
Related: OS#5146
2021-05-13 21:58:33 +02:00
Harald Welte 2eb30d4eb7 SCCP_Templates: Allow templates as Called/CallingPartyAddress in UDT
Change-Id: I8d9f782ed3f4e6363f5370deb73bd2694b4c5d6a
2021-05-13 21:58:33 +02:00
Pau Espin e979c40e4b msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB
Validate in test that MSC sends Last Used E-UTRAN PLLMN Id IE when call
is started by SGs (CSFB).

Related: SYS#5337
Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575
2021-05-11 16:15:31 +02:00
Pau Espin 3768a6fc34 msc: MME emulation should send TAI during SGs LU for CSFB support
3GPP TS 23.272 sec 4.3.3:
"During the SGs location update procedure, obtaining the last used LTE
PLMN ID via TAI in SGsAP-LOCATION-UPDATE-REQUEST as specified in TS
29.118".

Related: SYS#5337
Change-Id: I7057a7c41794d62f7cbc412da3e805c1f0c69511
2021-04-28 14:24:26 +02:00
Harald Welte 95e3d9906c stp: Add TC_ipa_to_m3ua_ni()
This tests sets a non-zero default network-indicator in the ss7 instance
and then performs an IPA -> M3UA translation while checking if the M3UA
side now uses the specified default network-indicator (NATIONAL).

Change-Id: Id4f9d0ff67e114a119ab032d44ac0dfd34f5c402
Related: SYS#5421
2021-04-25 14:28:53 +02:00
Pau Espin a1f8e20bb3 GSM_RR_Types: introduce record TbfStartingTime
Change-Id: Id2e61652418571cf72ac17ca46742d9624348691
2021-04-24 14:11:33 +00:00
Alexander Couzens 619213f8ef fix typo in NS_CAUSE_PROTOCOL_ERROR_UNSPECIFIED
Change-Id: Ifbf86138f3f2e9c053c99b6f58c510d38bad4e88
2021-04-24 14:07:20 +00:00
Harald Welte c4ac9e0fe3 Initial test suite for osmo-pcap-client
Change-Id: If4a1072e75cb64f785d660e4c828c0f521d84b16
2021-04-24 12:43:48 +02:00
Pau Espin 35801c3edc bsc: Introduce test TC_srvcc_eutran_to_geran_ho_out
Related: SYS#5337
Change-Id: Id34924bbf0a5cf08b4b6f5ea56a10cef6b69c877
2021-04-20 16:19:25 +00:00
Pau Espin c08d552544 bsc: Introduce TC_srvcc_eutran_to_geran
Related: SYS#5337
Change-Id: If26cc9241b1b0eb4112f1227427008ece242bb41
2021-04-19 11:38:18 +02:00
Pau Espin ee8cec808a BSSMAP: Support setting LastUsedPLMNId in CommonId msg
Related: SYS#5337
Change-Id: I1b7c7fbe010033e726dde3c68152543a63760ffd
2021-04-19 11:38:18 +02:00
Pau Espin d5ba6cef4f BSSMAP: Update ts_BSSAP_BSSMAP to contain new fields
Depends: titan.ProtocolModules.BSSMAP Change-Id I5103ceb2656a41925a089af5492d0722ca87a5c7
Related: SYS#5337
Change-Id: I9cc4d161fa7083e30d3bf8f10e959d1fe7b86032
2021-04-19 11:34:57 +02:00
Pau Espin 36bd4fa06a Remove CSFB references from RR Chan Release CellSelectionIndicator IE
The IE contains a cell list for the MS to register after the channel
is released. The IE is used in CSFB, but not only in that case: it's
also used in SRVCC.
Hence let's remove the CSFB references since the scope is more wide.

Related: SYS#5337
Change-Id: Ia1eeda98fc21aa92bb2e41b5e4761c5cf6516a7e
2021-04-19 08:49:36 +00:00
Harald Welte a4abe20d62 NS_Emulation: Implement minimal PCU-side SNS functionality
Using this code, we can run a TTCN3 test using NS_Emulation in
IP-SNS mode.  It only covers the most basic cases but works for simple
scenarios.

Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d
2021-04-01 21:27:33 +02:00
Harald Welte 424ec5211c SGSN: Some initial SNS tests for IP-SNS in OsmoSGSN
Change-Id: I821d998704756fa30278f41d0371051db9d3fc58
2021-04-01 21:27:33 +02:00
Harald Welte b5688f26ed gbproxy: Verify BVC FSM state during bring-up
This adds IUT fsm state instrospection via the CTRL interface.

docker-playground will need to set "mp_gbproxy_ip" in its configs.

Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7
2021-04-01 18:25:31 +02:00
Harald Welte 8396096c1c CTRL_Adapter: Add function to obtain FSM instance state
This can be useful to verify expectations about the state of FSMs
in the IUT.

Change-Id: I33afc2e73be06e23147b5ac0b0fd3b9003935444
2021-04-01 18:25:31 +02:00
Harald Welte c771bfbe36 NS_Emulation: Use endpoint list for SNS-CONFIG payload
We used to have no distinction between endpoints and NSVCs, meaning
that we could not have more than one NSVC per endpoint, which in turn
meant it was ok to iterate the list of NSVCs for generating the
endpoint lists in the SNS-CONFIG payload.

With Change-Id I05a50b966b8ce93497372ca403d40fd383dd35f7 we remove that
constraint and introduce an actual local IP endpoint list.  Let's use
that one for SNS-CONFIG.

Change-Id: Ifa91510430a017fa29592a3d5fa2a3697d29c9da
2021-03-29 22:58:49 +02:00
Harald Welte ad32071825 NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4
Thew newly-introduced "endpoint" mode of NS_Provider_IPL4 allows us
to have multiple NS-VC within one endpoint.  NS_CT takes care of
creating the NS_Provider_IPL4 components on-the-fly, and then
associating the per-NSVC components with it.

For the user nothing changes, other than that he can now configure
multiple NSVCs with identical local IP + port, which was not possible
before.

Change-Id: Id7360f17e528706e8145d33a14550789d50cded9
2021-03-29 22:58:46 +02:00
Harald Welte 4bef0ddf9b NS_Provider_IPL4: Implement new "endpoint" mode
This adds a new, optional "endpoint" mode to the IPL4 provider,
where we remove the constraint of "one NSVC per provider", which
in turn is a pre-requirement for real IP-SNS support with full
mesh of NS-VCs.

This code doesn't introduce any users of this "endpoint" mode yet.

Change-Id: I05a50b966b8ce93497372ca403d40fd383dd35f7
2021-03-29 22:58:26 +02:00
Harald Welte 6a414c8001 RAW_NS: Ignore NS-UNITDATA while waiting for NS-ALIVE in oneshot mode
Change-Id: Id2738b055f860b4eee57d445944e0861b34151be
2021-03-24 00:57:29 +01:00
Vadim Yanitskiy 204fe621ed library/PCUIF_Types: use PADDING attribute for 'PCUIF_Message'
PCUIFv9 compatibility has been dropped in [1], so now we can tell
TITAN's RAW codec what kind of padding to expect in received
messages and to append to encoded messages.  This eliminates
thousands of warnings about unhandled tail octets.

Change-Id: Id5ab587f7984a91f3603efc5d427aa4cb4fa6757
Related: [1] Ia9f366ca1fdad700a90ca3367e43523f7bac39a1
Related: OS#5083
2021-03-23 13:41:09 +00: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
Harald Welte 22deecc8ea RAW_NS: don't expect hard-coded number of NSVC/endpoints in SNS-SIZE
Change-Id: I5d567582db18be0f875e8e2ba380a04a1a838350
2021-03-23 13:14:21 +01:00
Alexander Couzens d5ac510648 ns: SNS: add bss change weight testcase
Do a normal SNS configuration. Afterwards the BSS will change
the weights of the endpoints

Change-Id: I691b9d26bf3eb8fa65aa02eba3efd0fd3869fc2a
2021-03-20 16:41:01 +01:00
Pau Espin 873686f029 pcu: transmit PCUIF DATA.ind with len=0 when no UL data to transmit
PCUIF will be updated to always send DATA.ind for each expected block FN
on any activated PDCH slot, irrespective of whether valid data was
received or not, similarly to what's done already for TRXDv1 NOPE.ind in
TRXD and TCH channels in OsmoBTS. The aim at this change is to be able to
track TDMA clock in an accurate way without hops, and hence be able to
detect on time whether expected UL blocks (SF, RRBP poll) didn't arrive.

Older osmo-pcu versions can cope well with this change, they will simply
print an error upon ach data_len=0 messages received and submit a GSMTAP
block, then discard it, so tests still pass.
Nevertheless, a new module parameter is added to disable this new
behavior in order to avoid logs and pcap files ending up clogged with
uneeded information until a new osmo-pcu release appears.

Related: OS#5020
Change-Id: Ib4f97a9bcfa68230945effeb6412218faa64ec78
2021-03-12 11:44:42 +00:00
Pau Espin 76de166a56 PCUIF: Fix naming of counters in InfoInd
Change-Id: Ieb26020e0f18169f19322963e23358b6ca254545
2021-03-01 17:42:45 +01:00
Pau Espin eef4607203 BSSGP+pcu: Get rid of mp_tolerate_bvc_reset_cellid
Since we have new releases in -latest, we don't need this param since
it's never set to true.

Related: OS~5042
Change-Id: Ic496407fd2139b3a5221c30f1798797320cdee24
2021-02-26 13:39:45 +01:00
Pau Espin f0b7d4f309 RSL_Emulation: Get rid of module param mp_rslem_patch_ipa_cid
This param is not needed anymore since new releases used in -latest don't
need to disable it.

Change-Id: I39e9c1986ea682d54dcb22b31798ca91f1677949
Related: OS#5042
2021-02-26 13:10:16 +01:00
Pau Espin 4858184bd4 StatsD_Checker: Enable by default
It was previously disabled by default in order to avoid test breakage
with older versions of osmocom projects not supporting them. Since we
just did a new release, all -latest contian now master which should work
fine.

Don't remove the moduleparam yet in order to avoid breakage with some
cfg files in docker-playground.git still setting it to true.

Related: OS#5042
Change-Id: I4e2049c109986906d3c985ca2282174b1abff581
2021-02-26 12:42:35 +01:00
Harald Welte 08332307ea cbc: Initial set of CBC tess for osmo-cbc
osmo-cbc is the Osmocom cell broadcast centre.  So far, there was no
TTCN-3 test suite.  Let's change that.

Change-Id: I38286e8a3dd0f39bd25f631dcbb3ff4f8d4c221f
2021-02-22 10:41:29 +00:00
Harald Welte 205b537f6f HTTP_Adapter: split into f_http_tx_request() / f_http_rx_response()
There are some use cases in which we don't want a blocking wait for the
full HTTP request to complete.  Let's split it up in two parts, and
make the existing f_http_transact() a wrapper around them.

Also, enable the generation of the Connect_result primitive to detect
connection failures.

Change-Id: I5c7575c0b58c3606d25d8f8cfccd47cfb7a8c400
2021-02-22 10:41:29 +00:00
Harald Welte ad9d8366f8 HTTP_Adapter: Make timeout configurable
Change-Id: Icdcba367dc12c0f20a733572da250d7db22c03ee
2021-02-22 10:41:29 +00:00
Harald Welte 55e879c647 remsim: factor-out HTTP_Adapter.ttcn
There are other test suites (like osmo-cbc) which can reuse some of
the HTTP utility code that was developed within the remsim test suite

Change-Id: I87a728272d47649e4faa628fad44d6f8673c8169
2021-02-22 10:41:29 +00:00
Pau Espin Pedrol 28652d8724 Implement SystemInformation13 Rest Octets types
Related: SYS#5358
Change-Id: Id8845ebe28a9a6ed79d2d408dc7c1ad8a275b809
2021-02-17 17:08:28 +01:00
Harald Welte 37202770e5 NS_Provider_FR: Fix typos in log lines
Change-Id: I5661ba61dc0de78bc480c49d4aba6436a8694706
2021-02-16 19:03:21 +00:00
Harald Welte c56800066d NS_Emulation: Work around "alive" race condition in IP-SNS
We need to modify the state of each NS-VC within a NS-VCG/NSE once
we receive the final SNS-CONFIG-ACK PDU.  However, sometimes the
IUT sends its first NS-PDU _before_ we even have communicated the
state-change locally to all our NS-VCs.

In order to avoid the problem, let's mark the NS-VCs as alive before
sending the the SNS-CONFIG.  This means we have one RTT more time
to locally propagate the state change to all NS-VCs.

Change-Id: Idac522a81f01553df52dc012cbab15e1c73c0862
Closes: OS#5023
2021-02-13 16:49:25 +01:00
Harald Welte 516c5c7250 NS_Emulation: factor-out as_ns_common_status() altstep
This is a new altstep which groups all handling of NsStatusInd.
Right now it's only used from one place, but upcoming patches
will re-use it elsewhere.

Change-Id: I4e8e7d19c764cc977beb84a6859c9ce73518b653
2021-02-13 16:49:25 +01:00
Harald Welte 3bd182f3b3 NS_Emulation: Factor-out function to broadcast to all NS_VCs
Change-Id: I8cd16031dbbd244dcff74fc8a1cd69e9f8a06dbf
2021-02-13 16:49:25 +01:00
Daniel Willmann 325458ddf7 gbproxy: Fix TC_dl_unitdata test failure introduced by 6ee0126971
This commit used a send template (ts) to match a received BSSGP PDU which
doesn't work due to some differences in the length field.
Use tr_BSSGP_IMSI again and change the template restrictions so it
compiles.

Fixes: 6ee0126971
Change-Id: I85676e96f8d32a9d2c7deadc1d66707b6b8697d0
2021-02-11 15:16:57 +01:00
Harald Welte 24f921baea sccp: Add Tests for SCMG SST procedure
The SST procedure can be used by any SCCP node to test the availability
of a remote SSN.  If the specified remote SSN is available at the
specified PC, a SCMG SSA is returned.  If not, there's a timeout.

Test for SSN=1 (SCMG), another non-SCMG SSN that exists, and for one
SSN that doesn't exist.

Change-Id: If3f5f3144c0ed83d0bda5953522a9d73287c8ba2
2021-02-11 12:00:29 +00:00
Harald Welte e92cc66c62 SCCP_Templates: Make tr_SCCP_UDT work for unspecific templates
Change-Id: Ic77f52f7ec6dc8e17d9cd0789ba790296a25bc50
2021-02-11 12:00:29 +00:00
Alexander Couzens 98ee6f6507 pcu: move generic RAW_NS_CT function to library/RAW_NS
Allow the NS tests to use the SNS functions.

Change-Id: I6c404475f39dd00023eb11e98da93ee423604039
2021-02-09 15:49:15 +01:00
Pau Espin Pedrol 3bc82b494a VTY: Fix warning: control reaches end of non-void function
Change-Id: Ie9415afecbcaf12e210fd4f481fcbb1f5ba52c77
2021-02-08 18:43:17 +01:00
Pau Espin Pedrol fa64e2885b Fix tons of warnings in RLCMAC and pcu
Change-Id: Ia3b7c5f9fdf571f99859027dbab8731ea1a8e830
2021-02-08 18:35:38 +01:00
Harald Welte 42bcc44153 stp: Ignore M3UA SSNM messages in tests
The tests were written without considering the arrival of such messages;
however, it is well within the M3UA spec that such messages appear at
any time indicating remote point code availability etc.

In libosmo-sccp.git Id92be4691b0fd77598a6edb642c028bbd8c5b623 we start
generating those messages in osmo-stp.

Let's ignore them in the tests to avoid unexpected failures.

Later on, we likely will introduce / adapt tests to actually expect
those messages whenever appropriate.

Change-Id: I85ce8fd4f26db184833cf348293f0255bb5eaac3
Related: OS#2623
2021-02-08 17:15:15 +00:00
Pau Espin Pedrol fb14690c81 StatsD_Checker: Check f_IPL4_listen result
Change-Id: Ief4e30ae92b8567dd9618064220f9f50df2d0de0
2021-02-08 12:36:42 +01:00
Pau Espin Pedrol 6ee0126971 Osmocom_Gb_Types: Fix tons of template restriction warnings
Change-Id: I3da153ce5e83b231501e74b958fcac9f10c00849
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 7e88ce91d4 Osmocom_Gb_Types: Fix warning: control reaches end of non-void function
Change-Id: Ic2b8d0215c378ec2fd1a44775dc4e43616ca9f3c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 3855462672 GSM_Types: Fix warning: control reaches end of non-void function
Change-Id: I749fe3a2ca85ae96fa74a78f15180cfaa02ffe84
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 810b1df0d8 Osmocom_Gb_Types: Fix warning: inadequate restriction on the referenced function
Fixes warning:
Osmocom_Gb_Types.ttcn:1377.13-32: warning: Inadequate restriction on the
referenced function `f_oct_or_wc(bmax, 2)', this may cause a dynamic test
case error at runtime

Change-Id: Icb8698c7f2ca697a3638d5a4e4e38f20e14fd34c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol dbc71270df pcu: Fix inadequate restriction on the referenced template parameter
Fixes:
warning: Inadequate restriction on the referenced template parameter
`tfi', this may cause a dynamic test case error at runtime

Same for other parameters.

Change-Id: If2cadbc7087ac0f99537b9916ef0c23363c9242c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 40a0295382 CTRL: Avoid using keyword 'now' as var
Fixes warning: Keyword 'now' is treated as an identifier. Activate
compiler option '-I' to use real-time testing features

Change-Id: I2b350bc93b33f36f72d35cb48d01f6c37ac1630f
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 847a1651cd BSSGP_Emulation: Fix indentation whitespace
Change-Id: Iade336832e7045cd29bae52c7907c6a1c57813cd
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 011e32f8fc BSSGP_Emulation: Fix warning: control reaches end of non-void function
Change-Id: I9a44afc81b5b6b35a32a12efcf2dd1cb15e73e12
2021-02-08 12:31:14 +01:00
Harald Welte 49f3ea818b NS_Provider_FR: Drop received messages until limk+pvc are up
Related: OS#4974
Change-Id: I69f9cf485b0a9eaf9294236f50ffcf4af20f1d20
2021-02-05 21:05:14 +01:00
Pau Espin cf5c33e0cd PCUIF: Allow receiving decoded RR/RLCMAC blocks in DATA REQ
This way tests can match directly on specific RLCMAC blocks, giving the
opportunity to handle different types using altsteps.
Before this, a user of the port could only receive a pcu_msg DATA_REQ
with a octetstring containing the rlcmac block, then decode it in a
second step when already in the alt step.

Related: OS#4927

Change-Id: Id8628e327d16c3a57e680e5a1ba0a2a8874f3a23
2021-02-05 12:01:14 +01:00
Pau Espin 4f9a48fc23 RLCMAC: Fix unbound spb value in decoded egprs data blocks
That field is only present in Header Type 3 blocks.

Change-Id: Ie05576d7d7c18933dd9abcdc055cbfe1e4e54756
2021-02-05 10:14:48 +00:00
Pau Espin ff7c5baaa2 RLCMAC: Fix decoding of dl data block with no llc block header byte
The value was marked as unbound while it should be marked as omitted:

"""
dl_block := { data := { cs := CS_1 (0), mac_hdr := { mac_hdr := { payload_type := MAC_PT_RLC_DATA (0), rrbp := RRBP_Nplus13_mod_2715648 (0), rrbp_valid := false, usf := 7 }, hdr_ext := { pr := PWR_RED_0_to_3dB (0), spare := '0'B, tfi := 0, fbi := false, bsn := 0, e := true } }, blocks := { { hdr := <unbound>, payload := '0D0C8653110FFEF072972C5A790C0317299753B5'O } } } } }
"""

Change-Id: If00338729ee1b2c8a4e100495e7cfa0599a4cb8b
2021-02-05 10:14:48 +00:00
Vadim Yanitskiy 559f5dc6e1 library/L3_Templates: fix: ensure 'no extension' in {ts,tr}_Called
Our definitions contain the minimum for 'CalledPartyBCD_Number',
optional extensions are not supported.  Thus do not indicate their
presence, use '1'B (inverted logic) in both templates.

Change-Id: I448a1f7b71ed7d63d397da2b7d04942b501deaa5
Related: SYS#5340
2021-02-05 09:44:04 +00:00
Vadim Yanitskiy c833465143 library/MGCP_Emulation: fix a copy-pasted comment
Change-Id: If068b653811c836f8e937a6f77d79d0c150c8e63
2021-02-05 09:44:04 +00:00
Harald Welte daf89681c4 NS_Emulation: Avoid g_unblocked_nsvcs_* overflowing
Sometimes we run into situations where the g_unblocked_nsvcs_* is
exceeding the number of NSVCs we have in g_nsvcs.  This can only happen
as we blindly append integers to the ro_integer fields, rather than
checking if they are already contained.

Let's factor out the add_unique and del functions (in Osmocom_Types)
and use them from NS_Emulation.

Change-Id: Ib3273d6ce9b80f700c964d578fdb0f268eac6a14
2021-02-04 17:11:30 +01:00
Harald Welte aaa0dfdd3f Move "ro_integer" to Osmocom_Types
We don't need several re-definitions of a "record of integer" type,
plus associated helper functions.  Let's move that to the shared
Osmocom_Types.ttcn

Change-Id: I6a68ab8180a40b93c540db9cb80941c39c2fb549
2021-02-04 17:11:30 +01:00
Harald Welte 4998a09917 NS_Emulation: Don't respond to NS-STATUS with NS-STATUS
Change-Id: Id9544ed1a7686fe113c4f6671e482bffc84bd2cc
2021-02-04 14:58:22 +01:00
Harald Welte 633805b1c8 BSSGP_Emulation: Support up to 64 BVCs with 64 users each
Increase this from the previous limit of 16 BVC with 16 users each

Change-Id: I8abca1c020d0ba4b89a6045e99d3a9eb7bcc4648
2021-02-03 19:28:00 +01:00
Harald Welte c0c67ff14f NS_Emulation: Handle NS_PROV_LINK_STATUS_DOWN
This happens e.g. if FrameRelay detects a "service affecting condition",
i.e. the link is considered dead.

Change-Id: I7409079f5e2b77cc08ccc93d1b0baa72720cefb8
2021-02-03 19:28:00 +01:00
Philipp Maier 14d3a8e7c3 GBProxy_Tests: fix TC_rim_* tests
The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as
intended.

Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Related: SYS#5103
2021-01-30 19:18:36 +00:00
Pau Espin 77783caf84 CTRL_Adapter: Keep server alive after first client disconnects
It can be expected from CTRL clients to connect and disconnect several
times as several commands are sent, so let's by default enable it (only
user of this CTRL servcer in PCU_Tests needs it).

Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63
2021-01-30 19:18:18 +00:00
Pau Espin 2dc137ccd1 IPA_Emulation: Support keeping server alive after first client disconnects
Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e
2021-01-30 19:18:18 +00:00
Pau Espin a948d14d4d CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down
Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0
2021-01-30 19:18:18 +00:00
Pau Espin 0637ba0728 pcu: Introduce test TC_nacc_outbound_success
Related: SYS#4909
Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26
2021-01-30 19:17:49 +00:00
Vadim Yanitskiy bc1e66a3f1 library/Osmocom_VTY_Functions: make VTY prompt timeout configurable
Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea
2021-01-30 14:23:10 +01:00
Vadim Yanitskiy 26e30aa4e0 library/Osmocom_VTY_Functions: cosmetic: coding style changes
Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45
2021-01-30 14:23:10 +01:00
Philipp Maier e00776c5db Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF
When testing the serving BSS part of the RIM application in osmo-pcu, we
will need receiving templates that allow us to verify the response (RAN
INFORMATION) rim container.

Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d
Related: SYS#5103
2021-01-29 21:18:18 +00:00
Pau Espin 9df362a94f rlcmac: introduce initial support for NACC related messages
Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62
2021-01-29 21:16:25 +00:00
Alexander Couzens 20cd41ec89 Introduce NS test cases
Related: SYS#5208
Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b
2021-01-25 14:14:47 +01:00
Harald Welte 3f82089977 NS_Emulation: Add CTRL port to administratively disable a NS-VC
This feature is useful in simulating intermittent or permanent transport network
outage by simply halting processing of all rx+tx in the specified NS-VC
until it is administratively re-enabled.

Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e
RelateD: OS#4521
2021-01-25 12:48:38 +00:00
Harald Welte be7afce974 NS_Emulation: Respect data_weight==0 or signalling_weight==0
* allow configuration of signalling + data weight for each NS-VC
* advertise per-NSVC signalling/data weight in SNS-CONFIG
* keep track of unblocked NS-VCS separately for data / signalling
* transmit BVCI=0 traffic only over signalling NS-VC
* transmit BVCI>0 traffic only over data NS-VC
* accept incoming BVCI=0 traffic only if signalling_weight > 0
* accept incoming BVCI>0 traffic only if data_weight > 0

Related: OS#4953
Change-Id: I9798e639b4bc8658482945970775b012b5840779
2021-01-20 15:56:31 +01:00
Harald Welte 1308dbbd8f NS_Emulation: Move SNS handling from NS-VC to NS-VCG
We need to move the IP-SNS handling up one layer, as only the NS-VCG
knows all the other NS-VCs, and after the SNS-CONFIG-ACK, we must
mark all of our NS-VCs as alive and start the alive procedure.

Related: OS#4953
Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782
2021-01-18 19:55:03 +01:00
Harald Welte 0b38da55c7 NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG
Don't hard-code the assumption that we only have a single IP[v4] endpoint.

Related: OS#4953
Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3
2021-01-18 19:55:03 +01:00
Harald Welte 3f10c62331 Osmocom_Types: fix formatting of log line (missing ", ")
Change-Id: If4555cd2902e056b32e835daa741ee84b346b922
2021-01-18 19:55:03 +01:00
Harald Welte 04358655bf gbproxy: Add test cases for STATUS handling
We expect the uplink BSSGP status to be routed based in the
inner/contained downlink PDU - and vice-versa.

Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67
Related: OS#4951
2021-01-17 18:16:04 +01:00
Harald Welte f536524b07 BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP
Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756
Related: OS#4951
2021-01-17 18:15:32 +01:00
Harald Welte 112bc1469a Osmocom_Gb_Types: Extend RADIO-STATUS templates
RADIO-STATUS can occur with TLLI, but also with P-TMSI or IMSI.
Update our templates accordingly while keeping backwards compatibility.

Related: OS#4951
Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296
2021-01-17 17:39:29 +01:00
Harald Welte 650bd72849 BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS
We must not dereference the TLLI IE unconditionally

Related: OS#4951
Change-Id: I463b25f5395127d155727d785eb7795ac0165fac
2021-01-17 17:39:29 +01:00
Alexander Couzens c796da8711 remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct
Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4
2021-01-17 15:59:26 +00:00
Alexander Couzens c316572db1 RAW_NS: rework NS connection to use NS_Provider
Previous RAW_NS only supported NS over UDP because
it handled the UDP connection on it's own.
Because of this there was no cleanup function for the tests
because no virtual component were started.
Using the new NS_Provider allows to use the same tests over
UDP and FR with no changes.

Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e
2021-01-17 15:59:26 +00:00
Harald Welte be9bf1e74d Osmocom_Gb_Types: Add templates for various BSSGP PDU types
Related: OS#4951
Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d
2021-01-16 22:54:29 +01:00
Harald Welte 14ac346b5d Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting
Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5
2021-01-16 22:54:29 +01:00
Harald Welte dbd5e677ce gbproxy: Move away from random TLLI
We used to generate a random TLLI for each ConnHldr.  Instead, use a
deterministic function to generate the P-TMSI (just like we do for the
IMSI) and derive a local TLLI from that P-TMSI.

Related: OS#4472, SYS#5002
Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4
2021-01-16 22:50:21 +01:00
Harald Welte bf3976185a Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}()
... and start to use it from BSC_Tests.ttcn

Related: OS#4472, SYS#5002
Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2
2021-01-16 22:50:21 +01:00
Pau Espin 92c19081c7 rlcmac: Add template to match receival of Dl Ctrl message
Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88
2021-01-11 13:54:30 +00:00
Pau Espin 8bd54cf77a library: Add templates to initialize CellId, RAI, LAI
Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76
2021-01-11 13:54:30 +00:00
Alexander Couzens 0c96ff6dba NS_Emulation: remove unused variable res
Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70
2021-01-11 13:42:45 +00:00
Alexander Couzens 6da7aaf6f1 NS_Provider_IPL4: fix typo in comment
Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3
2021-01-11 13:42:45 +00:00
Pau Espin 9a5b8ffc5b CTRL: Introduce support to run osmocom CTRL server
Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255
2021-01-07 15:06:39 +01:00
Pau Espin ec2ee466b7 CTRL: Fix tr_CtrlMsgGet containing invalid value in val field
"val" field is not used in GET commands and is hence set to omit by
TTCN3 decoder.

Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5
2021-01-07 13:35:15 +01:00
Philipp Maier b76a279edf Osmocom_Gb_types: add RIM templates
The template set we use for testing the GB (BSSGB) interface on
osmo-sgsn and osmo-pcu lacks templates to generate RIM (ran information
management) messages. The records and unions are already specified in
BSSGP_Types.ttcn, we just need to form templates in order to be able to
use them.

Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55
Related: SYS#5103
2021-01-05 16:28:20 +01:00
Alexander Couzens d533890fa7 NS_Emulation.ttcnpp: complete SGSN emulation with SNS
The emulation of an SGSN with SNS was incomplete. The SNS
procedure was completed. However the NSVCs didn't moved
into an unblocked state.
Also sending a NS_ALIVE at the beginning is wrong.

Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3
2020-12-21 18:41:31 +01:00
Alexander Couzens 195c9e70c2 PCU_Tests_SNS: improve SGSN originated BVC-RESETs
The BVC-RESETs are a little bit more complicated. The PCU will send
a BVC-RESET after the NSE become available.
Ensure the RESET is received and ignored so there is no race condition
if both sides send a BVC-RESET at the same time.

The test case TC_sns_1c1u_so_bvc_reset is still failing because the PCU can't
handle BVC-RESETs properly (both PTP and signalling).

Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45
2020-12-16 22:27:36 +01:00
Harald Welte 9b461a94a3 sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port
For 12+ days, suspend/resume related SGSN + PCU TTCN3 tets have been failing.

It was the introduction of the BSSGP_CT:GLOBAL test port in
I40d973d80709f5d56f59247e8647b52754f09bc8 +
I805372f3024a0ec2491a24422e02c0bc6dc669d2 which caused the related PDUs
now to no longer show up where they used to.

Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393
Closes: OS#4902
2020-12-10 23:42:03 +01:00
Harald Welte cc3894b612 gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms)
Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d
Closes: SYS#5210
2020-12-10 22:13:25 +01:00
Harald Welte 71449b0a13 bssgp: Introduce "GLOBAL" port for PTP BVC
There are some messages/procedures on a PTP BVC which are not related
to one specific TLLI, but affect the whole PTP BVC.  First and foremost
that is the FLOW-CONTROL-BVC. Let's check if the user is interested in
handling those internally (by connecting to the GLOBAL port).  If not,
fall back to acknowledging all incoing FC-BVC and ignoring all ACKs.

Related: OS#4891
Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57
2020-12-09 15:31:30 +01:00
Harald Welte 27a70cc453 bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG
... to indicate this is about the signaling BVC only.

Change-Id: I646db452c89842465902b5167c9c86de51df1241
2020-12-09 15:30:52 +01:00
Harald Welte 86bdcaa79d Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length
Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391
2020-12-09 15:30:52 +01:00
Harald Welte 0083ea6b69 BSSGP_Emulation: Add RIM port to BSSGP_CT
This port is used for sending/receiving RIM related BSSGP messages. It
exists once per BSSGP_CT Component (i.e. once per NSE), as RIM is global
for the entire NSE.

Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6
2020-12-08 08:30:20 +01:00
Harald Welte da9d9387f6 NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK
Particularly in case both sides initiate a BLOCK or UNBLOCK procedure
at almost the same time, it can happen thet we're already in BLOCKED
state and receive a late BLOCK-ACK or in UNBLOCKED state and receive a
late UNBLOCK-ACK.

Let's just silently discard them instaed of generating NS-STATUS which
may confuse the peer.

Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071
2020-12-07 15:55:20 +01:00
Neels Hofmeyr 2a5670be4f add f_vty_cfg_bts(), f_vty_cfg_msc()
These allow passing N vty configurations on the bts / msc node without
requiring subsequent 'exit'.

As an example, use f_vty_cfg_msc() in BSC_Tests.ttcn AMR config.

Change-Id: I9f3e485f692acb3d2a7620e9b454b372651be78e
2020-11-30 15:59:14 +00:00
Neels Hofmeyr 1a1f854ed2 add f_vty_config3(), to run N commands on a sub-node
f_vty_config2() makes it convenient to enter a specific vty node without
needing to send 'exit'/'end' explicitly. However, to pass multiple
commands on the same node, the VTY would enter and exit the node for
each call of f_vty_config2(). The new f_vty_config3() also allows
multiple commands to be run on that same node without intermediate
exiting.

Change-Id: If969ac645aa82e5a36245d974de2a251633de111
2020-11-30 15:59:14 +00:00
Harald Welte f20af41003 gbproxy: Introduce TC_overload
When the SGSN is sending an OVERLOAD message, we expect that to
propagate down to every BSS on the other side.

Change-Id: Ic61fabd9c633bcb3f256fe7aa5834e66cc66a4fb
2020-11-28 16:14:59 +01:00
Harald Welte c0351d1015 gbproxy: Introduce TC_llc_discarded
This tests the LLC-DISCARDED message, which relates to a BVCI but
is itself sent on BVCI=0.  We expect it transparently passes from BSS
to SGSN.

Change-Id: I98d02d6fa68bddf15b732d06dab00e91e72995d1
2020-11-28 16:12:27 +01:00
Harald Welte f8e5c5dfc7 gbproxy: Test for SGSN-INVOKE-TRACE
Change-Id: I1e46e5c403712eb7972c57e6b6f6eb0850b96ae3
2020-11-28 16:12:27 +01:00
Harald Welte e588792562 BSSGP_Emulation: reo-rder altsteps of per-NSE component
the existing ordering of altsteps unfortunately caused some
receive clauses never to be hit, as they are only in the default
altstep, while more generic receive clauses are already in the
state-specific altsteps.

Let's introduce an as_allstate_pre() and an as_allstate_post() to
solve this ordering problem.

Change-Id: Icc4da95833557931d6685826fb30bdc60bf460c1
2020-11-27 19:18:28 +01:00
Harald Welte bdf96d8412 BSSGP_Emulation: Add MGMT port to per-NSE (BVCI=0) component
We recently introduced a MGMT port in the per-BVC component for the
PTP BVC.  Let's add this also to the signaling BVC.

Change-Id: I24df4cb290c9f9dc1a7398994af101711f12d42e
2020-11-27 19:18:28 +01:00
Harald Welte 3c90515272 BSSGP_Emulation: Send BssgpResetIndication when PTP BVC are being reset
This notifies the user via the MGMT port about the fact that an inbound
BVC-RESET procedure just happened.

Change-Id: I54d0d5e0e06a330a90dfb1da06062d65022efe81
2020-11-27 19:16:58 +01:00
Harald Welte 52cecbb340 BSSGP_Emulation: Fix handling of BsgpResetRequest
We need to change to BLOCKED local state in order to activate
the altstep which handles the inbound BVC-RESET-ACK.

Change-Id: I32ede586f0977b7d96af9fe3ea5fae485184ea98
2020-11-27 19:16:43 +01:00
Harald Welte ab50cc295b BSSGP_Emulation: Fix inbound BVC-RESET
We cannot handle this in as_ptp_allstate(), as the respective clauses
are never hit:  In as_ptp_unblocked() we broadcast all BSSGP messages
without a TLLI, "hiding" the BVC-RESET handling.

Change-Id: Ie3e7a997554e6af42ae7e7294829b6f8d2447d60
2020-11-26 20:57:54 +01:00
Harald Welte ddfc6676d5 BSSGP_Emulation: Implement handling of BVC-UNBLOCK in SGSN role
Change-Id: I7c9cda916f6583613fbf3cdf31f3f08ceadf58d4
2020-11-26 20:57:54 +01:00
Neels Hofmeyr 9ebabc8b0e vty: log failed vty command
Add a log label argument to f_vty_wait_for_prompt(), and feed the sent
command from f_vty_transceive*(), so that the failure verdict already
lists the vty command that caused the failure.

A common error is to issue insufficient 'exit' commands, so that I often
think the newly added VTY command failed, even though it is a subsequent
command causing the failure. I want to shorten the "time-to-aha" there.

Change-Id: Icfd739db150d86e9256a224f12dc979dcd77879f
2020-11-26 01:04:57 +00:00
Harald Welte fba7afdd89 BSSGP_Emulation: Include NSEI in BsgpStatusIndication for PTP BVC
Change-Id: I0d8f18d0e6438a98c75ff24e2a9c8136d8b417d2
2020-11-25 17:14:25 +01:00
Harald Welte 57de220cdb BSSGP_Emulation: Introduce a GLOBAL port in the BSSGP_CT
The per-NSE BSSGP_CT gets a new GLOBAL port which is used for procedures
that are not specific to one BVC, such as the SUSPEND/RESUME related
PDUs, which all are on the signalling BVC without any BVCI in the BSSGP.

Change-Id: I40d973d80709f5d56f59247e8647b52754f09bc8
2020-11-25 17:14:25 +01:00
Daniel Willmann 00c0bbf272 Add templates for LLC_DISCARDED
Change-Id: I587ec89471083e339065f6371ffe6253d49007bf
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 7f1d78e164 Add templates for FLUSH_LL_ACK
Change-Id: I57ef98b9a3022ed5915381504aa129979799bee8
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 379fc250de Add templates for FLUSH_LL
Change-Id: Id432022fdd7f96bc014f0fd81658fa4aa796a688
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Vadim Yanitskiy 42d8bd5012 BTS_Tests: re-organize configuration of TRX/TS params
Change-Id: I9b225249d135399f63d3c7e4c567121dfea63f75
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 802508e696 library/RSL_Types: add 'bs_power_params' to 'RSL_IE_Body'
The value part of this IE is defined as vendor-specific.

Change-Id: I48703c45d26cd88c1d9b5fda1a9df42616cb7cc0
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy bc8ebce10e library/GSM_RR_Types: make ts_MEAS_REP more user-friendly
Change-Id: Ica1ea41ebba5c518d515a211e77ca6651c4173d6
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 05a236a2fc library/GSM_Types: add the Uplink flag to GsmBandArfcn
Change-Id: Ib9bd7268b8a0fd8ed64064871c09fab35e15a761
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 1acc7bb184 library: move Osmocom_Types.Arfcn to GSM_Types.GsmBandArfcn
In some cases GsmArfcn itself is not enough.  It case of L1CTL
and GSMTAP, it needs to be equipped with a band discriminator:

  - DCS / PCS (as the numbers may overlap),
  - Downlink / Uplink (not yet there).

Let's rename this record and move it to GSM_Types.  Also, add
send / receive tamplates, so we can add new fields later.

Change-Id: I7a63f03bbd15a06caafb786122dc12991d115771
2020-11-24 11:58:49 +01:00
Harald Welte 0e18824f3b gpborxy: Implement variety of paging tests for PS-PAGING and CS-PAGING
Change-Id: Ida44b62dfdb9c4ce2755de63d51a9907d34f247f
2020-11-23 14:51:38 +01:00
Harald Welte 80a249aa07 NS_Emulation: Include NS-VCI in NsUnitdataIndication
The primitive normally only contains NSE + BVCI, but in a tester
we actually want to verify which NS-VC a given message has arrived on,
and hence it makes sense to add the NSVCI, too.

Change-Id: I9402bf0be47e5b93c9cfb081eb8f9fa6734c9227
2020-11-21 22:52:51 +01:00
Daniel Willmann 670bbc0c4e Osmocom_Gb_Types: Fix indentation
Change-Id: I4ca156b53dfe9daa190d52a7de46be56cf74099a
2020-11-20 15:09:00 +00:00
Daniel Willmann 05d4638b9b Add templates for BSSGP Radio Status procedure
Change-Id: I6d49eb4907c4568d88da5d6fd7962e388a3607fb
Related: SYS#5210
2020-11-20 15:53:55 +01:00