Commit Graph

254 Commits

Author SHA1 Message Date
Harald Welte 18ed23cda5 regen-makefile.sh: Put libraries in LINUX_LIBS, not LDFLAGS
Additional libraries to be linked should be in LINUX_LIBS (appended at
the end of the linker command), not part of LDFLAGS (prepended to
the beginning of the linker command).

On binutils 2.35.1 / Debian unstable, without this patch, I get

/usr/bin/ld: IPL4asp_PT.so: undefined reference to `sctp_bindx'
/usr/bin/ld: IPL4asp_PT.so: undefined reference to `sctp_connectx'

which is resolved by this patch

Change-Id: I8a339076f445e3c650e407ae982c7c2dc4a760b2
2020-10-04 21:09:11 +02:00
Neels Hofmeyr 929b406940 update expected results
Change-Id: Icb534a2b00fc48c3ead009a620e6061e595cb581
2020-10-01 06:48:55 +02:00
Pau Espin 956bfd247d msc: Validate RTP addr+port passed from MNCC to MGCP MDCX
Change-Id: I0b53643ed3a8f8550b2ea6e8832068d603a676e1
2020-09-16 10:36:44 +00:00
Pau Espin 563b3d013b mncc: Support IPv6 addresses (new version mncc 7)
Apparently commit 06b859ca31 forgot to
bump the MNCC_SOCK_VERSION field from 5 to 6.

Change-Id: I5448ff931ec33f24f4837a51376f1703fe97683b
2020-09-16 10:36:44 +00:00
Pau Espin 609f1d6c10 msc: Introduce module param to disable crashing test in latest
Otherwise all tests run after ruing MSC_Tests_Iu.control fail.

Change-Id: I46f1066323e19dfe708402a8c9c68e257f62751c
2020-09-15 20:46:00 +00:00
Pau Espin 9a732a4f48 msc: Drop parameter mp_enable_osmux_test
That was needed for osmo-msc <= 1.3.0, and we are at 1.6.1 now.

Change-Id: I8bc0551ec91a5fd8ea2f291a1e16a06a739c7a75
2020-09-15 20:46:00 +00:00
Pau Espin 833174e7fb msc: Introduce tests to verify BSSAP and MGCP handling with IPv6
It tests IPv6 Transport Address are passed correctly through BSSAP, and
forwards handles them correctly as an MGCP client too.

Change-Id: Id616926dd4a9febc4268eea2ee1e377b2d22753a
2020-09-09 12:48:32 +02:00
Pau Espin cb4c59d131 msc: Fix wrong mgcp conn expected in several places
Change-Id: I0bb15881e640fe49552108679894d5df15339fc8
2020-09-07 08:05:28 +00:00
Neels Hofmeyr 14d0b13f5f msc: add TC_paging_response_[it]msi_unknown
These uncover crashes of current osmo-msc master, when a Paging Response
contains an unknown mobile identity. Hence run them last.

The crash is fixed by osmo-msc Ia2c8fa745cfab17ed7114d433f625ddc02ae7b11

Related: OS#4724
Related: Ia2c8fa745cfab17ed7114d433f625ddc02ae7b11 (osmo-msc)
Change-Id: I40496bbccbbd9c496cfa57df49e26f124a2b1554
2020-08-25 11:41:25 +00:00
Neels Hofmeyr 13737fbb5d msc: add TC_cmserv_tmsi_unknown()
We already have TC_cmserv_imsi_unknown, but lack a test that shows CM Service
Request behavior for an unknown TMSI.

Looking at OS#4721 I vaguely expected an ID Request to also happen during CM
Service Request, but instead we reject the unknown TMSI completely, and require
the MS to perform a proper LU subsequently.

Related: OS#4721
Change-Id: I54e5efcf4c31625205c99338379a2055633acde9
2020-08-25 11:41:25 +00:00
Neels Hofmeyr fc06c73f39 msc: add TC_attached_imsi_lu_unknown_tmsi()
The test currently fails with osmo-msc master. It uncovers the evil twin aspect
of osmo-msc's VLR, for an attached IMSI re-attaching with an unknown TMSI.

Related: OS#4721
Change-Id: Ia53733fc5bc414b0e3d3897f25b549f5183c862d
2020-08-25 11:41:25 +00:00
Harald Welte 4d15fa7379 msc: Fix repeated execution of TC_sgsap_unsol_ud()
Change-Id: I6c2f1a5d5b5316ffe462335f8461c31564ce4274
Closes: OS#4722
2020-08-20 06:10:42 +00:00
Harald Welte 4a3fa71d9d msc: Make TC_lu_and_mo_call_sccp_tiar_timeout() more reliable
There is a race condition when shutting down, as a DLCX might arrive
while we are half-shutdown.  Expect both DLCX before terminating
the ConnHdlr.

Change-Id: Ia0342a9bb346929e0e538f4cb571abfc4acac6bf
2020-08-20 06:10:42 +00:00
Neels Hofmeyr f1c3c21ef4 msc: fix log typo in f_tc_cmserv_imsi_unknown()
Change-Id: If7aa20cd7fea81107f3748251070c32bb08f1f4e
2020-08-19 14:19:01 +00:00
Harald Welte 79f1e45436 msc: Expect CommonID from MSC by default
As of osmo-msc Change-Id I2552736477663adb250c55728093500e8ae83ebb,
osmo-msc is always sending BSSMAP CommonID to the BSC.  Let's adjust our
test expectation, while allowing the user to start the tests with
BSC_ConnectionHandler.mp_expect_common_id := false
to get the existing behavior (expect no bSSMAP CommonId) can be
restored, e.g. for testing 'latest'.

Change-Id: I4976d9bb1f07c8ab4ffa02848414f8ddd1bdfd3f
Related: OS#2969
2020-08-19 08:59:13 +02:00
Harald Welte 4698a4c4e3 msc: Use random chosen unused local TCP port number for SMPP client
The existing code passed -1 as TCP port number to the SMPP client.
This - very unintuitively - causes TITAN to always chose port number
9999, as that's the default value in IPL4asp.  Let's use '0' instead.

Change-Id: I4db38f4099c388bed23f9a3611619866ede9cbc5
2020-08-18 23:14:16 +02:00
Neels Hofmeyr 4e18cccb9c msc: verify conn and VLR cell id in most tests
osmo-msc failed to record the Complete Layer 3 Information LAC and CI in the
MSC-A as well as the VLR record. Since osmo-msc
Iee1781985fb25b21ce27526c6a3768bf70d4dc9a and
I194271af2acb37b4f8cc2d106ab2fd2b0d443589, osmo-msc properly records these for
successful Complete Layer 3 procedures.

Incorporate verification of the LAC and CI in all tests calling f_perform_lu()
and f_expect_clear(). Implement by scraping the output of vty
	'show subscriber imsi 1234 conn'

Some tests model a failure to attach, or expire the VLR record: for those, add
parameter verify_cell_id to g_pars, and pass it as false, to skip checking the
LAC and CI.

Disable CI checking for all Iu tests globally in f_verify_vty_lac_ci(), see
OS#4634.

For the latest build, which does not yet record LAC and CI properly, provide
mp_enable_cell_id_test, which skips all cell id verification if set to false.
Put to effect by docker-playground I052fea208021509e12826c50474b96474e7a58c2.

Related: OS#4627
Depends: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a (osmo-msc)
Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004
2020-07-08 01:45:09 +00:00
Neels Hofmeyr 7985aebeb3 move type RAN_Configurations to RAN_Adapter.ttcnpp
So far used only in MSC_Tests.ttcn, but soon to be used also in BSC_Tests.ttcn.

Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306
2020-06-14 10:54:11 +00:00
Neels Hofmeyr a4d2100431 update expected results
Change-Id: I37014274ee97f09985c31966e7cc9122fe11a856
2020-05-19 19:25:35 +00:00
Vadim Yanitskiy 61564be045 library/IPA: split t_ASP_IPA_EVT_UD into send / receive templates
Change-Id: Ib5494bff3f9aa0ac396b729c326e7b4a64c5a5dd
2020-05-18 20:47:14 +07:00
Neels Hofmeyr b58d974ea5 msc: add tests for SMS and voice call while Paging
Start a second
- MT SMS
- MT call
while a Paging is already ongoing.

The second trans being an SMS works.

The second trans being a call fails with current osmo-msc master; a fix is in
the related patch (s.b.).

Related: Idd4537b5f4817d17e5c87d9a93775a32aee0e7be
Change-Id: Ieeae6322d4e80893ea3408c6b74bf8e32bea8e46
2020-05-11 17:33:05 +00:00
Pau Espin e8d7d16f13 Split templates in RLCMAC_{CSN1_}Types into their own _Templates file
RLCMAC blocks have a lot of fields and we will potentially require lots
of different templates, as well as functions to handle related structs.

Change-Id: I9c6597178168aa3848b21930f33be698dd2ce545
2020-04-29 19:07:38 +02:00
Pau Espin 8f24571e56 pcu: Introduce test TC_mo_ping_pong_with_ul_racap
Test sending MS RA capabilities through Packet Resource Request to
update GPRS multislot class.
EGPRS multislot will come in a later commit.

Change-Id: I5026d8b78a3fb82093956b65989d18fa6f6d5424
2020-04-28 16:01:18 +00:00
Vadim Yanitskiy 98bb2d5eea library/GSM_RR_Types: do not duplicate Mobile Identity records
All the records related to Mobile Identity IE (see 3GPP TS 24.008,
section 10.5.1.4) are defined in [1], so there is no real need to
dumplicate them. Moreover, most of the related templates in
library/L3_Templates.ttcn are based on these records.

[1] titan.ProtocolModules.MobileL3_v13.4.0/src/MobileL3_CommonIE_Types.ttcn

Change-Id: I27c2743c59db770d6f7e9447dc8c1f539b228ced
2020-03-28 03:29:22 +07:00
Vadim Yanitskiy 2521906537 MSC: add a test case to check T3212 expiration during paging
Long story short: some time ago I noticed that OsmoMSC crashes if
T3212 expires during the Paging procedure. This is not the case
anymore (as the test case shows) and apparently the bug has been
fixed, hovewer I believe it makes sense to add this test case.

Change-Id: If9147ae8b07d5120d2853b9acda2313910ac48be
2020-01-20 20:54:00 +00:00
Vadim Yanitskiy 2d3f846572 MSC/SMPP: fix RP-ACK expectations in TC_smpp_mo_sms
The MSC shall not send RP-ACK before the response from ESME.

Change-Id: Ide1376cae8e75412039b7dc9f0b8bb390eab2280
Related: OS#4351
2020-01-15 16:08:31 +00:00
Vadim Yanitskiy 3382076554 MSC/SMPP: introduce TC_smpp_mo_sms_rp_error for OS#4351
This test case reproduces the problem described in OS#4351:

  1. MS/UE submits a MO SMS which it getting touted to an ESME;
  2. MSC prematurely responds with RP-ACK to the MS/UE;
  3. ESME responds with DELIVER-SM error;
  4. SMS transaction is already terminated (by RP-ACK).

Expected behaviour:

  1. MS/UE submits a MO SMS which it getting touted to an ESME;
  2. ESME responds with DELIVER-SM error;
  3. MSC terminates the SMS transaction with RP-ERROR.

Change-Id: I33c6ea0ffdf8b8a45f587d690bdceb38fc42c898
Related: OS#4351
2020-01-15 16:08:31 +00:00
Vadim Yanitskiy a358dd4398 MSC/SMS-over-GSUP: cosmetic: use a single log() call to print received PDU
Change-Id: I862766ac87715d5ad141405f343f0563fd75150f
2020-01-15 16:08:31 +00:00
Vadim Yanitskiy da77459579 MSC: fix coding style in f_tc_lu_and_mt_sms_paging_and_nothing()
Change-Id: Ide647f62150b2ca64e12044ae8dae5bb33e600c2
2020-01-15 16:08:31 +00:00
Vadim Yanitskiy 5ef90a033e MSC/Iu: fixup: start 16 BSC_ConnHdlr components in parallel
Since Ibca0e9196c25ab00803041b81f7b490ba2f0a3ba we can have up to
16 components of type BSC_ConnHdlr running in parallel. Both
TC_multi_lu_and_{mo,mt}_ussd test cases have been updated,
but their Iu/UMTS siblings have not. Let's fix this.

Change-Id: Iaa7347e973ee617cc1780b84e0c298f0a302227c
2020-01-13 20:55:25 +00:00
Pau Espin a42745c93b msc: Introduce test TC_(iu_)chan_rel_sccp_tiar_timeout
Verify SCCP T(iar) timeout triggers release of established channel.

Related: OS#4343
Change-Id: Id6488a262e656f5c8fabb4e81f4797b305eb09e2
2020-01-12 13:11:39 +00:00
Vadim Yanitskiy 1c9754dc0d MSC: add test cases for concurrent MO/MT SS/USSD transactions
Both test cases make use of the existing functions:

  - TC_multi_lu_and_mo_ussd: f_tc_lu_and_mo_ussd_single_request(),
  - TC_multi_lu_and_mt_ussd: f_tc_lu_and_mt_ussd_notification(),

starting several (*) BSC_ConnHdlr components in parallel.

(*) The maximum amount is limited by 16 - this is as much
    as both GSUP and SCTP emulation components can handle.

Change-Id: I2fb1c5d285163d5245d92fa24c197a5027ecbe6f
Related: OS#2931
2020-01-10 16:03:27 +00:00
Vadim Yanitskiy ae74774138 MSC: f_ran_register_imsi(): allow passing omit as TMSI
Change-Id: I6dd2f77283a79e83f028115f4cc42f05db885838
2020-01-10 16:03:27 +00:00
Vadim Yanitskiy 70d15bf48f MSC/Iu: fix SS/USSD tests: pass g_pars.tmsi to f_ran_register_imsi()
Makes both TC_iu_proc_ss_abort and TC_iu_proc_ss_paging_fail pass.

Change-Id: If7d58cb50d2810975bd547e4e828783b0255d809
2020-01-10 16:03:27 +00:00
Vadim Yanitskiy 373b054d45 MSC/Iu: add missing SS/USSD test cases from MSC_Tests.ttcn
Change-Id: I99e888708ed1efeab12a4c88c734a78619a39888
2020-01-07 23:30:39 +01:00
Vadim Yanitskiy 2dd9661220 MSC/GSUP: make session ID for MT SS/USSD configurable
This would allow to run multiple SS/USSD transactions in parallel.

Change-Id: I326b5e47f4c1e9f9209efa64c143c3dc64132edb
2020-01-07 21:49:45 +01:00
Vadim Yanitskiy afb15a8424 MSC: fix SM-RP-OA (SMSC Address) expectations for MT SMS
Since [1] we started to match the SMSC Address in f_mt_sms_expect().
That change caused test case failures because OsmoMSC hard-codes
a different SMSC Address. Let's fix this.

[1] Ib467eeca6439bc6cce72293fbb5bb48f6d233db9

Change-Id: I3bdb6a74c8b02e4bf8dc88634e2380c924242b4b
2020-01-05 21:06:43 +01:00
Vadim Yanitskiy eddebaad92 MSC_Tests.ttcn: introduce TC_mm_id_resp_no_identity
While investigating OS#4340, it was discovered that a malformed
MM Identity Request with MI Type '111'B crashes OsmoMSC.

Unfortunately, I could not find a way to encode such an invalid
message in TITAN (because value '111'B is reserved), so I
figured out that '000'B also crashes OsmoMSC.

MM Identity Request is triggered by initiating an Update Location
Request with reserved TMSI value 'FFFFFFFF'O (unknown to the MSC).

Change-Id: I62f23355eb91df2edf9dc837c928cb86b530b743
Related: OS#4340
2020-01-04 11:50:15 +00:00
Vadim Yanitskiy 04dd5f7aa0 MSC_Tests.ttcn: fix: verify the contents of SM-RP-DA/OA for MO/MT SMS
Change-Id: Ib467eeca6439bc6cce72293fbb5bb48f6d233db9
Related: OS#4324
2020-01-03 12:27:17 +00:00
Vadim Yanitskiy a52347ca32 library/GSUP_Types.ttcn: fix MSISDN / SMSC coding in SM-RP-OA/DA
Unlike IMSI, both MSISDN and SMSC address in SM-RP-OA/DA not only
contain the BCD encoded digits, but also a little header with
NPI (Numbering Plan Identification), ToN (Type of Number), and
Extension fields.

Change-Id: I3f55834489f3e613f541cf1e216027e8d48ccaf0
Related: OS#4324
2020-01-03 12:27:17 +00:00
Vadim Yanitskiy 437b5a6c7d MSC/BSC_ConnectionHandler: only keep SMSC address in SmsParametersRp
When sending MO or MT SMS, we never include both SM-RP-DA/OA IEs
at the same time. In case of MO SMS, SM-RP-OA is omitted, and in
case of MT SMS - SM-RP-DA is omitted.

Change-Id: Ia60bdd2498034b6b849f874cf1eee272abef2b47
2020-01-03 12:27:17 +00:00
Pau Espin d3d54a91fa msc: Introduce test TC_lu_imsi_timeout_tmsi_realloc
Related: OS#4336, OS#4337
Change-Id: I603b2b2b1ae7edd6360ea38c6bbbfedc46e9fa5d
2020-01-01 16:12:20 +00:00
Pau Espin 7e9178df28 msc: Remove trailing whitespace
Change-Id: I934dd3504fa91e2006fbc9b1133836060eb0591e
2019-12-17 17:52:42 +01:00
Neels Hofmeyr c3acceca1a msc: expect only one Paging on GERAN
After discussion on this thread:
http://lists.osmocom.org/pipermail/openbsc/2019-November/013058.html

Do not expect repeated Paging on GERAN.

Pending clarification on 3G, still expect repeated Paging on Iu, though we are
not 100% certain that this is indeed required.

Fixes MSC_Tests.TC_lu_and_mt_sms_paging_repeated,
but not MSC_Tests_Iu.TC_iu_lu_and_mt_sms_paging_repeated

Change-Id: Ie914ea88f31ac158f4bd1700143bbe728dd05e0b
2019-12-12 16:28:23 +01:00
Neels Hofmeyr d8ad7c0543 msc: Iu: fix missing 'ran_is_geran := false' for TC_iu_lu_and_mt_sms_paging_repeated
Change-Id: I011795cacf62f2cac6861fe657966795e6370ddb
2019-12-12 16:21:56 +01:00
Neels Hofmeyr d076c52173 msc: fix 2 Iu tests: use f_mm_common() instead of f_mm_auth()
Fix these tests by using f_mm_common(), which takes care of Iu auth+ciph:
TC_iu_lu_imsi_reject
TC_iu_lu_imsi_timeout_gsup

Change-Id: Id2bf160ac4e1cad4770202c6a6f1b8eeeee21d68
2019-12-12 16:21:56 +01:00
Neels Hofmeyr 8df6962dec msc: add f_tc_invalid_mgcp_crash
Make sure that osmo-msc doesn't crash if a successful CRCX response contains an
invalid IP address.

Originally/recently, osmo-msc did not validate the IP addresses at all. In an
intermediate patch I added error handling, releasing the call. That uncovered a
use-after-free problem in libosmo-mgcp-client. This problem is fixed by
osmo_fsm_set_dealloc_ctx() and an osmo-mgw fix (see
I7df2e9202b04e7ca7366bb0a8ec53cf3bb14faf3 in osmo-mgw).

Add this test to make sure the crash is not re-introduced.

Change-Id: I0c76b0a7a33a96a39a242ecd387ba3769161cf7a
2019-11-23 07:59:07 +00:00
Neels Hofmeyr ba960a140d msc: log tweaks for call / call hangup
Change-Id: I06474e3d592195a8c422493166d9f042da1ac7e6
2019-11-23 07:59:07 +00:00
Neels Hofmeyr 8fe8a90da2 msc: add and fix Iu mt call
Change-Id: I3ce29f3d9254656dc295674e8cec72a741b7764a
2019-11-23 07:59:07 +00:00
Neels Hofmeyr 0b16bf1fcb msc: fix Iu mo call
Change-Id: I0ead36333ab665147b8d222070ea5cf8afc555ec
2019-11-23 07:59:07 +00:00