Commit Graph

167 Commits

Author SHA1 Message Date
Pau Espin dc27e483c8 sgsn: Add test to verify restart_ctr during echo req/reply.
Currently test doesn't fully work because it doesn't match the PDP CTX
DEL REQ correctly.

Change-Id: I1dcb250dba2079c14b857c0b89a02ac21d1c591f
2018-07-13 19:16:22 +02:00
Pau Espin 8466722f3f sgsn: f_pdp_ctx_deact_mt: force teardown to avoid sgsn ignoring msg
According to
"""
If a GSN receives a Delete PDP context without a Teardown In
dicator or with a Teardown Indicator with value set to
"0" and only that PDP context is active for a PDN connection, then the
GSN shall ignore the message.
"""

Change-Id: Id5d4774d719685631e4b467dff833ae886c90145
2018-07-13 19:16:22 +02:00
Pau Espin a4cecf5af7 Add README.md file for several suites
Content grabbed from [1] and converted to markdown as it's more probable
to have it displayed correctly on popular git repo hosting platforms.
Syntax for embedded graphviz taken from [2].

[1] http://git.gnumonks.org/laforge-slides/plain/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.adoc
[2] https://github.com/stlehmann/markdown-graphviz

Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f
2018-06-14 18:55:36 +02:00
Alexander Couzens 0085bd7148 sgsn: add TC_attach_check_complete_resend()
MS -> SGSN: Attach Request IMSI
MS <- SGSN: Identity Request *
MS -> SGSN: Identity Response *
MS <- SGSN: Attach Complete 5x

Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce
2018-06-14 01:55:31 +02:00
Alexander Couzens 0ca0d9caf1 sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept
The test expect a reject. Recv an attach accept should fail then.

Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500
2018-06-14 01:55:31 +02:00
Alexander Couzens f9858658f9 sgsn: add TC_attach_closed_add_vty
Check acl policy closed.

VTY-> SGSN: policy close
MS -> SGSN: Attach Request
MS <- SGSN: Identity Request IMSI
MS -> SGSN: Identity Response IMSI
MS <- SGSN: Attach Reject
VTY-> SGSN: policy imsi-acl add IMSI
MS -> SGSN: Attach Request
MS <- SGSN: Identity Request IMSI
MS -> SGSN: Identity Response IMSI
MS <- SGSN: Identity Request IMEI
MS -> SGSN: Identity Response IMEI
MS <- SGSN: Attach Accept

Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20
2018-06-14 01:55:31 +02:00
Alexander Couzens cf81896465 sgsn: add TC_attach_check_subscriber_list
MS <-> SGSN: Attach
VTY -> SGSN: Check if MS is in subscriber cache

Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a
2018-06-12 19:23:17 +02:00
Alexander Couzens 09040eff01 sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response
There shouldn't be any update location pending

Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a
2018-06-12 19:23:14 +02:00
Alexander Couzens 49bb4b499f sgsn: add TC_attach_detach_check_subscriber_list
MS <-> SGSN: Attach
MS ->  SGSN: Detach Req (Power off)
VTY -> SGSN: Check if MS is NOT in subscriber cache

Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa
2018-06-12 19:22:52 +02:00
Alexander Couzens 53f2056571 sgsn: add TC_attach_no_imsi_response
Ignores Identity Request IMSI.

MS -> SGSN: Attach Request TMSI (unknown)
MS <- SGSN: Identity Request IMEI (optional)
MS -> SGSN: Identity Response IMEI (optional)
MS <- SGSN: Identity Request IMSI
MS -x SGSN: no response
MS <- SGSN: re-send: Identity Request IMSI 4x
MS <- SGSN: Attach Reject

Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da
2018-06-12 19:22:50 +02:00
Alexander Couzens 667dd7fa84 sgsn: add TC_attach_no_imei_response
Ignores Identity Request IMEI.

MS -> SGSN: Attach Request IMSI
MS <- SGSN: Identity Request IMSI (optional)
MS -> SGSN: Identity Response IMSI (optional)
MS <- SGSN: Identity Request IMEI
MS -x SGSN: no response
MS <- SGSN: re-send: Identity Request IMEI 4x
MS <- SGSN: Attach Reject

Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5
2018-06-12 19:21:16 +02:00
Alexander Couzens 234c588b72 sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short
These tests failed on jenkins.

Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04
2018-06-12 13:51:14 +02:00
Alexander Couzens ace6fc65be SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update}
Fixes: 6c47f29495 ("SGSN: add TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update}")
Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa
2018-06-12 13:51:14 +02:00
Alexander Couzens 02496257f6 *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP
PARALLEL | VERDICTOP will log when the port is dying or when other
components will change to fail. This helped to find a timeout in the
SGSN tests where a function call message timed out.

Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0
2018-06-12 13:51:14 +02:00
Neels Hofmeyr beb58a6020 update expected results: bsc, sgsn
Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa
2018-06-07 15:47:26 +02:00
Alexander Couzens 5e307b49ab SGSN: add TC_hlr_location_cancel_request_update
MS <-> SGSN: GMM Attach
HLR -> SGSN: Cancel Location Request
HLR <- SGSN: Cancel Location Ack

Change-Id: I5d3a818eb0a4eb3b0d4bd7bd88874bd2ac6adb11
2018-05-29 16:08:23 +00:00
Alexander Couzens 6c47f29495 SGSN: add TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update}
Cancel Location using an unknown IMSI.

HLR -> SGSN: Cancel Location Request
HLR <- SGSN: Cancel Location Error

Change-Id: Iad90c3cc25d72b9ab40e358fe60aa6f62163f146
2018-05-26 21:03:54 +00:00
Alexander Couzens c87967a022 SGSN: add TC_hlr_location_cancel_request
MS <-> SGSN: GMM Attach
HLR -> SGSN: Cancel Location Request
HLR <- SGSN: Cancel Location Ack
MS  <- SGSN: Detach Request
SGSN->   MS: Detach Complete

Change-Id: Id5d6b018a5a4389eefa8f5d950324aab91709f5a
2018-05-26 21:03:54 +00:00
Alexander Couzens 5844d5b2ec sgsn: fix a typo in comment
Change-Id: I061aba5af1e466b33472c9f829b982823bcff71e
2018-05-15 20:54:37 +00:00
Alexander Couzens 80ec1ea42d sgsn: fix RAU_ATTACH not to interact with following testes
TC_attach_rau will interact with the following tests, because the sgsn
is continuing sending RAU_ACCEPTs until it timed out or received a
RAU COMPLETE

Change-Id: Idac92bd61ee7145b7542e60c24e0a66b4ff7ddd4
2018-05-15 18:59:14 +02:00
Harald Welte 8e8cd67b81 update expected results
Change-Id: I65f72e9a8a9031a9715c7c2237824a45d7d8bef1
2018-05-10 23:11:54 +02:00
Alexander Couzens 187ad5da87 sgsn: add test for attach_second_attempt
Do an attach direct after an attach succeeded.
Relates: OS#2958

Change-Id: I767c3e3b0af6e7c6a1f9436fd17e2f515b0bbd05
2018-05-03 04:25:10 +02:00
Alexander Couzens 8f0fb009b7 sgsn: fix typo in comment of BSSGP_ConnHdlrPars:imsi
Change-Id: I544a626d914075c0fcf13017553017b898525e8c
2018-05-03 04:25:08 +02:00
Neels Hofmeyr de17222ead update expected results
bsc:
  TC_assignment_sign fails with different message

msc
 fixed:
  TC_lu_clear_request
  TC_emerg_call_imei_reject
  TC_cm_serv_req_vgcs_reject
  TC_cm_serv_req_vbs_reject
  TC_cm_serv_req_lcs_reject
  TC_cm_reest_req_reject
  TC_cl3_rnd_payload
  TC_lu_and_mt_sms
 new:
  TC_smpp_mo_sms
  TC_smpp_mt_sms

sgsn fixed:
  TC_attach_umts_aka_gsm_sres

Change-Id: Ie9ef25fb2081ebab7a2b08c06307fa391f8f747a
2018-05-02 12:03:52 +02:00
Neels Hofmeyr 0ecb2e3516 sgsn: test umts aka with gsm sres response
Add ability to test UMTS AKA, by f_gmm_attach() with flags to select UMTS AKA
and to respond to it with GSM AKA SRES.

Add TC_attach_umts_aka_umts_res and TC_attach_umts_aka_gsm_sres.

Change existing TC_attach_* to also call f_gmm_attach(). (Actually,
f_gmm_attach() is almost exactly the previous TC_attach function body.)

osmo-sgsn change I36807bad3bc55c0030d4f09cb2c369714f24bec7 will implement
proper handling of GSM AKA response and make TC_attach_umts_aka_gsm_sres pass.

Related: OS#3193 OS#3224
Change-Id: I201ffeaee4439a413ab8289aceeccca9aba40a7a
2018-05-02 09:14:36 +00:00
Neels Hofmeyr fc0384a046 mask timestamps and source file nrs in expected-results.xml files
Prepare for upcoming updates with concise diffs.

Change-Id: Ic9f006aa8db1b477598605e0525faeb229b03641
2018-04-11 19:32:01 +02:00
Neels Hofmeyr 1fd6679d9d fix build: don't clean out expected-results.log: rename to *.xml
'make clean' as generated by ttcn3_makefilegen removes all *.log files, which
of course cleans out expected-results.log, which should not happen. Since this
is a junit XML file, rename the suffix to .xml.

Change-Id: Ic334f6b758eef865e3a497aa430691a3ae696d25
2018-04-11 19:29:18 +02:00
Neels Hofmeyr 3cf797d7a5 add compare-results.sh, call from start-testsuite.sh
Compare current test results to the expected results, and exit in error on
discrepancies.

Add compare-result.sh: (trivially) grep junit xml output to determine which
tests passed and which didn't, and compare against an expected-result.log,
another junit file from a previous run. Summarize and determine success.

Include an "xfail" feature: tests that are expected to fail are marked as
"xfail", unexpected failures as "FAIL".

In various subdirs, copy the current jenkins jobs' junit xml outputs as
expected-results.log, so that we will start getting useful output in both
jenkins runs and manual local runs.

In start-testsuite.sh, after running the tests, invoke the results comparison.

Due to the single-line parsing nature, the script so far does not distinguish
between error and failure. I doubt that we actually need to do that though.

Related: OS#3136
Change-Id: I87d62a8be73d73a5eeff61a842e7c27a0066079d
2018-04-06 01:07:15 +02:00
Neels Hofmeyr 8df7d15a66 sgsn: test GMM Attach with 3-digit leading-zero MNC
Add general infrastructure to
- pass an MCC-MNC for BSSGP to use into f_init();
- verify that the Attach Accept PLMN matches the BSSGP one.

Add TC_attach_mnc3() to feed an MNC with three digits and a leading zero, to
verify the recent mnc3 patches. When testing against a libosmocore and
osmo-sgsn before mnc3, this results in:

Test case TC_attach_mnc3 finished. Verdict: fail reason: "mismatching PLMN in Attach Accept: 02342F; expected 023042"

With the current master branches the proper 3-digit MNC with leading zero is
fed back into the Attach Accept message.

Change-Id: I8901ec0b090e342ebb04a04f9d759fc46c7d9cab
2018-03-16 18:47:19 +01:00
Neels Hofmeyr cd11223c0f ignore results of .ttcnpp files
Add another macro ignore_pp_results to gen_links.sh.inc and call from all
gen_links.sh files, to add results of *.ttcnpp files, i.e. generated *.ttcn
files, to .gitignore.

Change-Id: Ic7fb176226771212d7700dafaf27ac71f12a4a61
2018-03-16 18:25:58 +01:00
Neels Hofmeyr 1a4c4601d7 fix gen_links.sh: don't include source dir as link target
First of all, use one common place to define the gen_links() macro, in
gen_links.sh.inc.

In this new file, add a 'shift' to exclude the $DIR arg from also appearing in
$FILES.

This prevents the following wrong symlinks in the source dirs:

  M3UA_CNL113537/src/src
  MTP3asp_CNL113337/src/src
  SCCP_CNL113341/src/src

Change-Id: Ia8493e77df1ba8723f2c5d2a49816247b0fb55f7
2018-03-16 00:08:02 +01:00
Harald Welte 99ca30ce2e remove *.default from [EXECUTE] in *.default files
The problem is that the .cfg file cannot override the [EXECUTE]
provided list of tests

Change-Id: I7e1e0499b3b32014b25ae4b515263f57a4ea6daf
2018-03-13 14:30:55 +01:00
Harald Welte df277258f1 IPA_Emulation: Make dependencies to RSL/MGCP/SCCP/GSUP conditional
Let's use the preprocessor to avoid IPA_Emulation pulling *all*
dependencies into each and any of our projects.  The code readability
suffers a bit from the many #ifdefs, but compilation speed increases
if we don't have to pull in all those (recursive) dependencies.

After all, a BTS test case will never need SCCP, GSUP or MGCP.

Change-Id: Ic0231adbd2171214de133d26b3fbf36130ee8aa0
2018-02-20 16:17:17 +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 5b5ca1b1e7 sgsn: Add new TC_attach_pdp_act_ggsn_reject
Change-Id: I2da2b3811e843003920cd67ac47f2fc03016912f
2018-02-18 21:25:03 +01:00
Harald Welte 1d6ae939b6 sgsn: Use random TEID and Charging Identifier
Change-Id: I39934396372b057eaf5446e9185e83a1d56c153c
2018-02-18 21:24:44 +01:00
Harald Welte 822f910674 sgsn: More comments
Change-Id: Ie64bfc43b2d652f1f556628deb26544217a8286c
2018-02-18 20:39:06 +01:00
Harald Welte 37692d84e9 sgsn: Add user plane GTP testing (GTP->Gb and Gb->GTP)
Change-Id: Ifd62cca8cd9dbcffe4eac957db210ac13b8c633f
2018-02-18 20:23:31 +01:00
Harald Welte 3fdbe82065 sgsn: Reduce logging verbosity of IPA/GSUP/NS/BSSGP
Change-Id: I55d1299ceaad1257959b298741a7321faacc4b45
2018-02-18 19:47:09 +01:00
Harald Welte a2526a85d3 BSSGP_Emulation: Add SNDCP decoding support
Change-Id: Icd2e8feed9173b0a2729b7ee1cfac37a86eca6cf
2018-02-18 19:47:04 +01:00
Harald Welte f58a022221 sgsn: Fix hard-coded emulated GGSN IP addresses
Change-Id: Iaf42c25b4c345969c2aec209a6db6e56b69f15e3
2018-02-18 19:45:11 +01:00
Harald Welte 7aff2ca8cd sgsn: GTP Create PDP: Include missing required "Charging ID" IE
Change-Id: I7e4b71d7ca6e75f759f77fb47abc9816c0aa716d
2018-02-18 19:45:11 +01:00
Harald Welte f8af5d6b27 sgsn: Store SGSN-side control + user plane IP addresses
Change-Id: Ic82910917167e667cfb26eb084f237140b4c986e
2018-02-18 15:06:42 +01:00
Harald Welte 835b15f799 sgsn: Add TC_pdp_act_unattached
Change-Id: I162ab7cb74102e6f15c4d685c49575bcd0b4f41c
2018-02-18 14:39:11 +01:00
Harald Welte 28307080a0 sgsn: Fix syntax errors introduced in PDP Context Act patches
those were undetected as 'sgsn' is not yet part of the subdirectory
list in the master Makefile :/

Change-Id: I46b2baa10cc5a20cd0cb9c0bf32cc0e1a19d38e6
2018-02-18 12:14:38 +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 f70997db90 sgsn: Implement TLLI assignment/modification/unassignment
It's important that we implement the proper TLLI handling whenever our
P-TMSI changes.

Change-Id: I5b95b9e49f0a1db9659714c4d01f340fd44fafe8
2018-02-18 10:26:09 +01:00
Harald Welte 311ec27f42 sgsn: Reduce code duplication by introducing f_gmm_gsup_lu_isd()
Change-Id: I7a43eaa75201fc6c3afba67f6161aef872aca546
2018-02-18 10:25:56 +01:00
Harald Welte 23178c590e sgsn: Reduce code duplication by introducing f_mi_get_lv()
Change-Id: I8b970049074f5de9051a5a791278cd5d29f9d5ed
2018-02-18 10:25:49 +01:00
Harald Welte b7c14e983c sgsn: Add TC_attach_gsup_lu_reject
Change-Id: Id36733e7e51b252407c7513d8441db9a555fd30d
2018-02-18 10:25:47 +01:00
Harald Welte fe25388c39 Implement TC_attach_auth_sai_reject
Change-Id: I8a27c26bb2b6372faccd34c48a597a57783a924f
2018-02-18 10:25:36 +01:00
Harald Welte 04683d0fb8 sgsn: Add TC_rau_unknown
Change-Id: If33fc690cedcc362c3cd5d7c1951440ecba328c2
2018-02-18 10:25:25 +01:00
Harald Welte b2124b21ba sgsn: Add TC_attach_closed for "auth-policy closed"
Change-Id: Ic8aa77d1825fa2e39a09c3f0f0918ef24a3b3f7b
2018-02-18 10:24:09 +01:00
Harald Welte 76dee09c7f sgsn: Add TC_attach_accept_all for "auth-policy accept-all"
Change-Id: I9501595126abf15c9e8b25f06897cf62ab99d8f2
2018-02-18 10:23:54 +01:00
Harald Welte bd194720ad sgsn: Integrate VTY access into SGSN_Tests
Change-Id: I661963368a285ab9358d7f4845b42dc70c35a553
2018-02-18 10:23:41 +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 1967d47ea1 sgsn: Ensure ATTACH is always only for GPRS, not combined
OsmoSGSN doesn't do combined GPRS+IMSI Attach.

Change-Id: Ib11f5d720a0e4e1d574982d1f33ba9aaa6b3a3cf
2018-02-18 10:23:33 +01:00
Harald Welte 3823e2ea77 sgsn: Add TC_attach_combined
Change-Id: I87700d89389f4adb60a056d139674bb5f5addf7b
2018-02-18 10:18:14 +01:00
Harald Welte 5b7c812e03 sgsn: TC_attach_*_timeout test cases
Change-Id: If8cd9e4387588e8299b7675b8b57392d7da66bd9
2018-02-18 10:18:14 +01:00
Harald Welte 62e2958e49 sgsn: Introduce global guard timer
Change-Id: I0c1fd2a38a4f412079b5f28302b15124d9fd3b3d
2018-02-18 10:18:14 +01:00
Harald Welte 5a4fa04ec4 sgsn: Use Random RAI when performing attach request
Change-Id: Id349c7cd0899d6b87114a3ece8bc2ee625f64116
2018-02-18 10:18:14 +01:00
Harald Welte 14a0f94881 sgsn: Use random TLLI when performing ATTACH
Change-Id: If104add9a6d029b674e46e01af71f2e336aa35f0
2018-02-18 10:18:14 +01:00
Harald Welte 5ac3149d99 First actual SGSN test case
Change-Id: Id66ddf8dbe1c5cfa96a087235588ba67763b7f05
2018-02-18 10:12:31 +01:00
Harald Welte 96a33b00c9 sgsn: Skeleton of a SGSN test fremwork
Based on the exsting NS/BSSGP emulation as well as the VTY, GSUP and
CTRL implementations, we are now building a test framework skeleton
for osmo-sgsn.

Change-Id: Icce90f9d8a680c7a523163e2c0bc03d12ff857e2
2018-02-16 20:03:47 +01:00