diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-12 01:44:00 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-12 04:43:16 +0100 |
commit | 27f643639e43a146eab090d723692f47efa452a6 (patch) | |
tree | a88dd624690ab4355e02259ebc1f947f65a4d48a | |
parent | 4ff9328bebb3438c41657ce1e4899b8bdb4224b4 (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.ttcn | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a466d367..3b5c8600 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); } |