diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-07 00:37:29 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2018-11-14 16:17:39 +0000 |
commit | 211169d7948f81ca5507ceaeab6576e9d974c39e (patch) | |
tree | a80913fb662887ce31c68fe1d04febc7d0dc4d2e /bsc/BSC_Tests.ttcn | |
parent | 4ed9edf5b906883d73de061442f139cd06dbb571 (diff) |
bsc: handle RR Release messages
Receive RR Release messages if they happen during lchan release. Add RR Release
to the alt{}s in both f_expect_chan_rel() to cover a whole bunch of test cases,
and in f_tc_ho_out_fail_no_ho_detect() which has its own release expectations.
Before this, RR Release messages would typically be lost in the RSL.clear
recently removed by Ie1be30c3f109dda8c58c523df508211f8e20aad3.
However, I still expect tests to pass after this, since the current osmo-bsc
master has a bug that omits RR Release messages (since [1]).
By applying this patch, both the buggy osmo-bsc (omitting RR Release) and the
fix of that [2] should pass the BSC tests. So far by accepting whatever comes
along, and not complaining if it doesn't come along.
A subsequent patch will more precisely ensure that exactly the expected
messages will be sent by osmo-bsc (Ibc64058f1e214bea585f4e8dcb66f3df8ead3845).
[1] osmo-bsc I4fd582b41ba4599af704d670af83651d2450b1db
commit 8b818a01b00ea3daad4ad58c162ac52b4f08a5cb
"subscr conn: properly forget lchan before release"
[2] osmo-bsc I666b3b4f45706d898d664d380bd0fd2b018be358
"fix: send RR Release (e.g. after BSSMAP Clear Cmd"
Related: OS#3413
Change-Id: I4e6d266d091b140f56b28312cb3c5d67ffcc3a59
Diffstat (limited to 'bsc/BSC_Tests.ttcn')
-rw-r--r-- | bsc/BSC_Tests.ttcn | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a2a33783..fcccad08 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -820,12 +820,16 @@ function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr, boolean handle_rll_rel := true) runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); + var octetstring l3_rr_chan_rel := '060D00'O; alt { /* ignore DEACTIVATE SACCH (if any) */ [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DEACT_SACCH(rsl_chan_nr))) { repeat; } + [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, l3_rr_chan_rel))) { + repeat; + } /* acknowledge RLL release (if any)*/ [handle_rll_rel] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_REL_REQ(rsl_chan_nr, ?))) { @@ -2441,7 +2445,11 @@ private function f_tc_ho_out_fail_no_ho_detect(charstring id) runs on MSC_ConnHd * RR should be released and Clear Request should go to the MSC. */ var MgcpCommand mgcp; + var octetstring l3_rr_chan_rel := '060D00'O; interleave { + [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, l3_rr_chan_rel)) { + log("Got RR Release"); + } [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { log("Got RF Chan Rel"); RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); |