Merge changes Id75cc92d,Ia5a39d37

* changes:
  BSC_Tests: remove copy+paste CHAN RQD -> CHAN ACT -> CHAN ACK
  BSC_Tests: Make as_Tguard() more robust (don't abort after RESET)
This commit is contained in:
Harald Welte 2017-12-14 13:55:40 +00:00 committed by Gerrit Code Review
commit ea02e2dd97
1 changed files with 16 additions and 20 deletions

View File

@ -163,6 +163,7 @@ altstep as_Tguard() runs on test_CT {
[] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset)) -> value ud_ind {
BSSAP.send(ts_BSSAP_UNITDATA_req(ud_ind.callingAddress, ud_ind.calledAddress,
ts_BSSMAP_ResetAck));
repeat;
}
}
@ -254,10 +255,7 @@ testcase TC_chan_act_ack_noest() runs on test_CT {
f_bssap_reset();
/* Send CHAN RQD and wait for allocation; acknowledge it */
f_ipa_tx(0, ts_RSL_CHAN_RQD('23'O, 23));
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
var RslChannelNr chan_nr := rx_rsl.ies[0].body.chan_nr;
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 23));
var RslChannelNr chan_nr := f_chreq_act_ack();
/* expect BSC to disable the channel again if there's no RLL EST IND */
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX);
@ -273,10 +271,7 @@ testcase TC_chan_act_ack_est_ind_noreply() runs on test_CT {
f_bssap_reset();
/* Send CHAN RQD and wait for allocation; acknowledge it */
f_ipa_tx(0, ts_RSL_CHAN_RQD('23'O, 23));
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
var RslChannelNr chan_nr := rx_rsl.ies[0].body.chan_nr;
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 23));
var RslChannelNr chan_nr := f_chreq_act_ack();
var octetstring l3 := '00010203040506'O
f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
@ -298,10 +293,7 @@ testcase TC_chan_act_ack_est_ind_refused() runs on test_CT {
f_bssap_reset();
/* Send CHAN RQD and wait for allocation; acknowledge it */
f_ipa_tx(0, ts_RSL_CHAN_RQD('23'O, 23));
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
var RslChannelNr chan_nr := rx_rsl.ies[0].body.chan_nr;
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 23));
var RslChannelNr chan_nr := f_chreq_act_ack();
var octetstring l3 := '00010203040506'O
f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
@ -320,18 +312,25 @@ type record DchanTuple {
RslChannelNr rsl_chan_nr
}
/* Send CHAN RQD and wait for allocation; acknowledge it */
private function f_chreq_act_ack(OCT1 ra := '23'O, GsmFrameNumber fn := 23)
runs on test_CT return RslChannelNr {
var RSL_Message rx_rsl;
f_ipa_tx(0, ts_RSL_CHAN_RQD(ra, fn));
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
var RslChannelNr chan_nr := rx_rsl.ies[0].body.chan_nr;
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));
return chan_nr;
}
/* helper function to establish a dedicated channel via BTS and MSC */
function f_est_dchan(OCT1 ra, GsmFrameNumber fn, octetstring l3)
runs on test_CT return DchanTuple {
var BSSAP_N_CONNECT_ind rx_c_ind;
var RSL_Message rx_rsl;
var DchanTuple dt;
/* Send CHAN RQD and wait for allocation; acknowledge it */
f_ipa_tx(0, ts_RSL_CHAN_RQD(ra, fn));
rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
dt.rsl_chan_nr := rx_rsl.ies[0].body.chan_nr;
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(dt.rsl_chan_nr, fn+1));
dt.rsl_chan_nr := f_chreq_act_ack(ra, fn);
f_ipa_tx(0, ts_RSL_EST_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
@ -408,7 +407,6 @@ testcase TC_chan_rel_conn_fail() runs on test_CT {
/* Test behavior of channel release after hard Clear Command from MSC */
testcase TC_chan_rel_hard_clear() runs on test_CT {
var BSSAP_N_DATA_ind rx_di;
var RSL_Message rx_rsl;
var DchanTuple dt;
var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
@ -455,7 +453,6 @@ testcase TC_chan_rel_hard_clear() runs on test_CT {
/* Test behavior of channel release after hard RLSD from MSC */
testcase TC_chan_rel_hard_rlsd() runs on test_CT {
var RSL_Message rx_rsl;
var DchanTuple dt;
var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
@ -495,7 +492,6 @@ testcase TC_chan_rel_hard_rlsd() runs on test_CT {
/* Test behavior of channel release after BSSMAP RESET from MSC */
testcase TC_chan_rel_a_reset() runs on test_CT {
var RSL_Message rx_rsl;
var DchanTuple dt;
var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));