Commit Graph

64 Commits

Author SHA1 Message Date
Neels Hofmeyr 0ac6315212 msc: add inter-BSC and inter-MSC Handover tests
Change-Id: I7d76c982ad4e198534fa488609c41e8892b268ab
2019-05-09 00:55:11 +02:00
Neels Hofmeyr 2ca1ab492a msc: mo and mt voice call tests: add lots of missing parts
Both f_mo_call_establish() and f_mt_call_establish() were testing barely half a
voice call setup.  For example, f_mo_call_establish() used to be satisfied with
just two CRCX, but no actual RTP connections being made.

Add numerous MNCC and MGCP messages more closely resembling an actual call.

The main reason is to achieve a state that passes both current osmo-msc master
as well as the upcoming inter-MSC Handover refactoring.

Add log markers to f_*_call_*(): often when a test halts, it is not at all
clear why. With these log markers it is saner to figure out what has happened
and what hasn't.

Change-Id: I162985045bb5e129977a3a797b656e30220990df
2019-05-07 01:20:09 +02:00
Harald Welte 9978710c4b bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb
When a MSC releases a connection using the BSSMAP CLEAR CMD, it can
specify that this call was part of CSFB.

The BSC is then supposed to add a special IE to the RR RELEASE
message which will help the phone to switch back to LTE as soon
as possible.

This commit adds a new test case testing for exactly that behavior.

The test does *not* verify if the EARFCN information contained is
actually correct, only that the IE is present in the RR RELEASE.

Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f
Requires: osmo-bsc Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755
Related: OS#3777
2019-02-05 17:45:29 +01:00
Harald Welte 924b6ea17b bsc: replace octet string with decmatch when matching RR RELEASE
The 'decmatch' keyword allows us to match the decoded version of some
octetstring, which is very useful in the situations where we have
the L3 message only as octetstring but want to check if it matches
some L3 template.

Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc
2019-02-05 17:45:29 +01:00
Philipp Maier 9b690e42e1 MSC_ConnectionHandler: Optionally check MM Info
The MM Info message is an optional message that is set to the MS usually
after the location update. It contains the full network name and time
information. At the moment the presence of this message is not checked
or expected since sending of MM-Info is explicitly disabled in the
osmo-msc configu.

This patch adds an optional check of MM Info that is disabled by
default.

Change-Id: I431f50c2ff3536f87f0c7c3caf23b7a38d501904
Related: OS#3615
2018-12-21 17:52:35 +01:00
Stefan Sperling 4c32b952dd start implementing the TC_paging() PCU test
Implement a basic paging test for the PCU, which is passing for paging
via TMSI (but only if osmo-pcu is started after the test is started).

Previously, this test code amounted to a debugging loop which
never terminated.

Change-Id: Id0384e0742ab91983615e4f1c883bb044c1c8b18
Related: OS#2404
2018-11-19 11:10:22 +00:00
Stefan Sperling 26d57be102 support odd-length calling MSISDN in MSC tests
MSC tests were unable to match odd-length digit strings in
a CallingPartyBCD_Number template created by tr_Calling().
This happens because the raw encoder for CallingPartyBCD_Number
pads odd-length digits with 1-bits ('F'H). Do the same when
constructing such a template in our own code to ensure that
we'll match the actual data received.

Change-Id: I34439c8750f588802a5403375e2a3d6e74dae70c
Related: OS#2930
2018-11-18 20:27:53 +00:00
Harald Welte 0cedf2c5db L3_Templates; add tr_ML3_MT_MM_AUTH_REQ_3G()
this allows us to match on specifically 3G MM AUTH REQ, whereas
so far we only had a generic template that matched the 2G and 3G
auth req.

Change-Id: I392d61d1348bee9c88abe4bb938e99b2c3702a94
2018-10-29 00:19:00 +01:00
Neels Hofmeyr bd0ef93d4f bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc
Add f_gen_handover_req() like f_gen_ass_req(), to match AoIP or SCCPlite
requirements.

For incoming HO, MSC_ConnHdlr needs to know the SCCP addresses to expect the
incoming SCCP Connection from MSC to BSC. Add 'handover' section to
TestHdlrParams, and pass in the addresses from test_CT via that.

In osmo-bsc.cfg, add a remote neighbor config, so that the VTY command
'handover any to arfcn 123 bsic any' can trigger an outgoing inter-BSC HO.

Add various BSSMAP handover templates to BSSMAP_Templates.ttcn.
Add RR Ho Command template to L3_Templates.ttcn.

Move ts_BSSAP_Conn_Req() from msc/BSC_ConnectionHandler.ttcn to
library/BSSMAP_Emulation.ttcn, so we can also model an SCCP Connection Request
in BSC_Tests.ttcn (this time from MSC to BSC).

Add the two new tests to bsc/expected-results.xml.

Related: OS#2283
Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03
2018-09-26 07:27:24 +00:00
Neels Hofmeyr 92b12b748c bsc: test Classmark Enquiry
Enhance TC_classmark to also include the BSSMAP Classmark Request -> RR
Classmark Enquiry part. So far it was only testing the return path of RR
Classmark Change -> BSSMAP Classmark Update.

This test will thus fail with current osmo-bsc master, and will succeed as soon
as osmo-bsc If5db638fd6e8d9c2ef9e139e99f0fabe1ef16ddf is merged.

Add:

* ts_BSSMAP_ClassmarkRequest in BSSMAP_Templates.ttcn
* tr_RRM_CM_ENQUIRY in L3_Templates.ttcn

Change-Id: Idaab4d568cf986b4897ba008f6262c839d1592fb
2018-09-18 14:33:42 +02:00
Alexander Couzens 15faf92611 L3_Template: add template ts_GMM_AUTH_FAIL_UMTS_AKA_RESYNC
ts_GMM_AUTH_FAIL_UMTS_AKA_RESYNC send a Authentication & Ciphering failure
to resync the USIM with the HLR.

Change-Id: Ia58dc1483757887ca14cfae19e30f9c91fef5874
2018-09-04 17:15:03 +00:00
Pau Espin 67e47dd328 lib: L3_Templates: Fix DEACT PDP REQ msg type and make tearDownInd optional
Specs state in 3GPP TS 24.008 that TearDownInd IE is optional, so allow
possibility to omit it.

Also fix protocolConfigOpts being passed as parameter but not being used
in template tr_SM_DEACT_PDP_REQ_MT.

Change-Id: I006d64f51c17a22a42a225ddfa4119933e48a022
2018-07-13 19:16:22 +02:00
Vadim Yanitskiy 52f8b6ee1d library/L3_Templates.ttcn: fix f_facility_or_wc(omit)
According to GSM TS 04.80, table 2.5, the Facility IE is optional
for RELEASE COMPLETE message. So, if this IE is omitted, then the
whole TVL shall be omitted. It's time to fix this.

Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461
2018-06-19 22:20:35 +07:00
Alexander Couzens d8604ab9ae L3_Templates: tr_GMM_DET_REQ_MT: use * instead of omit for `cause`
The omit force this field to be not present, while a * allows to be present or not.
As user of this tr I would expect to ignore this field rather than an explicit omit.

Change-Id: Iae91f752789273934a6382bdd474594c3c50bbe9
2018-06-05 13:04:41 +00:00
Vadim Yanitskiy 0319813c41 L3_Templates: add GSM 04.80 RELEASE_COMPLETE message
Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc
2018-06-02 04:55:18 +07:00
Harald Welte 53603961fe L3_Templates: Add templates related to Supplementaryt Services
Change-Id: I919fa542a2e037b3fcf8cd5b0b9d7599b8c09070
2018-05-31 13:30:18 +00:00
Alexander Couzens d62fba5401 L3_Templates: add template tr_GMM_DET_REQ_MT/ts_GMM_DET_ACCEPT_MT
Change-Id: Ifea650994408c4dd83f46f6256565d38968bf843
2018-05-26 21:03:54 +00:00
Alexander Couzens b6ab45606a L3_Templates: add values for c_GMM_DTT_MT_*
GMM detach type values

Change-Id: I4903fa4c915add3062ab6b82a1d39d60426b5681
2018-05-26 21:03:54 +00:00
Harald Welte e613f96593 bts: ciphering tests
Change-Id: If450e36cfd8cde713f304e57ec09bc1239bdf7ea
2018-05-10 18:36:59 +02: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 51affb6e03 L3_Templates: Introudce constants for tiFlag
... this makes the code more readable/understandable.

Change-Id: Ic06eb2016eb9979b8556366e4a909f3c0336aa92
2018-04-09 18:19:36 +00:00
Neels Hofmeyr 6338247395 msc: cosmetic: ts_CM1 template: parameterize esind (Early classmark Sending)
Change-Id: If841fc2c9996bef5b962519a325e18f1c13d2b0f
2018-03-02 00:35:26 +01:00
Harald Welte 68e495b48a bts: Add paging related tests
We're testing at 80% and 200% of PCH capacity, both for either IMSI-only
or TMSI-only paging requests.  The way how we test ensures:

* the expected number of paged mobile identities end up on the Um interface
* we implicitly check the queuing limit of 200 paging records by
  overflowing it in the 20-seconds-of-200%-load cases
* we implicitly check the batching of mobile identities into different
  paging types
* we test the PCH load reporting over RSL

As a side note, in case you were ever wondering what's the expected
paging throughput / capacity, there are now helper functions to compute
it.  For our combined CCCH/SDCCH4, it's about 16 IMSIs per second or
about 32 TMSIs per second.

Change-Id: I0b80b72bdab3d80d915296d70e1174623fbd8610
2018-02-25 12:58:36 +01:00
Harald Welte 7484fc41b4 bts: Type Definition + Template for SI3; Send SI3 at start of test
The BTS needs some of the SI3 parameters like BS_AG_BLKS_RES for
internal computations, so make sure we send it after the connection
has been established.

Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
2018-02-25 12:57:21 +01:00
Harald Welte 57b9b7f1dc Add TC_attach_pdp_act_user_deact_mt for GGSN-originated PDP DEACT
Change-Id: I7eb653694f487f8bbf122146300c93be625b0f87
Related: OS#2961
2018-02-18 22:28:13 +01:00
Harald Welte 6f20316985 sgsn: Add TC_attach_pdp_act_user_deact_mo
Change-Id: I43cb7728658cae6590eb1bd31c7c285b942a265e
2018-02-18 22:04:55 +01:00
Harald Welte 4aacdd8784 L3_Templates: Fix activatePDPContextReject msg_Type
Change-Id: Ibc40502a4e9862ac8d95d77b483dac39ac783e5b
2018-02-18 21:24:05 +01:00
Harald Welte 835b15f799 sgsn: Add TC_pdp_act_unattached
Change-Id: I162ab7cb74102e6f15c4d685c49575bcd0b4f41c
2018-02-18 14:39:11 +01:00
Harald Welte eded9ad578 sgsn: First PDP CTX ACT test: TC_attach_pdp_act
Change-Id: Ia1bfaca99a2a70bb097e2ee44f54e4a31b849a1b
2018-02-18 10:57:02 +01:00
Harald Welte 6abb9fe76f sgsn: Add TC_detach_* for various GPRS DETACH use cases
Change-Id: I2243b850400482b911d687585929a2eef3490954
2018-02-18 10:26:34 +01:00
Harald Welte 91636de6d5 sgsn: Add new TC_attach_rau: Attach followed by RA Update
Change-Id: I8f71bf83f4e6504f1cfbdc55a57e3ed62b3e5f25
2018-02-18 10:26:25 +01:00
Harald Welte 04683d0fb8 sgsn: Add TC_rau_unknown
Change-Id: If33fc690cedcc362c3cd5d7c1951440ecba328c2
2018-02-18 10:25:25 +01:00
Harald Welte 5b7c812e03 sgsn: TC_attach_*_timeout test cases
Change-Id: If8cd9e4387588e8299b7675b8b57392d7da66bd9
2018-02-18 10:18:14 +01:00
Harald Welte 519db89960 L3_Templates: Fix ts_MI_TMSI_TLV / ts_MI_IMSI_LV / ts_MI_IMEI_LV
It seems not all encoder paths properly set typeOfIdentity, so
let's make sure we set it correctly.

Change-Id: Ie35dcf7fec901b786eb2127c1a23f5c161c5778c
2018-02-16 20:03:47 +01:00
Harald Welte b0386dfd30 L3_Templates: More GMM related templates
Change-Id: Idf305731afb9a4c316e7320553705946c3edb633
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
Harald Welte 38575a753b L3_Templates: Add various GMM related templates
... needed for upcoming SGSN testing

Change-Id: I2026c5db3d709566dc3764515d3711b361d82a06
2018-02-16 20:03:47 +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 261af4b501 WIP: Intra-BSC handover testing
Change-Id: Ic47e639a7c8640c736c84a44780fc8e111a64b52
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
Daniel Willmann dcf9eb92f4 L3_Templates: Use tid parameter in ts_ML3_MO_CC template
Change-Id: I6c28b206625cb081a98a722b8c793ce02af74441
2018-02-06 16:23:36 +01:00
Harald Welte e3bd658abf bsc: reduce code duplication; add new test case on too short messages
Change-Id: I8232ee58c14a4358a01b5428ff2b4e559491b185
2018-01-31 23:37:14 +01:00
Harald Welte fbf9b5eafd bsc: Add TC_unsol_ho_fail test case for unsolicited handover failure
Change-Id: Ic3bd71d77d03cb7eebabdf98ba0bfbafd24ec0ea
2018-01-31 20:47:04 +01:00
Harald Welte 898113b838 bsc: Add TC_classmark to test RR CLASSMARK -> BSSMAP CLASSMARK conversion
Related: OS#2902
Change-Id: Idd86b5505e1a4fee666287680a20dc235970be93
2018-01-31 18:50:41 +01:00
Harald Welte ecb254b18a L3_Templates: Add ts_RRM_AssignmentComplete
Change-Id: I3ae33ea00496eaef5885a58cd5fbc491abe68c87
2018-01-29 21:35:13 +00:00
Harald Welte 812f7a45e3 WIP: msc: First test case for mobile terminated call testing
We start the call from the MNCC side, match on the paging and then
pick it up from there.

It currently fails as the MNCC_Emulation cannot yet handle "ConnHdlr
originated" MNCC calls yet.

Change-Id: I28c465187fd8b1dcfd687180b373a47bb9ac6734
2018-01-27 12:45:39 +01:00
Harald Welte 4017d55bbe msc: Make TC_lu_and_mo_call succeed with osmo-mg enabled osmo-msc
This is for patch https://gerrit.osmocom.org/#/c/4980 in osmo-msc

Change-Id: Ieec52d5e0da776d35d6a473bd726b368af9d5c66
2018-01-26 22:53:57 +01:00
Harald Welte b71901a52f msc: Rewrite TC_lu_and_mo_call() to be more modular
All relevant parameters are passed in in form of a CallParameters
record, and the bulk of the work has been moved to
BSC_ConnectionHandler.

Change-Id: I932c6c9f7a48b6a1f1ec399e8bba6a413c8bc69e
2018-01-26 22:53:57 +01:00
Harald Welte 4b2b3a673a L3_Templates: ts_Bcap_voice(): Include speech version octets
Change-Id: Iff48bff6df6fa7dae3bc8467be4d75b0305f68ad
2018-01-26 10:42:53 +01:00
Harald Welte 0195ab1ab1 msc: Add TC_cm_reest_req_reject: Expect CM RE-EST REQ to be rejected
Change-Id: I7d15b935caed2dacf39d66a33ff933a9b8c443d9
2018-01-24 23:05:35 +01:00