Commit Graph

3391 Commits

Author SHA1 Message Date
Pau Espin 6477d7358a DIAMETER: Introduce and rework some AVP templates
All the AVP ecosystem in DIAMETER is quite a mess. There's AVPs defined
in several different specs, sometimes even with the same name and
different AVP code and vendor.
Hence, as we add more templates it becomes important to start using the
prefix in order to differentiate where they come from.

Change-Id: Iec7c51dae136629d6b754de4dd798e988ac51f6b
2022-06-07 08:15:19 +00:00
Vadim Yanitskiy 6be4cf414b BSC_Tests: fix TC_lost_sdcch_during_assignment (SCCPlite)
When running ttcn3-bsc-test against osmo-bsc in SCCPlite mode,
TC_lost_sdcch_during_assignment fails with the following output:

  Local verdict of MTC: fail reason: "Timeout of T_guard"
  Final verdict of PTC: fail reason: "Unexpected DLCX received"

One key problem is that in f_TC_lost_sdcch_during_assignment() we
expect to receive a DLCX message on port MGCP, but somehow it gets
caught by the as_Media_mgw earlier than we attempt to receive it.

* Fix this race condition by activating the as_Media_mgw with
  fail_on_dlcx := false, so that it does not catch DLCX messages.

Another problem is that for SCCPlite we're running the MGCP_Emulation
component with multi_conn_mode=true, so that all MGCP messages are
arriving at port MGCP_MULTI (not MGCP) wrapped into MGCP_RecvFrom.

* Expect the DLCX message on either of the two ports depending
  on the value of g_pars.aoip (AoIP or SCCPlite mode).

This change makes BSC_Tests.TC_lost_sdcch_during_assignment pass.

Change-Id: If4807d3d7d196682f7f22732ad47bcbb72858ed3
2022-06-04 22:14:01 +06:00
Vadim Yanitskiy 69170519b0 BSC_Tests: fix a race condition in TC_imm_ass_pre_[ts,chan]_ack
These test cases sporadically fail on Jenkins and 9/10 times on my
machine.  The problem appears to be that we are sending both the
RSL CHANnel ReQuireD and the VTY command simultaneously, and the
later may be handled earlier than the former by osmo-bsc.

Ensure that the RSL message is handled first by sending the VTY
command after we have received the RSL CHANnel ACTivation message.

Change-Id: I38cd31041741b69eb15098a089b4d4b6b918ffd4
2022-06-03 14:12:14 +06:00
Vadim Yanitskiy bf2aa4999f library/RSL_Types: fix wrong comment near tr_RSL_MsgTypeT
Change-Id: Ic10e324375d1495d94352e7229e6be481106e8bb
2022-06-01 00:29:56 +06:00
Vadim Yanitskiy 329d7ee41b bsc/osmo-bsc.cfg: change logging level nm info -> notice
Stop spamming logs with tons of DNM messages (state changes, events).
GSMTAP emits all these messages (including 'debug' ones) anyway.

Related: I49352b3caf9f6bbdd594cfcdea54038fc0eaa874 (docker-playground.git)
Change-Id: I9e60ea0968a44aa29753226626864ac9f4c1f8ab
2022-05-29 20:29:50 +06:00
Pau Espin d7963bb037 mgw: Introduce test TC_two_crcx_mdcx_and_iuup{_rtp}_rfci_unordered
Related: SYS#5969
Change-Id: I2523f18a0fdba87f4e13a2ce3c5da482c4af2e3c
2022-05-26 21:08:16 +00:00
Neels Hofmeyr 61f9dc5a70 bsc: test lchan rel during LCS Loc Req
Test this scenario:

Emergency call is started;
Location Request is started to locate the emergency;
lchan releases early for any reason;
(Do not send Clear Request immediately);
Location Request is completed, locating the emergency.

Related: SYS#5912
Related: Ib44dd05b0adee84234f671313b156ff6625357cc (osmo-bsc)
Change-Id: Idea690a4aa4aecbe4642a16e96d086cc0538564a
2022-05-26 19:29:58 +00:00
Pau Espin 6ed763001d Allow Setting IuUP_Cfg from test using RTP_Emulation
Change-Id: I4e8296dae40277be51974338bc0d21c939eec149
2022-05-26 18:27:39 +00:00
Pau Espin 52ee518e28 IuUP: Encode Initialization according to cfg
Change-Id: I1dec3a8dcc829ad2c308636b697b089e873fd824
2022-05-26 18:27:39 +00:00
Pau Espin 5b4f2c691f IuUP: Improve enc/dec of PDU Type 14
Related: SYS#5969
Change-Id: I33e8a82e654b5afef8bc468cf6b1fff8fa9637ce
2022-05-26 18:27:39 +00:00
Pau Espin 74d5dadc8a stp: Fix sporadic failure in TC_ipa_to_m3ua_ni
It was spotted that from time to time the test set NI international
instead of national. This is presumable due to a race condition between
VTY and messages being received and forwarded.
Let's delay resetting the VTY config after the message is recieved, to
avoid the race conditions between them.

Change-Id: I3ef08447d2e36b6948d3db4ec9d1459beebc9384
2022-05-26 12:52:07 +00:00
Pau Espin 52562c9ca1 ggsn: test Gy Volume-Quote-Threshold feature
Change-Id: If10171589e915db8e78278d2d802e38c66b37687
2022-05-25 16:13:56 +02:00
Pau Espin cba0f6d292 ggsn/pgw: Fix Gy CCR Reporting-Reason expectancies
The Reporting-Reason can be in different places depending on its values.
In the case of TERMINATION, we expect it to be FINAL so we know its
location.

Change-Id: Id33b9bb2f7b469e03a0761dc8807770cfdf77fcc
2022-05-25 14:13:02 +00:00
Eric Wild c01eada147 tcpdump capture script: check permissions to fix running in a netns
This might be all caps (=ep), or a list of all caps.

Change-Id: I75f7af6cc67e96ffb7b002591f7f7d1da9b5a51d
2022-05-24 08:32:52 +00:00
Eric Wild 85cc161c0d msc tests: fix test so they don't depend on previous test runs
The test currently implicitly check the vlr state left by preceding tests.

Change-Id: Iebaecd28a426b15baf4729f40b46dd33da79cbae
2022-05-24 08:32:45 +00:00
Pau Espin 2fde1efd8e pgw: Validate charging reported values
Change-Id: I5024abc672bf92d41027c4c78d2925d0537bb470
2022-05-23 11:38:05 +02:00
Pau Espin 8fa2284189 ggsn: Validate charging reported values
Change-Id: I497309bb0b30c61bdb00e0c08f18294ecd4dd485
2022-05-23 11:35:37 +02:00
Pau Espin 733369ab20 cosmetic: ggsn: document and clean up section in GT_CT
Change-Id: I8bafb546d5d8b819cb0962b50049005ff2b85cb4
2022-05-20 18:39:55 +02:00
Pau Espin d6b51330ab ggsn: TC_act_deact_retrans_duplicate: Fix case where initial seq_nr is 65535
Change-Id: I2a7a399cf962311aaf7270260cb2e4e00e5a676a
2022-05-19 17:48:49 +02:00
Pau Espin 82a7f7033a ggsn: Fix seq_nr overflow
As seen running a test:
GTP_Templates.ttcn:87 Dynamic test case error: The first argument of function int2oct(), which is 65536, does not fit in 2 octets.

Change-Id: Icbaf42879bade6f5b4e39144ec123bc1b3f893f8
2022-05-19 17:41:40 +02:00
Pau Espin e343a88756 pgw: Improve checks around Gy messages
Change-Id: Ica3ca4cf72113d66e74dcff9f838e39cc5d63468
2022-05-19 14:13:10 +02:00
Pau Espin a2af578a1a ggsn: Improve checks around Gy messages
Change-Id: I702796f2f941b78da904faa2ffdba4185333bc0d
2022-05-19 14:13:07 +02:00
Pau Espin 837ed5092f DIAMETER_Templates: Drop unused param
Change-Id: Ic806f7d23f6e3b23365f4d45874b0bc3b3ec91d1
2022-05-18 20:14:41 +02:00
Pau Espin b8cd34a248 library/DIAMETER: Rename template to follow naming style
Change-Id: I1c7cfbea25a2da99813aa3c4f8a5760c4185ee26
2022-05-18 20:14:30 +02:00
Pau Espin d25095f7ce ggsn: Properly encode MISDN IE in GTP
ISDN-AddressString contains an initial byte at the start.
We didn't care so far because we were not yet checking the content of
msisdn, so the usual first '12'O byte was being considered as a header.

Let's store it in GTP format as before, but let's pass it as a
charstring when initializing the PdpContext, so that the human-style is
visible in the test for easy visualization/comparison (It will be
verified in a follow-up patch in Gy Diameter interface).

Change-Id: Ie1b65707d4b08f2201572e1fa44a1f9f985eb096
2022-05-18 20:01:44 +02:00
Pau Espin 35e308a26c DIAMETER_Types_ttcn: Generate types for TS 32.299 (Gy)
Change-Id: I8413781a28362816a1f93790951c125defbbaf6b
2022-05-18 12:09:58 +00:00
Pau Espin c24a18c594 Add script to regen library/DIAMETER_Types.ttcn
This way we have a reproducible way to generate the same
library/DIAMETER_Types.ttcn file.

Change-Id: Ie6fdb8003a0faf25a5bf4027b672da73f788988e
2022-05-18 12:09:58 +00:00
Harald Welte ee4d70c025 RAN_Emulation: f_ran_unregister_imsi complement for f_ran_register_imsi
We have a function to register an IMSI but we're missing a function
to unregister it from RAN_Emulation.  This will cause resource leaks
and eventually an overflow of the ImsiTable.  We don't notice this yet
as we don't have long enough running tests in the test suite yet.

Change-Id: I1f5d86c999d4495d661166f98183dfbc48f05f47
2022-05-17 19:48:15 +02:00
Harald Welte 130110c895 GSUP: add f_unregister_imsi() to unregister an imsi/connhdlr
Change-Id: I13f6784533fe0e1f42d9595f028861d4645ec1a9
2022-05-17 19:48:15 +02:00
Harald Welte 17f3208195 GSUP: Add function to unregister expect; clarify naming
Change-Id: I4f2eb3c2b48c8626eb2da633579a874d089be73a
2022-05-17 19:48:15 +02:00
Pau Espin 535ca2658b ggsn: Append MS TimeZone IE to CreatePDPCtxReq
TS 29.060 states that it shall be included for primary PDP context
activation if the information is available, so let's add it by default.

Change-Id: I8c7e491a07cadfe09403504a82d34e412673a531
2022-05-16 17:11:08 +02:00
Pau Espin 38968e9ba9 ggsn: Append IMEISV IE to CreatePdpCtxReq
Change-Id: I00975328e94afd116e59c88fd96c5b0154810a1e
2022-05-13 17:41:15 +02:00
Pau Espin 0e127870fb ggsn: Append ChargingCharacteristics IE to CreatePdpCtxReq
This IE is conditionally added if the HLR provides it to the SGSN.
Let's add it by default so that we test code paths where GGSN parses it.

Related: SYS#5925
Change-Id: Ia0f74041d2107afeaa36b94e33474370b7b07c0e
2022-05-13 11:54:27 +02:00
Neels Hofmeyr 07ea7f26be msc: add test for OS#5532: crash from CM Serv Rej
Reproduce the assertion trigger crashing osmo-msc reported in OS#5532,
i.e. a CM Service Request that contains a mismatching Mobile Identity.

Causes osmo-msc to crash with an assertion, so run it last.
Fix of the crash: I6c735b79b67108bcaadada3f01c7046e262f939b

Related: OS#5532
Depends: I6c735b79b67108bcaadada3f01c7046e262f939b (osmo-msc)
Change-Id: I3f84d00f456aaee578787059d7010c25efcdcf56
2022-05-05 01:45:57 +02:00
Pau Espin 7d39f9ea94 pgw: Send MSISDN in GTPv2C CreateSessionRequest
Change-Id: I71bcad944f40aa78357f2d11f54d139103ca3e24
2022-05-04 10:09:09 +00:00
Harald Welte 7c083af2d2 remsim: server: TC_connect_{client,bankd}_duplicate
Add two new tests for the remsim-server, which simulate what happens
if a client or bankd with identical ID connects twice.  We expect
the second connection to get rejected at RSPRO level, and to be closed.

Change-Id: I29023f6b5ba430338c77bf01508c81bd6d8c99fa
Ralated: OS#5527
2022-05-04 10:08:44 +00:00
Pau Espin 2fe8895baf ggsn: Use larger MSISDN number
Change-Id: I8a1eeb48efdddaa4f5466cdbe72545523ce31cb8
2022-05-04 10:08:12 +00:00
Pau Espin d3339a78f8 bsc: Fix dangling subscriber talloc ctx in f_TC_paging_Nreq
First, page only on BTS0, not all the BTS. This simplifies the test and
also makes the subscriber be refcounted only on BTS0.
Then, drop the OML connection after receiving all the expected paging
requests; it will make the BSC flush the paging queue and hence avoid
TTCN3 checks erroring due to dangling subscriber talloc contexts.

Change-Id: Ibbd9168f3ac2c1cd4f4577644d75499d49c2823f
2022-05-03 12:57:08 +00:00
Vadim Yanitskiy 866afc2c61 BTS_Tests: add TC_ipa_crcx_ack_addr reproducing OS#5242
Change-Id: Ic85904c967238555a6243a3df2d9225b957d5a5c
Related: OS#5242
2022-05-03 12:52:58 +00:00
Vadim Yanitskiy 0dd96e9391 BTS_Tests: workaround addr='0.0.0.0' in f_rtpem_activate()
If a CRXC message contains optional remote IP and port IEs, the
CRCX ACK received from the BTS is expected to contain its listen
address and port.   In some cases osmo-bts may indicate nonsense
addr='0.0.0.0', and indeed the RTP_Emulation component is not gonna
like this.  This makes both BTS_Tests.TC_speech_rtp_tch[fh] test
cases fail whenever executed in Docker:

  Connection refused (unexpected)

Let's work this around by sending the remote IP and port IEs in
additional MDCX message and omitting them in CRCX.  This mimics
osmo-bsc's behavior and makes both test cases pass.

Change-Id: I03453e72f62819989dfe6aa12d8bd889fced1046
Related: OS#5242
2022-05-03 12:52:58 +00:00
Vadim Yanitskiy 1567bac64c library/RSL_Types: allow omitting IEs in ts_RSL_IPA_CRCX
Change-Id: I7c36c3de1716968bccb07b03d2141d9abb3c175f
Related: OS#5242
2022-05-03 12:52:58 +00:00
Pau Espin 189bf1b8c1 bsc: Introduce test TC_paging_450req_no_paging_load_ind
Change-Id: I787cba895f1cb6c5bfef95259bcf69b4291a9237
2022-05-02 20:43:48 +02:00
Harald Welte c81236c08f cbc: Expect CBC to include Channel Indicator IE in CBSP KILL
This should be present for all KILL relating to CBS.

Change-Id: Id9f280158a0370134ec4a4ca9a977d884670b27e
Related: SYS#5906, OS#5540, OS#5541
2022-05-01 15:58:04 +00:00
Vadim Yanitskiy 7b4b464f91 bts/osmo-bts.cfg: reduce OML logging verbosity, degrade to notice
Average size of osmo-bts.log after running ttcn3-bts-test is ~178 MB,
and more than 52% (!) of it is the OML logging messages.  Other than
making the logfile bigger, bursts of OML messages make it really hard
to follow the output of osmo-bts when running tests natively.

Change-Id: Ib5346a3ca42917169e195f905472ccea7579e5eb
2022-04-30 02:38:07 +03:00
Pau Espin f01f305e31 bsc: Avoid sending CCCH Load Ind (paging) when RSL C0 becomes up
The paging CCCH Load Ind should only be sent when the BTS is over the
threshold, which is not the case when it starts up.
The BSC should underststand that the BTS under threshold and be able to
send paging requests.

Change-Id: I19a97e97ec96ba8ea2e28b1be8ac3b706b43e1b7
2022-04-29 12:22:33 +00:00
Harald Welte 4a788a0812 bsc: Increase test coverage for CBSP emergency broadcasts
This adds new tests:
* TC_cbsp_emerg_write_bts_cgi_noreplace
* TC_cbsp_emerg_write_bts_cgi_replace
* TC_cbsp_emerg_write_bts_cgi_kill

All of the above relate to improved / fixed handling of emergency
broadcasts in some corner cases.

Related: SYS#5906
Related: OS#5539, OS#5540
Change-Id: Ic0f0b3d620f3ca73bab3d45997d0c1b9433ac1f7
2022-04-27 18:39:56 +02:00
Harald Welte 8bb2944c2f bsc: CBSP code refcator: Add f_exp_rsl_etws()
This function reduces code duplication between CBSP tests.

Change-Id: I69bedd43bc88bc619b80bf9038da901bbff9f04b
2022-04-27 18:39:56 +02:00
Harald Welte 1222f52b43 bsc: Fix TC_cbsp_write_then_kill expectations
A more clear reading of TS 48.049 is that the KILL COMPLETE should
*only* contain a Cell List IE if it relates to an Emergency message;
only the Number of Broadcasts Completed IE indicates successful
cells.

osmo-bsc fixes this in I9a43d386da01f085663d231a555b8b5acc99faca

Change-Id: Ia50e50f9812d9934d35d32b25e1079240df04a82
Related: SYS#5906
2022-04-27 18:39:55 +02:00
Harald Welte d686941aa8 CBSP: tr_CBSP_REPLACE_CBS_COMPL: num_compl_list is optional
The list might be empty because either there were no broadcasts
completed in case of a CBS message, or because it was an emergency
message where this IE is never used.

Change-Id: I2b24ac7e5857bdd50a821399b3c383cea9d408ad
2022-04-27 18:39:26 +02:00
Pau Espin ef7ef632da bsc: TC_paging_500req: Validate initial transmissions have higher prio
After osmo-bsc Change-Id I1ae6d97152c458247bc538233b97c2d245196359,
initial requests are prioritized over retransmits.
Before that feature was in place, when sending 500 requests in this test
to the BSC, it could happen that the paging scheduler triggered (every
500ms) before all the 500 requests were received at the BSC. As a
result, the scheduler would put some requests to the end of the queue
after sending an initial request for it towards the BTS. If later more
requests where received from TTCN3, they'd be put at the end, after the
retransmissions.
As a result, the emulated BTS would in general receive retranmits for
the first bunch of requests before receiving the initial transmit of the
later requests.
Ths is no longer the case since the osmo-bsc is prioritizing now the
initial requests. Hence, we'll only start receiving retransmits after
all the new paging requests are received.

Depends: osmo-bsc.git I1ae6d97152c458247bc538233b97c2d245196359
Change-Id: I5876f828b43e1e51bd892ce3c9a4dbed6b53f066
2022-04-26 10:12:17 +00:00