Commit Graph

2556 Commits

Author SHA1 Message Date
Harald Welte 9dadc522d7 BSSMAP_Emulation: Send proper L3 N(SD) seuence numbers in MO
We have to make sure all mobile originated L3 messages carry
proper sequence numbers

Change-Id: Id8638673ad1a133f46893b2140970ec072022b3a
2018-02-06 13:43:36 +00:00
Max 6367d7b807 Don't symlink non-existent file
Change-Id: I10309f07fb207c027703f0b43a478c152a029b6d
2018-02-05 16:58:27 +01:00
Harald Welte d13700dd6c MNCC: Represent 'keypad' as one-character charstring, not int
The MNCC Unix Domain Socket encoding uses an int here, which is
a bit odd, given that it's an ASCII / IA5 char value on the actual
GSM L3.  Let's convert from/to something useful.

Change-Id: Id17ac502ca33f4962214a3d5938d0dc29ca6ec1b
2018-02-03 21:45:47 +01:00
Philipp Maier 8a3dc925da MGCP_Test: test illegal wildcarded DLCX and MDCX
- Add tests to check the behaviour on wildcarded DLCX and MDCX,
  both commands not supported by the MGW and should fail.

Change-Id: I140c6d9e337cd16d6147bb582a9474cf76b5170b
2018-02-02 16:14:37 +01:00
Philipp Maier dffa6a46e6 MGCP_Test: Clean up after TC_crcx_sdp
The testcase TC_crcx_sdp does not clean up the connection it
created. This can cause subsequent tests to fail.

- Use f_dlcx_ok() to clean up the connection once the test
  is done.

Change-Id: I4e0f5ce218fadc5debe0bbf548b69919584ab66c
2018-02-02 16:14:37 +01:00
Philipp Maier 5e06ceefbe MCGP_Test: Add tests for wildcarded CRCX
The wildcarded CRCX is not tested yet.

- Add a test function that executes a single wildcarded CRCX
  request

- Add a test function that exchausts all MGW resources using
  wildcarded CRCX requests

Change-Id: I70cf486dc21aef19e4199289f5a5509f6927713e
2018-02-02 16:14:37 +01:00
Philipp Maier bb7a01c696 mgw: add constants for mgw endpoint and domain name
The testcase for osmo-mgw hardcodes the mgw domain and also lacks
an endpoint identifier, which was deprecated recently.

- replace the hardcoded occurrences of the mgw domain name with
  a constant

- add a constant for the rtpbridge endpoint identifier

- add a testcase that still uses the old method without prefix
  on the endpoint identifier.

Change-Id: If4455c4cb521270b2fe24881ade9b578a5132205
2018-02-02 16:14:28 +01:00
Harald Welte e9e02e4556 bsc: Add TC_err_84_unknown_msg to check if unknown RR message triggers RR STATUS
... as declared in TS 24.008 Section 8.4

Change-Id: I4f81b955567d2a33ead350ed312c4c4f6dd7ed8a
2018-01-31 23:37:14 +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 ea99a000ea bsc: Add TC_unsol_ass_compl / unsolicited assignment complete
Change-Id: Ib025ee51df54804e9a4241d4fa6107ce49270a5f
2018-01-31 20:47:04 +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 beb9dbc3ee bsc: Change expectation in paging tests
When we page an unknown/unsupported CellIdentifier format, OsmoBSC
decides to page on all BTSs to be safe.  This way we have a chance of
making communication happen, rather than breaking it.

Change-Id: Ibd0ba986d9e18758b519e852c36f4dbbb6b367ea
2018-01-31 18:50:36 +01:00
Harald Welte 751d3eb19f BSC_Tests: Implement remaining missing paging tests
We now test all of the cell identification types specified in BSSMAP,
and also lists with a length != 1 entry.

Change-Id: I261f948d6054d0c90078c1dd0b2785a967b0a49b
2018-01-31 16:08:26 +01:00
Harald Welte 2fccd98a63 BSC_Tests: fix f_pageing_helper() in case no paging was expected
We have to wait for sime time until some RSL paging command would have
arrived, rather than continuing too quickly.

Change-Id: I63827aa3c42f77648ecad401b3cc4bae927b3b94
2018-01-31 16:08:26 +01:00
Pau Espin 6c7285d682 ggsn_tests: Add test to validate if different pdp ctx can talk each other
It seems due to the current network configuration, pdp v4 ctx can talk
each other while pdp v6 ctx cannot.

Change-Id: I67c04b056cc5c092d357abbb084b7665f59eaf3a
2018-01-31 14:47:00 +01:00
Pau Espin 3d9338fb92 ggsn_tests: Add test case to validate packets forwarded vs dropped
New dependency is required: titan.ProtocolModules.ICMP
It tests that ICMP echo packets can be sent successfully (reply is
received or otherwise dest unreachable if routing is not set up
correctly during the test). It also tests some cases in which osmo-ggsn
is required to drop the packets (eg. unknown src ip unrelated to pdp
ctx). It also checks that IPv6 packets are dropped in IPv4 pdp ctx and
viceversa It also checks that IPv6 packets are dropped in IPv4 pdp ctx
and vice versa.

Change-Id: Ib9c6043a6cd3b6622782ec7e7fcd2815101755ba
2018-01-31 14:46:02 +01:00
Harald Welte 363cb0a394 bsc: Handle wildcard endpoint name in MGCP CRCX
MGCP permits for the CallAgent to send a wildcarded endpoint name,
at which point the MGW itself must allocate an endpoint name and
return it as SpecificEndpointId parameter in the CRCX response.

Change-Id: I704bbe4e11b27e83a6ae6a71aa6a715dc8301f34
2018-01-30 20:10:56 +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 06e835fa6d MGCP_Emulation: Remove bogus mgcp_conn_id variable from MGCP_ConnHdlr
A given MGCP_ConnHdlr is handling multiple connections on one Endpoint
anyway, and the variable is not set or used anywhere.

Change-Id: If9eea3f665289a52915f114f0a69234aad28f322
2018-01-29 22:35:41 +01:00
Harald Welte 1909f464af bsc: Unregister old RSL channel number after assignment
Change-Id: I27d113391094f938ff92c4d6514172ee634f695c
2018-01-29 22:35:41 +01:00
Harald Welte 21583088e8 bsc: f_establish_fully(): Wait for release of old channel
We shouldn't "pass" f_establish_fully() in the assignment case
as long as the old RF channel hasn't been released via RSL.

Change-Id: If7c7c8c4826feba47f8a0395c291157a0e48cd9d
2018-01-29 22:35:41 +01:00
Harald Welte 211219ee1a bsc: Implement Assignment handling
This adds code for the rather intricated and nested transactions
happening on RSL, BSSAP, MGCP and RSL-IPA.  We use explicit
invocation of altsteps to simplify the main function f_establish_fully.

Change-Id: I5f830b010ea1b466ae74fa810df86638a74a3b8b
2018-01-29 22:35: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 9e4273ef7e bsc: Permit MGCP messages from random ports on BSC side
Change-Id: Ie8896edc3f4310a78b584fd4ad017b77bda22afb
2018-01-29 21:35:13 +00:00
Harald Welte f70df65570 RSL_Emulation: Permit registration of explicit Channel Number
During assignment or hand-over, a given TTCN-3 component may be
interested in registering more than one channel number.  Add an explicit
procedure port with associated registration procedure, similar to what
we already do in GSUP, MNCC and others.

Change-Id: Iba37bf9541c779b79e179f995cdfa677633fadeb
2018-01-29 21:35:13 +00:00
Harald Welte 2c2e8c4e18 GSM_Types: Enable sub-slot templating in t_RslChanNr_Lm
Change-Id: I22dca2338ad66c81add5d161bd2a3b3e8e15bdcf
2018-01-29 21:35:12 +00:00
Harald Welte 6a8199dda3 RSL_Types: More templates, f_rsl_find_ie() for finding an IE in a message
Change-Id: Id7fa7d672c1fde97882fa44959501e8bf7b8dc0b
2018-01-29 21:35:12 +00:00
Harald Welte e540822967 RSL_Types: Make tr_RSL_MsgTypeDR match non-transparent RLL
There are quite a number of non-transparent RLL messages, such as
RLL_RELEASE_REQ.  Make sure we match those as intended.

Change-Id: I30260a57fc01613450e6ac66e0af97c29041b4fa
2018-01-29 21:35:12 +00:00
Harald Welte 1fe7481174 MGCP_Templates: Some more convenience extraction functions
Change-Id: I2fc121b1d90327c879a096773ecc5c04faad07d7
2018-01-29 21:35:12 +00:00
Harald Welte 5cfa867ba1 bsc: Fix TC_paging_imsi_nochan
The point of this test is to verify that *no* paging messages are sent
if "No cell" is given as cell identifier list by the MSC.  We can thus
not use the existing pageing_helper function, but have to handle this
a bit differently.

This makes TC_paging_imsi_nochan runs pass.

Change-Id: Iec1086bd42f42de1986bb00b91af718977f73b30
2018-01-29 21:35:12 +00:00
Harald Welte 15510cbde5 bsc: Cosmetic: Update commented-out config file options
There's no point in listing non-existing module parameters. Instead,
list those that the BSC testsuite actually has

Change-Id: I3cb756750cafba4ca481a0a98d19e27cb58395df
2018-01-29 21:35:12 +00:00
Harald Welte 725844b3cc bsc: Fix TC_chan_act_ack_est_ind_refused()
This test case was incomplete in that it didn't account for a RLL REL
REQ/RESP before RF_CHAN_REL.

Together with OsmoBSC Change-Id
I64a46b5bcd4272e3fa2ff4ee824c2f3fdff6854b, this test now passes.

Change-Id: Ia5af254d4fc572c1d324f70b5ec99d87bdaf9eb9
2018-01-29 21:35:12 +00:00
Harald Welte f77aef6d02 bsc: Fix TC_chan_act_ack_est_ind_noreply()
This test case was incomplete in that it
* applied the wrong timeout T3101 instead of T3210
* didn't account for a RLL REL REQ/RESP before RF_CHAN_REL

Let's fix it. Together with OsmoBSC Change-Id
Ie11d7d06353ba1b1e2fab6763dd7b032ce8a5d2c this check now actually
passes for the first time.

Change-Id: I9ed41d246cf153735fd4e71cc6cc174ede32a76b
2018-01-29 21:35:12 +00:00
Harald Welte 91d54a569c bsc: reduce code duplication by introducing f_expect_chan_rel()
The handling of channel release is copy+pasted, let's introduce
a shared function.

Change-Id: If74b0838187f60004b7daf6176db259af511bf87
2018-01-29 21:35:12 +00:00
Harald Welte 6ff76ea569 bsc: Update TC_chan_rel_conn_fail to subscr_conn_fsm
In OsmoBSC Change-IdI68286d26e2014048b054f39ef29c35fef420cc97 we
introduce a proper subscriber connection state machine which fixes
the order of events during channel release after connection failure.

Change-Id: Ibe9c3205ec11dafcc305ea72aeb33e9152a6458c
2018-01-29 21:35:12 +00:00
Harald Welte dd8cbf3640 bsc: Update TC_exhaustion to recent osmo-bsc
When Change-Id I10fc9f60c58c6b7ed424a86ce23bf6b9802c9eb1 was merged,
OsmoBSC started to always allocate SDCCH first, no matter what the
establishment cause.  This basically means we don't do very early
assignment anymore.  TC_exhaustion must be adapted to allocate all
SDCCH and all TCH before failing.

Change-Id: I9d8bbfca0deebc738385f2a1a20d4a17c3853082
2018-01-29 21:35:12 +00:00
Harald Welte 99740c83d3 bsc: Don't test CTRL commands for old NITB parameters
Change-Id: Ib6c6b24842d7ceb12a93200bd6208a6b392544b5
2018-01-29 21:35:12 +00:00
Daniel Willmann a3d192f1e4 bsc: Expect CRCX and send an ACK back
Change-Id: Ic4fabc2a2cf034a831e446697b3a22f4d1d0c6d6
2018-01-29 21:35:12 +00:00
Daniel Willmann aeea76fe5d bsc: Reply to CRCX with ACK
Change-Id: Ieaea431a99241d8844b915e1b46b77c79fff24df
2018-01-29 21:35:12 +00:00
Daniel Willmann 21ea2396a5 bsc: Register expect criteria for MGCP CRCX
Change-Id: I04afa663f4397d5d9b8dec06671aec84f4c4f80e
2018-01-29 21:35:12 +00:00
Daniel Willmann 191e0d9260 bsc: Start MGCP_Emulation and extend MSC_ConnectionHandler for MGCP
forward-ported by Harald Welte

Change-Id: I1f316a9ed5859670348ea7aa352604020d6b09f5
2018-01-29 21:35:12 +00:00
Daniel Willmann 3826a1bd1d BSC_Tests: Add MGCP_Emulation to gen_links
Change-Id: Iac24d8d3baf7e4ca6bdab6b0be7b55096e490d01
2018-01-29 21:35:12 +00:00
Pau Espin 363ba48b1f ggsn_tests: Validate DNS PCO values
Change-Id: I54124cb5269c0992e6c72af1a1ecaa8e3202bf05
2018-01-29 18:43:35 +01:00
Pau Espin aea381feca library: Implement f_inet6_addr function
It can be used to parse IPv6 functions, since inet_addr supports IPv4
only.

Change-Id: Icb6dd38462501895d1b4409a3c530793917bd803
2018-01-29 15:18:19 +01:00
Pau Espin f69a438010 ggsn_tests: Configure expected GGSN DNS values and improve error message
Change-Id: Ie64ca0b4cda22fd358c8c304d5b3909fd9685948
2018-01-29 13:09:00 +01:00
Pau Espin 11ad2afd06 gitignore: Ignore dependency subdirs
Change-Id: I843da5c51d68102b992ce178404d8601c520229f
2018-01-29 11:55:23 +01:00
Pau Espin ef85dfa942 regen-makefile.sh: Exit with clear error if ttcn3 bin not found
Change-Id: I866a758ec472968f368866e3b3b24dc6f14ac7cb
2018-01-29 11:51:52 +01:00
Pau Espin 5c9d99f735 regen-makefile.sh: Support Archlinux install paths
Archlinux (titan-git AUR package) installs everything (includes, libs
and bin) into /usr/ttcn/ prefix.

Change-Id: I545f2f04890310e98233b04b44c4614df34f2f17
2018-01-29 11:51:52 +01:00
Pau Espin bd939f0307 start-testsuite.sh: Add archlinux tccn3 path to LD_LIBRARY_PATH
Archlinux installs ttcn33 libaries in /usr/ttcn3/lib (titan-git package from AUR).

Change-Id: I99219f4ab36c82e562ef3fed047d3c52d64497f1
2018-01-29 11:51:49 +01:00