Commit Graph

145 Commits

Author SHA1 Message Date
Pau Espin 494e8b3e55 Start BSSGP_CT and NS_CT as alive-type component in all testsuites
This was already done in PCU_Tests and Gbproxy_Tests, let's to it
everywhere.

Change-Id: I6e3b08710b4502e2b9805f7c9f7bd89f34e4085c
2022-02-24 11:47:43 +00:00
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 60fcc63f48 SGSN: fix using non-existing VTY command for encryption
Change-Id: I366ccd5a562c86e6df79bbc200fb46d1aef69b39
Fixes: [1] Iad65cbf9840aa883cb34e53554b94a4142c82638
Related: SYS#5324
2021-07-04 01:02:34 +02:00
Eric Wild c555be597f sgsn a54 tests
This adds a few tests that ensure that the encryption algorithm dynamically chosen is
1) one actually supported by both the sgsn and the UE
2) the strongest one available both have in common

Change-Id: Iad65cbf9840aa883cb34e53554b94a4142c82638
Related: SYS#5324
2021-06-16 06:32:53 +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
Pau Espin dab2fbd897 sgsn: TC_bssgp_rim_single_report: Avoid useless component start
The componenet is not needed/used at all, so there's no need to start
it.

Change-Id: I63baadbb8b09843a653d3f5c11df204f5a1a761e
2021-05-04 16:41:57 +02:00
Pau Espin 7bac69f253 sgsn: Fix default value for mp_ggsn_ip
Make it match the osmo-sgsn.cfg files present in the same directory.

Change-Id: I798b3c8b6e4a4787b8a9d5ecd9d2b1aad2b931ee
2021-05-04 15:53:47 +02:00
Harald Welte d5836dca12 sgsn: Avoid race condition in TC_suspend_rau()
In f_routing_area_update() we are sending a RAU Complete to the SGSN
and then immediately afterwards send a GTP-U from the simulated
GGSN to the SGSN.  That GTP might reach the SGSN faster than the
RAU Complete, resulting in a test failure.

Change-Id: Ic489e0857115cf24965e413a39918edc5a8f44f8
2021-03-20 15:40:00 +01:00
Vadim Yanitskiy 418e806df5 SGSN_Tests: add setverdict(pass) to TC_bssgp_rim_single_report()
Change-Id: If5295cc8eccda2d1b3baae7d2169fac5da2a085c
2021-02-28 16:27:12 +01:00
Vadim Yanitskiy 7bc13eae26 SGSN_Tests: fix coding style in TC_bssgp_rim_single_report
Change-Id: I667c1e8a94393e2b5afc6e2e3f7503b73198822c
2021-02-28 16:26:03 +01:00
Harald Welte dd9fb84b58 sgsn: Fix regression regarding g_pars.bssgp.cell_id[] array overflow
This was introduced in I7d859fd710dba96eb9b46c428243281183e1be12
and caused Iu related TTCN3 tests to fail with:

SGSN_Tests.ttcn:771 Dynamic test case error: Index overflow in a value of type @SGSN_Tests.BssgpCellIds: The index is 3, but the value has only 3 elements.

Change-Id: Iaae0015f5e7c7eabc426add91b5de1b63bf6d9f6
2021-02-16 20:43:56 +01:00
Pau Espin 7c05216e01 sgsn: Introduce tests for several cell change related scenarios
Test TC_cell_change_different_ci_data provides test case for
fix in osmo-sgsn.git Change-Id I2c14e1d65575f54212924f7c5f0a2f4c1b76ec81

Related: SYS#4909
Change-Id: I2158685bf817d4bf064bb4d2ef5aa96ca252fe21
2021-02-16 17:31:37 +01:00
Pau Espin d792b9e122 sgsn: Fix f_process_attach_accept on ran_index != 0
Change-Id: I7d859fd710dba96eb9b46c428243281183e1be12
2021-02-12 20:15:02 +01:00
Pau Espin deaaa90e43 sgsn: Fix f_cellid_to_RAI
Change-Id: I4f6d609119b4a9e211fb1b285e4fc3e42d8ebdb6
2021-02-12 18:48:47 +01: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
Philipp Maier 7df55e0c42 SGSN_Tests: test RIM message passing
Add a testcase to test if RIM messages can be passed on the SGSN back
and forth.

Related: SYS#5103

Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843
Related: SYS#5103
2021-01-05 15:30:19 +00: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 4d112c926c BSSGP_Emulation: Allow a "CreateCb" to handle unknown inbound TLLI
The existing BSSGP Code assumed that the TLLIs were always known "a
priori" by the test case.  With the newly-introduced create_cb,
the user can provide a function to handle any incoming messages for an
unknown TLLL.  The default handler behaves like before: fail +
terminate.

Change-Id: Ice0e145f5a6518ff79547dd851042b7965f38e00
2020-11-16 19:13:26 +00:00
Harald Welte 90f1974fb0 NS_Emulation: Support multiple NS-VC within one NSE (NS-VCG)
This is something we need to simulate more complex scenarios,
particularly in the context of frame relay.

Change-Id: If1220852785853f8a5d8de183d5053ddd6ccb958
2020-11-12 20:02:07 +00:00
Harald Welte 5339b2e372 BSSGP_Emulation: Support multiple PTP-BVC within one Entity
The existing BSSGP_Emulation is built around the assumption that every
instance of BSSGP_Emulation only servers one signaling-BVC and one
PTP-BVC.  While this is true for osmo-pcu at this point (BTS-colocated
PCU), other BSS/PCU implementations differ.

In general, there can always be any number of PTP BVC (one per cell)
next to the signaling BVC (one per BSS).  Let's represent this in
BSSGP_Emulation so we can create more comprehensive tests.

Change-Id: I7e30b4c4e188518a574e082962fba457b3a97ce3
2020-10-09 12:27:11 +02:00
Harald Welte 5e8573e9b7 NS_Emulation: Prepare NSConfiguration for non-IP providers
NSConfiguration currently contains parameters relevant only for IP
based transport.  Move IP/UDP parameters into a sub-structure in
anticipation of Frame Relay support.

Change-Id: I6904520d8c2f546327029777d68b1907611a8cf5
2020-09-27 09:15:32 +00:00
Alexander Couzens 8e1dfd0d0f SGSN: introduce NS tests
Similiar to the PCU_Tests_NS introduce SGSN_Tests_NS.

Change-Id: Ib2bffbb110961474928f35d212cb492d4b6fdee0
2020-09-25 01:31:44 +02:00
Alexander Couzens e0f7c543b7 NS_Emulation: remove dependency on PCUIF_Types
The dependency of PCUIF_Types creates also a dependency on

Replace the PCU_AddrType by an unix like address family defined
in the Osmocom_Types to reduce the dependency.

Change-Id: I0b4fda96accef401ffc009010f9f5621583fd6dd
2020-09-17 23:29:16 +02:00
Harald Welte 60408e3f57 Don't map NS_Emulation_CT:NSCP anymore
NS_Emulation_CT:NSCP used to be a NS_CODEC_PT, which is a translation
port on top of the IPL4asp.  Such ports need to be mapped to a system
port at start-up.

However, in I4d0b7ad0ed9447a038dd3eeee2b975146d10fba0 we introduced
a new underlying component called NS_Provider.  Hence, NSCP is actually
connected to that underlying component, and no longer mapped.

The corresponding change in pcu/SGSN_Components.ttcn and sgsn/SGSN_Tests.ttcn
has unfortunately been missed in the above-mentioned change.  Fix that.

Change-Id: I4c085210e6021e38a38ebc052ec3d9b345638cd2
2020-09-17 20:32:37 +02:00
Harald Welte 557c9f8cb8 move some key types from GSM_RR_Types to GSM_Types
This in turn means Osmocom_Gb_Types doesn't need to depend on
GSM_RR_Types anymore, which is particularly ugly as the latter
now depends on RLCMAC_*, creating a long chain of dependencies.

Change-Id: I8c8da7709695ff0023f71b3999291e2515b22e46
2020-09-13 10:18:41 +02:00
Harald Welte 8e5932e563 sgsn: Add series of tests on suspend/resume and paging behavior
Let's test whether paging is triggered after T3314 expiration, as well
as suspend and explicit and implicit resume work as expected

Change-Id: I83b7a453958e30dfc727ba3140168217c209833f
Related: OS#4616
2020-06-18 13:36:18 +02:00
Harald Welte a5c71cdefe sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case
In some scenarios we do not expect a PDU from GTP to show up on
the Gb side.  Let's add support for this.

Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346
Related: OS#4616
2020-06-18 13:33:43 +02:00
Harald Welte f2f3c9bf79 sgsn: Add functions for BSSGP suspend + resume procedure
Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631
Related: OS#4616
2020-06-18 13:32:53 +02:00
Harald Welte 15fbaa4748 sgsn: Add BSSGP_SIG port to ConnHdlr
So far, the ConnHdlr components were only able to exchange BSSGP PDUs
on the PTP BVC, but not on the SIGNALING BVC.  For this, we need to
actually connect to the BSSGP_SP_SIG that BSSGP_Emulation provides.

Change-Id: I4482a24e4808ac2fe04401224f628606d8207416
Related: OS#4616
2020-06-18 11:28:42 +00:00
Harald Welte 64d6b51818 sgsn: Fix comment [cosmetic]
Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805
2020-06-18 11:28:42 +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
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
Daniel Willmann 1c1161119d SGSN_Tests: Wait for RAU Accept after receiving SecurityModeCmd
We don't want to pass the test or return from this function before
receiving a RAU accept. With Iu we expect a Security Mode
Command/Complete before the routing area is updated, but we do want to
wait for the actual RAU Accept or fail when receiving a RAU Reject.

Change-Id: Id89e2c6dae8cbdb5e8dee1c92960dc3346590a95
Related: OS#3727
2020-01-28 14:41:57 +01:00
Daniel Willmann 1c2ff0fa93 SGSN_Tests: Only call f_bssgp_client_llgmm_assign for Gb RAN
Calling this function with Iu RAN (ran_index > 2) does not work because
BSSGP_PROC[ran_index] doesn't exist.

Change-Id: Ieef654e3886759a40763ece3903de9127ba8d9c6
Related: OS#3727
2020-01-28 14:39:25 +01:00
Pau Espin ce571b5cc4 sgsn: Introduce test TC_attach_req_id_req_ra_update
The scenario in this test triggers a crash in osmo-sgsn fixed by
osmo-sgsn.git I64fa5cf1b427d3abb99e553e584897261a827ce6.

With that osmo-sgsn patch applied, the process doesn't crash anymore but
the test still fails due to an XID message being sent with a new
yet-not-seen-by-ttcn3 TLLI and as a result TTCN3 BSSGP_Emulation fails:
BSSGP_Emulation.ttcn:390 setverdict(fail): none -> fail reason: "Couldn't find Component for TLLI 'FE791757'O", new component reason: "Couldn't find Component for TLLI 'FE791757'O"

Other than that, the test runs fine. It still needs to be clarified
whether the new TLLI sent by osmo-sgsn is expected and test needs to be
fixed, or whether it's an sgsn bug.

Related: OS#3957, OS#4245
Change-Id: Id5554a91a8bda712e282c5a3e9e30fb0ca1ec0e8
2019-11-23 08:00:46 +00:00
Alexander Couzens 42d3cadb05 sgsn: delay f_gmm_attach() by 50ms
Packets sent by f_gmm_attach() might take too long via layers to reach
the SGSN. The GMM_ATTACH_COMPL in f_gmm_attach() took soo long,
that it arrived after packets, which has been sent after calling f_gmm_attach().
This behaviour was found in TC hlr_location_cancel_request_update().

Change-Id: I0209c86e16fe616284d753e9e003f2e4d9ec9ea5
2019-10-08 23:12:01 +00:00
Alexander Couzens ed61ae81e2 Require to receive RANAP_CommonId after RANAP_SecurityModeComplete
The SGSN will send a CommonId after it has sent SecurityModeComplete
to support paging coordination in the RNC.

Change-Id: I82a05cab2aeea25eec699f726b2f5c4b3eef7560
2019-09-16 17:54:37 +00:00
Alexander Couzens be76d9cd79 sgsn: replace variable bssgp with ran_index
Since bssgp also been used for Iu connection,
rename the variable to ran_index.
Be consistent and use the same variable name everywhere.

Change-Id: Ib278410bc49f07387873740ed8b411a815d940a8
2019-09-16 13:57:01 +00:00
Alexander Couzens b1ce118daa sgsn: replace variable gb_idx with ran_index
Since gb_idx also been used for Iu connection,
rename the variable to ran_index.
Be consistent and use the same variable name everywhere.

Change-Id: Ia119feee6a442c76dc337e75c07f4a385cd5e1df
2019-09-16 13:57:01 +00:00
Alexander Couzens 0507ec3f70 sgsn: replace variable gb_index with ran_index
Since gb_index also been used for Iu connection,
rename the variable to ran_index.
Be consistent and use the same variable name everywhere.

Change-Id: I06b0c6184daeb886e8bd28d50bf18909d9244dc6
2019-09-16 13:57:01 +00:00
Alexander Couzens b22e8cee77 sgsn: replace variable bssgp_index with ran_index
Since bssgp_index also been used for Iu connection,
rename the variable to ran_index.

Change-Id: Iec2e8510b749602f0ebb9b4976957c9c5ce3f307
2019-09-16 13:57:01 +00:00
Pau Espin 4b290a2e3a sgsn: TC_attach_check_complete_resend: Expect LU sent to HLR
SGSN is expected to submit an LU after initial GMM Auth

Change-Id: Ie2e8f5b9740c7429f5f0bf28e35707a61f23b565
2019-09-16 08:30:36 +00:00
Alexander Couzens 5d56f5251b sgsn: extend f_routing_area_update() to support Iu
Allow Iu tests to use f_routing_area_update()

Change-Id: Ic03952a04c00a4fc437ef39c5ee046549c122c8b
2019-09-11 12:18:32 +02:00
Alexander Couzens 1552e79637 sgsn: make the ranap interface optional
Allows to use the test cases without STP

Change-Id: I43df456c2d5aa3ba3ea9e34da3f0f96b55f7c9a1
2019-09-11 12:18:32 +02:00
Harald Welte 900d01ad34 sgsn: add Iu Attach Request
MS -> SGSN: Attach Request IMSI
MS <- SGSN: Identity Request IMEI
MS -> SGSN: Identity Response IMEI
MS <- SGSN: Auth Request
MS -> SGSN: Auth Response
MS <- SGSN: Attach Accept
MS -> SGSN: Attach Complete

Change-Id: I66069e31c30d33934ad57cc2b8794f56ffd5c7d6
2019-09-11 06:19:10 +00:00
Alexander Couzens 4444b5a7f6 sgsn: introduce f_send_l3() to allow one function for Gb & Iu
f_send_l3() replaces f_send_l3_gmm_llc() to have one function
which sends L3 messages for Iu and Gb at the same time.
This allows to share most of the tests between Iu & Gb.

Change-Id: If47ad2be459ca7b87d9071d9ff020a51821e4433
2019-09-11 06:19:10 +00:00
Pau Espin ce0d615e12 sgsn: Proper shutdown of RAN_Adapter components
Otherwise TTCN3 errors sproadically during shutdown:
""""
SCCP_Emulation.ttcn:5661 Receive operation on port SCCP_SP_PORT succeeded, message from SGSN_Test_0-RAN(414)
...
SCCP_Emulation.ttcn:5293 Sent on MTP3_SCCP_PORT to SGSN_Test_0-M3UA(415) @SCCP_Types.ASP_MTP3_TRANSFERreq_sccp
SCCP_Emulation.ttcn:5293 Outgoing message was mapped to @MTP3asp_Types.ASP_MTP3_TRANSFERreq
SCCP_Emulation.ttcn:5293 Dynamic test case error: Sending data on the connection of port MTP3_SCCP_PORT to 415:MTP3_SP_PORT failed. (Broken pipe)
SCCP_Emulation.ttcn:5293 setverdict(error): none -> error
"""

Similar shutdown is already done in f_cleanup() of SCCP_Tests.ttcn.

Related: OS#4176
Change-Id: I471eb851e5d41de5d8d974ec81be27024d7d313a
2019-09-02 09:04:53 +00:00
Oliver Smith aac9b9ceca BSSGP_Emulation: add BssgpDecodeDepth
Make the decoding level (BSSGP, LLC, SNDCP, L3) configurable, so the
existing PCU tests, that expect messages only decoded to the BSSGP
level, can pass again. Move the SNDCP decoding in f_dec_bssgp above the
L3 decoding, so f_dec_bssgp goes through the layers in the reverse order
of f_send_bssgp_dec.

I have verified, that all testsuites using the BSSGP Emulation (SGSN,
PCU, PCU-SNS) are still working with this patch.

Related: OS#4180
Fixes: 955aa94504 ("BSSGP_Emulation: Abandon "BssgpDecoded" intermediate structure")
Change-Id: I8f76385528c1de98c557cee451c0e0dfd182b605
2019-09-02 09:15:33 +02:00
Pau Espin fcec914a8e sgsn: Introduce test TC_attach_echo_timeout
This test verifies sgsn drops all GGSN related pdp context when that
GGSN stops answering echo requests.

Change-Id: Ic31748924e7bf05ea2ccf2b1be0c460eefed5782
2019-08-28 19:16:50 +02:00
Pau Espin 2a3302a0cd sgsn: Add test to verify duplicate DeactPDPCtx crashing osmo-sgsn
osmo-sgsn sends 2 DeletePdpCtxReq on gtp, Confirmation received on first
one frees cbp associatd to pdp and the second one accesses the already
freed cbp.

Related: OS#3956
Change-Id: Ie1cc9fdf91b18b0b7fb3d5fb33b6dcf6f46a393f
2019-08-23 16:16:29 +02:00