BSC_Tests: Don't make invalid assumptions about RR RELEASE

The RR RELEASE message does not always have to be '060D00'O,
which constrains it to:
* not having any optional IEs
* not having a cause value != 00

Let's relax the matching to accept any RR RELEASE message, whatever
the cause may be, and whether or not there are any optional IEs at the
end.

At the same time, also remove some copy+pasting but rather have one
template that gets used everywhere.

Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c
This commit is contained in:
Harald Welte 2019-02-03 12:49:57 +01:00
parent 5ac49ccf61
commit cc32ed9096
2 changed files with 4 additions and 6 deletions

View File

@ -62,6 +62,7 @@ const float T3101_MAX := 12.0;
const integer NUM_TCHH_PER_BTS := 2;
const integer NUM_TCHF_PER_BTS := 4;
const integer NUM_SDCCH_PER_BTS := 4;
template octetstring t_l3_rr_chan_rel := '060D??*'O;
/* per-BTS state which we keep */
@ -860,7 +861,6 @@ function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr,
) runs on test_CT {
var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
var octetstring l3_rr_chan_rel := '060D00'O;
var boolean got_deact_sacch := false;
var boolean got_rr_chan_rel := false;
var boolean got_rll_rel_req := false;
@ -872,7 +872,7 @@ function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr,
got_deact_sacch := true;
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))) {
[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) {
got_rr_chan_rel := true;
repeat;
}
@ -2812,12 +2812,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_DEACT_SACCH(g_chan_nr)) {
log("Got Deact SACCH");
}
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, l3_rr_chan_rel)) {
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) {
log("Got RR Release");
}
[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {

View File

@ -700,10 +700,9 @@ testcase TC_lcls_connect_clear() runs on lcls_test_CT {
/* Perform hard BSSMAP Clear on "A" side, expect no LS on "B" side */
var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL;
var octetstring l3_rr_chan_rel := '060D00'O;
CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val)));
interleave {
[] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), l3_rr_chan_rel));
[] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel));
[] CONN_A.receive(tr_RSL_DEACT_SACCH(?));
[] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl {
var RSL_IE_Body ieb;