Commit Graph

42 Commits

Author SHA1 Message Date
Stefan Sperling 7437ca33ba add a test for OS#2666
Change-Id: I903ba92a4c7dace8abd924d231ec696350bbc3d4
2018-06-12 17:33:12 +02:00
Vadim Yanitskiy 7d1f9189ca msc/USSD: add single *#100# request testcase
In this testcase we perform LUR, then request our own number and
then expect the response with matching MSISDN.

Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad
2018-06-02 06:11:58 +07:00
Harald Welte d5833a8dcc BSSAP_Adapter: Split f_bssap_start() from f_bssap_init()
In non-handler mode, the SCCP emulation is currently started before
there's a user registered to SCCP_SP_PORT.  If the first BSSMAP
package arrives from the network, then the SCCP_Emulation will crash
as it cannot deliver the resulting SCCP user primitive to the user.

Let's split start from initialization, so user code can still register
something to SCCP_SP_PORT before starting SCCP_Emulation.

Change-Id: I55c94f18531bb7e5369500dc90f4b0ff3a420774
2018-05-27 15:33:27 +00:00
Daniel Willmann 898a7e06cc MSC_Tests: Extend timeout waiting for Clear Cmd in TC_establish_and_nothing
This should fix the bogus failures we are seeing in this test. The pcap
usually shows that the Clear Command does arrive after about 5 seconds,
but sometimes the internal timer fires before that. Double the timeout
of the test here.

Change-Id: I998cfb52a3813dd9f76d3787e4d0d448752ec847
2018-05-17 12:16:16 +02:00
Philipp Maier defd948e0f MSC_Tests: fix iterator in f_init()
With f_init(), the user has the option to specifiy how many bsc
instances should be created. A for loop then iterates over the
prepared configurations and calls f_bssap_init(). The first
parameter g_bssap is tied to index 0 constantly but should be
tied to the iterator i.

- use i instad of 0 as iterator for g_bssap

Change-Id: I490bab70224d236ab576a2ea3863f6d0afd5f22a
2018-05-16 17:55:33 +02:00
Harald Welte f640a01311 msc: Add SMPP tests for MO + MT SMS
Change-Id: I5349559c7c3096533fb07fcf53f0a44ff7f6567f
2018-04-14 21:58:16 +02:00
Philipp Maier c6e06f76ae MSC_Tests: fix TC_mo_crcx_ran_reject
The testcase intentionally responds to the RAN sided CRCX
with a garbeled message to cause the MGCP handlin inside
the MSC to fail. The MSC is then expected not to perform
further MGCP operations since it did not get a proper
response to the first CRCX, so the specific endpoint name
is not known, eventually preventing from doing an MDCX.

However, the testcase responds to incoming DLCX commands,
instead setting the verdict to fail.

Also the altstep that dispatches the message after the
errornous MGCP response unconditionally catches all BSSAP
messages before entering the sub-altstep
as_clear_cmd_compl_disc() that handles the clearing of
the connection. Eventually the clear command is never
received in this sub-altstep.

- Make sure the verdict is set to fail when an MGCP
  message is received after the errornous response to
  the CRCX.

- Remove the unconditional BSSAP.receive in order to
  be able to dispatch the clear command properly

- Update the expected-results.log file

Change-Id: I806491741d310e4410f6cb4ce0309235e9bf4300
Related: OS#2882
2018-04-11 16:50:59 +00:00
Harald Welte f45efeb15e msc: Initial SMS testing (MO + MT SMS, successful case, no SMPP)
Change-Id: I707330454ffab87daebf22ba83e6ba2873996424
2018-04-09 22:53:49 +02:00
Harald Welte b9e86fa815 msc: generate mobile identity inside f_establish_fully()
This reduces the code duplication in every caller of the function.

Change-Id: Iaa071b131a8ff372d70677c8622d227f88e9ea53
2018-04-09 18:19:36 +00:00
Neels Hofmeyr 2b326fa81d fix MSC.TC_lu_clear_request: allow LU Reject, forbid 2nd Clear Cmd
When the MS sends a Clear Request in the middle of a Location Updating, it
should be permitted for the MSC to send a Location Updating Reject back. Extend
with an alt that also allows a LU reject before the Clear Command.

The test explicitly hints at https://osmocom.org/issues/2862 which rightfully
forbids the MSC to send a second Clear Command after the first is completed.
However, this test so far explicitly permits a second Clear Command, so it was
probably passing in error all the time. Set verdict to failure if a second
Clear Command is received before the DISC_IND.

This changes the test verdict to failure with current osmo-msc master,
rightfully so; the failure will be fixed by the upcoming MSC subscr conn FSM
refactoring.

Change-Id: I7bc5555b829d61b0a2529107bc9b58446865545d
2018-04-06 01:17:52 +02:00
Philipp Maier 7593298b36 MSC_Tests: Add support for multiple BSC
The upcomming tests for inter-BSC handover make it necessary to
simulate multiple (two) BSCs to the MSC, while the current
Implementation can only handle one BSC instance at a time.

- Allow multiple BSC instances to be created
- Add a simple reset-test to test what happens when
  two BSC instances are started (BSSMAP reset from two
  different BSCs)

Change-Id: I52a4c8118828c1605cf672889982f987568ad17d
Related: OS#1609
2018-03-28 12:34:54 +02:00
Harald Welte 458fd37fb9 don't use setverdict(inconc) anymore. Use 'fail' at all times
The problem is that Junit-XML doesn't have a mapping for inconclusive
results, and hence they show up as 'passed'.

By introducing this change, we make sure all tests that don't pass
show up as failed.

Change-Id: Iddd13d0055c91f9bd304ce9833fba0485abf4c4e
2018-03-21 11:27:48 +01:00
Philipp Maier 2a98a73be4 MSC_Tests: Test what happens when the DLCX is dropped
Test the reaction of osmo-msc when the DLCX at the end of a call
is not answered. Normally osmo-msc should time out and clear the
connection.

Change-ID osmo-msc:I78f1b6a9149488a4ad3f120c1e190a83c07d4b89 fixes
a regression that causes osmo-msc to segfault due to a use after
free. This testcase provokes the situation that leads to the
crash.

Change-Id: Ic124ea116496209f9a1d8e74ae3e3a36cf866db0
Related OS#2881
Related OS#2882
2018-03-19 16:12:31 +01:00
Harald Welte 5946b33e37 msc: wait for clear-command/complete/sccp-release
Not all tests were waiting/expecting the complete connection
shutdown, which results in the possibility for CLEAR CMD to arrive
during shutdown of the TITAN components and cause related errors.

Change-Id: I3a6c2e1f78b58f86ef84d4e323f432016a9afa7e
2018-03-18 23:33:42 +01:00
Harald Welte bdb3c45a38 msc: Fix TC_cl3_{no,rnd}_payload
It may very well be that the MSC is first accepting the SCCP connection
and possibly sending a L3 (error) message before clearing/closing
the SCCP connection in case of errors in the COMPL L3 info.

Change-Id: I4cf08608413e9e1fb54848849baed79204f5dcd1
2018-03-18 22:46:14 +01:00
Harald Welte edbab816ba MSC_Tests: Fix to use 2-digit MNC
Until recently, OsmoMSC didn't distinguish 2-digit from 3-digit MNC,
and the config file states '42' as MNC while the tester used '042' in
several locations.  This causes almost all MSC_Tests fail with recent
osmo-msc.

Let's fix the tests to use '42', as they should always have.

Change-Id: Id02bfd74127cf5551923912934240035106a8a4e
2018-03-18 17:09:02 +01:00
Philipp Maier 94f3f1bfa6 MSC_Tests: Test SCCP clearing on release timeout
Provoke a timeout error in the MGCP FSM which then triggers a
release on the CC layer. Ignore this release and let the CC leyer
timeout. The MSC is expected to clear the SCCP connection.

Change-Id: If3e0bee11763f1c6b2cfae91f2a818ff7d0df9e7
Related: OS#2881
Related: OS#2882
2018-03-16 11:10:22 +01:00
Philipp Maier f1e02bb46b MSC_Tests: Support wildcarded endpoints (follow up)
The following tests still lack support for wildcarded endpoints:

MSC_Tests.TC_lu_and_mo_call
MSC_Tests.TC_emerg_call_imsi
MSC_Tests.TC_mo_crcx_ran_reject
MSC_Tests.TC_mt_crcx_ran_reject

- Also add support for wildcarded endpoints for those tests.

This is a follow up patch for:
Change-Id I0efeae0f8a6e98deb843e79648f84a262f1d98f8

Change-Id: I16cb2582b9d1764d7cb7e4b787368a4dd5ddf69c
Related: OS#2710
2018-03-16 09:15:32 +00:00
Philipp Maier 4b2692d50b MSC_Tests: Support wildcarded endpoints
At the moment the testsuite is unable to detect when the call agent
performs a CRCX request with a wildcarded endpoint.

- Set a default endpoint name in cpars in case the MSC does
  a CRCX request with wildcarded endpoint name.

- Detect if the MSC supplied a wildcarded endpoint name. Do
  not overwrite the default setting in cpars then.

- Attach the endpoint name as Z: parameter in the response so
  that the MSC knows which endpoint to use. (Unconditional,
  does not harm on non wildcarded requests)

Change-Id: I0efeae0f8a6e98deb843e79648f84a262f1d98f8
Related: OS#2710
2018-03-14 21:08:20 +00:00
Philipp Maier 8e58f596dc MSC_Tests: Respond to BSSMAP release
The testcase TC_mo_crcx_ran_timeout does not respond to the BSSMAP
relase request that is sent when the MGW times out.

- Acknowledge the release request before waiting for the MSC
  to clear the SSCP connection

Change-Id: Ifcf9ebd2cc5184524ecae735257ed12a0ca70f71
Related OS#2881
Related OS#2882
2018-03-14 12:33:34 +00:00
Philipp Maier 328d166dbb MSC_Tests: Add testcase TC_cr_before_reset
This testcase triggers a bug in the BSSMAP reset logic that tricks
the MSC into a deadlock situation. The bug can only be triggered on
a freshly started MSC, otherwise the testcase will not have any
effect at all. That's why it its important that this is the first
testcase to be executed. If the IUT (MSC) is still affected by the
bug. It will enter the deadlog situation and all subsequent testcases
should fail until the IUT (MSC) is restarted. The matching real-life
scenario would be that the MSC restarts. The BSC is not informed by
the restart, so it continues to make connections (which fail) until
it notices that the MSC was down and the execution of a BSSMAP reset
procedure is required.

See also Gerrit Change Id:
I3fdcec5dbeaa0e21fd6a92568a623faa368239be

Closes: OS#4120
Change-Id: I1d7575e5bec9edabcc832c754d19dc5ba489861a
2018-03-07 18:40:44 +01:00
Neels Hofmeyr 1b3c6e3cc7 msc: add TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug (OS#2947)
To trigger the segfault described in OS#2947, run TC_lu_imsi_auth_tmsi_encr_3_1
with logging category for MSC to set to debug.

Change-Id: I72a1dbb30e0a39dbf4b81c7e378d5607b62e10d3
2018-03-02 00:35:25 +01:00
Neels Hofmeyr 29b8da0011 msc: add TC_lu_imsi_auth_tmsi_encr_3_1_no_cm
This is a variation on TC_lu_imsi_auth_tmsi_encr_3_1 that "indicates" inability
of A5/3 by completely omitting a Classmark2.

Add flag send_cm_update to f_tc_lu_imsi_auth_tmsi_encr_3_1() so that we can
easily omit the classmark update. Set this flag to true in existing
TC_lu_imsi_auth_tmsi_encr_3_1, and add pass false from the new test.

Change-Id: I903136d5acbd88f2e0e26fee22e3878258e04786
2018-03-02 00:35:25 +01:00
Neels Hofmeyr 9adaa70e78 msc: cosmetic: pass BSC_ConnHdlrPars to f_start_handler() as argument
Previously, f_start_handler() would initialize the BSC_ConnHdlrPars instance,
making it impossible to change those parameters before the test function was
invoked.

Add separate f_init_pars() function that sets the default parameters.

Change f_start_handler() to take a BSC_ConnHdlrPars argument; i.e. that
f_init_pars() can be called first, the parameters can then be modified and
finally fed into f_start_handler().

Change-Id: I46de36a032c2473025d0eb01e5909dbcdaf394f7
2018-03-02 00:35:24 +01:00
Neels Hofmeyr c1f105acb8 msc: cosmetic: f_perform_lu() / pars: move send_early_cm to BSC_ConnHdlrPars
By moving to the BSC_ConnHdlrPars, also the tests that expect a LU failure able
to indicate a send_cm_update flag.

All current callers of f_perform_lu() pass send_early_cm as 'true', all are
covered by a default of 'true'.

Change-Id: Ic882293f199a33133a171bff14ff433f99cc8576
2018-03-02 00:35:23 +01:00
Neels Hofmeyr e9b8eebfc3 msc: cosmetic: f_start_handler(): drop the id arg, use testcasename()
Change-Id: Id4efe8cd00f44ea744996efe04802c5107f2a191
2018-03-02 00:35:20 +01:00
Harald Welte 872ce17d35 move f_vty_config() from MSC_Tests to Osmocom_VTY_Functions
Change-Id: Ie7373c28b1d2b76f8d637ac6c86976fd341e3e2c
2018-02-18 10:23:41 +01:00
Harald Welte 158a7ca881 Add L3_Common for shared L3 functions between MSC and SGSN testing
Change-Id: I16e80df610235849180dc946f9457302deafb9d2
2018-02-16 20:03:47 +01:00
Harald Welte e5695f5544 msc: move f_gen_{imei,imsi,msisdn} to L3_Templates.ttcn
This allows them to be reused in upcoming SGSN tests.

Change-Id: I0459eeb44e58342da656f2312560466698374b72
2018-02-16 20:03:47 +01:00
Daniel Willmann 90829d6eff MSC_Tests: Set verdicts from inconc to fail
Channels not being closed/cleared at the end of the test is a clear
failure, so don't mark the test as inconc.

Change-Id: Ie9188111da744f0aafaac02841d36a957bfc8d86
2018-02-15 17:45:14 +01:00
Daniel Willmann 5868e62e21 MSC_Tests.f_tc_mo_crcx_ran_reject(): Send release complete to release
Change-Id: I8a19541f3276b994ed34a1d3f9920010660a2ddd
2018-02-15 17:42:59 +01:00
Daniel Willmann 8b084374b5 MSC_Tests: Add CC sequence no. test with DTMF
Change-Id: I9674343acc18187b9e016bd8e0be470d5424046f
2018-02-15 10:29:01 +01:00
Harald Welte a4ca446034 WIP: Prepare MSC_Tests for ability to emulate two BSCs
Change-Id: Ibe3ae6ed4181c6ba7501f5443b4f22e3c8abeb3e
2018-02-13 08:15:33 +01:00
Harald Welte 33ec09bf34 msc: Mobile Terminated Voice Call test
Change-Id: I4fa353623991ac98726217559fea9f83f64715ea
2018-02-11 11:49:48 +01:00
Harald Welte 0bef21e645 msc: Add Emergency call to f_mo_call() and use it from TC_emerg_call_imsi
This fixes TC_emerg_call_imsi with current osmo-msc master. The old
implementation was broken as it didn't deal with MGCP yet.

Change-Id: Ic35797931387b078205269365421ad730db7af15
2018-02-10 11:06:55 +01:00
Harald Welte 081b19a791 msc: Unify channel establishment for CM SERV REQ + PAGING
Change-Id: I24e3dfa1ef88c48c39bf0248074e88e682bc8404
2018-02-10 11:06:55 +01:00
Daniel Willmann 4bd9955045 MSC_Tests: Make imsi suffix for f_start_handler unique per test
Change-Id: I02d1f2ac717fee278e3903d325942697637a5d28
2018-02-06 16:23:36 +01:00
Harald Welte aa54cf8b7b msc: Disable t310 test for now (seems to never terminate on TITAN 6.1.0)
Change-Id: I1e8d1101cfea6d861f02cca52f3dc2d1453c33f8
2018-01-30 08:16:05 +01:00
Harald Welte 9de8479399 msc: Cipher mode negotiation test
This adds a series of test cases that test various combinations of
A5/0, A5/1, A5/2 and A5/3 on both phone as well as network config
side.

Change-Id: I552fa4a23b7b65613a69b1a822e28e7dea401102
2018-01-28 01:08:18 +01:00
Harald Welte de37149345 msc: Introduce BSC_ConnHdlrNetworkPars
This record collects information about the network configuration,
such as whether or not authentication, tmsi allocation and/or
encryption are enabled.  The individual helper functions can then
react according to this information, without having to pass long
argument lists along the call chain.

Change-Id: I01a931f1cbbca4593fff2fd12689f040ceaa79b6
2018-01-28 01:08:18 +01:00
Harald Welte 6126fb0ee0 msc: Make MGW ip/port parameters configurable as module parameters
Change-Id: I9148ebd687a1cf96a4b8c433e771785e30216cbc
2018-01-27 20:08:41 +01:00
Harald Welte 3c68a54896 msc: rename sub-directory from msc_tests to msc (to be in line with bsc, etc.)
Change-Id: Ib219dee5e587bca3b79d29d631836cf1ef2be81c
2018-01-27 19:10:07 +01:00