summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-03-12 01:44:00 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-03-12 04:43:16 +0100
commit27f643639e43a146eab090d723692f47efa452a6 (patch)
treea88dd624690ab4355e02259ebc1f947f65a4d48a
parent4ff9328bebb3438c41657ce1e4899b8bdb4224b4 (diff)
bsc: TC_chan_rel_rll_rel_ind: expect full MSC Clear Request
This test sends a REL IND from the MS and immediately expects an lchan release. Instead, osmo-bsc patch I0f8c9c4e6b6850b15c70250fd3f88bdf75f9accf decides to signal full BSSMAP Clear Request to the MSC first, so expect that first. Note that this test currently fails, and said osmo-bsc.git patch will make this test pass. Change-Id: I737be141b69a250eb6eb38007f8042981c1a31cf
-rw-r--r--bsc/BSC_Tests.ttcn18
1 files changed, 16 insertions, 2 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index a466d36..3b5c860 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -618,6 +618,7 @@ runs on test_CT return DchanTuple {
/* Test behavior of channel release after unilateral RLL REL IND (DISC from MS) */
testcase TC_chan_rel_rll_rel_ind() runs on test_CT {
var RSL_Message rx_rsl;
+ var BSSAP_N_DATA_ind rx_di;
var DchanTuple dt;
f_init(1);
@@ -627,13 +628,26 @@ testcase TC_chan_rel_rll_rel_ind() runs on test_CT {
/* simulate RLL REL IND */
f_ipa_tx(0, ts_RSL_REL_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0))));
+ /* expect Clear Request on MSC side */
+ BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearRequest)) -> value rx_di;
+
+ /* Instruct BSC to clear channel */
+ var BssmapCause cause := bit2int(rx_di.userData.pdu.bssmap.clearRequest.cause.causeValue);
+ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause)));
+
/* expect BSC to disable the channel */
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX);
/* respond with CHAN REL ACK */
f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
- /* expect DISC_IND on MSC side */
- BSSAP.receive(tr_BSSAP_DISC_ind(dt.sccp_conn_id, ?, ?));
+ /* expect Clear Complete from BSC */
+ BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete));
+
+ /* release the SCCP connection */
+ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+
+ /* wait for SCCP emulation to do its job */
+ f_sleep(1.0);
setverdict(pass);
}