bsc: Move hardcoded octetstring to single constant field
This makes it easier changing it to be a valid l3 payload in the future. Related: SYS#6280 Change-Id: I888bcc42d4b68bac4c12dfbbf3c74e1734318699
This commit is contained in:
parent
289056cf9b
commit
695ada5f72
|
@ -115,6 +115,8 @@ private const BtsParams c_BtsParams[NUM_BTS_CFG] := {
|
|||
private const RSL_IE_Body c_mr_conf_5_90 :=
|
||||
valueof(RSL_IE_Body:{multirate_cfg := ts_RSL_MultirateCfg(true, 0, '00000100'B /* 5,90k */)});
|
||||
|
||||
friend const octetstring c_l3_payload := '00010203040506'O;
|
||||
|
||||
/* per-BTS state which we keep */
|
||||
type record BTS_State {
|
||||
/* component reference to the IPA_Client component used for RSL */
|
||||
|
@ -1521,10 +1523,9 @@ testcase TC_chan_act_ack_est_ind_noreply() runs on test_CT {
|
|||
/* Send CHAN RQD and wait for allocation; acknowledge it */
|
||||
var RslChannelNr chan_nr := f_chreq_act_ack();
|
||||
|
||||
var octetstring l3 := '00010203040506'O
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3)));
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload)));
|
||||
|
||||
/* expect BSC to disable the channel again if there's no response from MSC */
|
||||
/* MS waits 20s (T3210) at LU; 10s (T3230) at CM SERV REQ and 5s (T3220) AT detach */
|
||||
|
@ -1542,10 +1543,9 @@ testcase TC_chan_act_ack_est_ind_refused() runs on test_CT {
|
|||
/* Send CHAN RQD and wait for allocation; acknowledge it */
|
||||
var RslChannelNr chan_nr := f_chreq_act_ack();
|
||||
|
||||
var octetstring l3 := '00010203040506'O
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
BSSAP.send(ts_BSSAP_DISC_req(rx_c_ind.connectionId, 0));
|
||||
|
||||
/* expect BSC to disable the channel */
|
||||
|
@ -1680,7 +1680,7 @@ testcase TC_assignment_cic_only(integer bssap_idx := 0) runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) {
|
||||
/* send assignment without AoIP IEs */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, 1))));
|
||||
|
@ -1806,7 +1806,7 @@ runs on test_CT return DchanTuple {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
/* send assignment without AoIP IEs */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ass_cmd));
|
||||
alt {
|
||||
|
@ -1946,7 +1946,7 @@ testcase TC_chan_rel_rll_rel_ind() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* simulate RLL REL IND */
|
||||
f_ipa_tx(ts_RSL_REL_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0))));
|
||||
|
@ -1974,7 +1974,7 @@ testcase TC_chan_rel_conn_fail() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* Sending CONN FAIL IND immediately may trigger a race condition.
|
||||
* Give the BSC some time to process a new SCCP connection (OS#5823). */
|
||||
|
@ -2031,7 +2031,7 @@ testcase TC_late_conn_fail() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* BSC<-MSC: Instruct BSC to clear connection */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(0)));
|
||||
|
@ -2198,7 +2198,7 @@ testcase TC_chan_rel_hard_clear() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* Instruct BSC to clear channel */
|
||||
var BssmapCause cause := 0;
|
||||
|
@ -2220,7 +2220,7 @@ function f_TC_chan_rel_last_eutran_plmn_hard_clear(boolean tx_csfb_ind) runs on
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
/* Send CommonID with some random PLMN (BSC doesn't take it into account
|
||||
/* yet when generating the EUTRAN neigh list in RR CHannel Release) */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O)));
|
||||
|
@ -2276,7 +2276,7 @@ testcase TC_chan_rel_hard_clear_csfb() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* Instruct BSC to clear channel */
|
||||
var BssmapCause cause := 0;
|
||||
|
@ -2298,7 +2298,7 @@ testcase TC_chan_rel_hard_rlsd() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* release the SCCP connection */
|
||||
BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
|
||||
|
@ -2313,7 +2313,7 @@ testcase TC_chan_rel_hard_rlsd_ms_dead() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* release the SCCP connection */
|
||||
BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
|
||||
|
@ -2328,7 +2328,7 @@ testcase TC_chan_rel_a_reset() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* Clear the queue, it might still contain stuff like IMMEDIATE ASSIGN */
|
||||
IPA_RSL[0][0].clear;
|
||||
|
@ -2356,7 +2356,7 @@ testcase TC_chan_rel_sccp_tiar_timeout() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
f_expect_chan_rel(dt.rsl_chan_nr, expect_rll_rel_req := false);
|
||||
f_shutdown_helper();
|
||||
}
|
||||
|
@ -2367,7 +2367,7 @@ runs on test_CT
|
|||
{
|
||||
var DchanTuple dt;
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
var BssmapCause cause := 0;
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(enum2int(clear_cmd_cause))));
|
||||
BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) {
|
||||
|
@ -2397,13 +2397,12 @@ testcase TC_rll_est_ind_inact_lchan() runs on test_CT {
|
|||
|
||||
f_init(1);
|
||||
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
var RslChannelNr chan_nr := valueof(t_RslChanNr_Bm(6));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) {
|
||||
setverdict(fail, "MSC received COMPL L3 for non-active lchan");
|
||||
}
|
||||
[] BSSAP.receive {}
|
||||
|
@ -2422,13 +2421,12 @@ testcase TC_rll_est_ind_inval_sapi1() runs on test_CT {
|
|||
|
||||
chan_nr := f_chreq_act_ack()
|
||||
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(1)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(1)), c_l3_payload));
|
||||
|
||||
timer T := 2.0;
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) {
|
||||
setverdict(fail, "MSC received COMPL L3 for invalid SAPI 1");
|
||||
}
|
||||
[] BSSAP.receive { repeat; }
|
||||
|
@ -2447,12 +2445,11 @@ testcase TC_rll_est_ind_inval_sapi3() runs on test_CT {
|
|||
|
||||
var RslChannelNr chan_nr := f_chreq_act_ack();
|
||||
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(3)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(3)), c_l3_payload));
|
||||
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) {
|
||||
setverdict(fail, "MSC received COMPL L3 for invalid SAPI 3");
|
||||
}
|
||||
[] BSSAP.receive { repeat; }
|
||||
|
@ -2471,12 +2468,11 @@ testcase TC_rll_est_ind_inval_sacch() runs on test_CT {
|
|||
|
||||
var RslChannelNr chan_nr := f_chreq_act_ack();
|
||||
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_SACCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_SACCH(0)), c_l3_payload));
|
||||
|
||||
T.start;
|
||||
alt {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
|
||||
[] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) {
|
||||
setverdict(fail, "MSC received COMPL L3 for invalid Link SACCH");
|
||||
}
|
||||
[] BSSAP.receive { repeat; }
|
||||
|
@ -2741,7 +2737,7 @@ function f_test_si2quater(integer total_earfcns, template SystemInformationConfi
|
|||
var BSSAP_N_DATA_ind rx_di;
|
||||
var DchanTuple dt;
|
||||
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
/* Send CommonID with some random PLMN (BSC doesn't take it into account
|
||||
* yet when generating the EUTRAN neigh list in RR CHannel Release) */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O)));
|
||||
|
@ -7555,7 +7551,7 @@ testcase TC_bssap_rlsd_does_not_cause_bssmap_reset() runs on test_CT {
|
|||
/* Setup a BSSAP connection and clear it right away. This is
|
||||
* the MSC telling the BSC about a planned release, it's not an
|
||||
* erratic loss of a connection. */
|
||||
dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O);
|
||||
dt := f_est_dchan(int2oct(i,1), 23+i, c_l3_payload);
|
||||
|
||||
/* MSC disconnects (RLSD). */
|
||||
BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
|
||||
|
@ -7599,7 +7595,7 @@ testcase TC_bssmap_clear_does_not_cause_bssmap_reset() runs on test_CT {
|
|||
/* Setup a BSSAP connection and clear it right away. This is
|
||||
* the MSC telling the BSC about a planned release, it's not an
|
||||
* erratic loss of a connection. */
|
||||
dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O);
|
||||
dt := f_est_dchan(int2oct(i,1), 23+i, c_l3_payload);
|
||||
|
||||
/* Instruct BSC to clear channel */
|
||||
BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause)));
|
||||
|
@ -7645,7 +7641,7 @@ testcase TC_ms_rel_ind_does_not_cause_bssmap_reset() runs on test_CT {
|
|||
/* Setup a BSSAP connection and clear it right away. This is
|
||||
* the MSC telling the BSC about a planned release, it's not an
|
||||
* erratic loss of a connection. */
|
||||
dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* simulate RLL REL IND */
|
||||
f_ipa_tx(ts_RSL_REL_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0))));
|
||||
|
@ -7959,7 +7955,7 @@ testcase TC_dyn_ts_sdcch8_act_deact() runs on test_CT {
|
|||
var DchanTuples sdcch_cleanup := {};
|
||||
var integer i;
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i + 1) {
|
||||
dt := f_est_dchan('23'O, i, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, i, c_l3_payload);
|
||||
sdcch_cleanup := sdcch_cleanup & { dt };
|
||||
}
|
||||
|
||||
|
@ -8036,14 +8032,14 @@ testcase TC_dyn_ts_sdcch8_all_subslots_used() runs on test_CT {
|
|||
*/
|
||||
var DchanTuples chan_cleanup := {};
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* Only the dyn TS is still available. Its first lchan gets converted to SDCCH8 */
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan_dyn('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan_dyn('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
/* Also occupy the seven other SDCCH of the dyn TS */
|
||||
for (i := 0; i < 7; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* Clean up SDCCH lchans */
|
||||
|
@ -8097,7 +8093,7 @@ testcase TC_dyn_ts_sdcch8_tch_call_act_deact() runs on test_CT {
|
|||
var DchanTuples chan_cleanup := {};
|
||||
var OCT1 ra := '43'O; /* RA containing reason=originating speech call*/
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i + 1) {
|
||||
dt := f_est_dchan(ra, i, '00010203040506'O);
|
||||
dt := f_est_dchan(ra, i, c_l3_payload);
|
||||
chan_cleanup := chan_cleanup & { dt };
|
||||
}
|
||||
|
||||
|
@ -8175,7 +8171,7 @@ testcase TC_dyn_ts_sdcch8_act_nack() runs on test_CT {
|
|||
var DchanTuples chan_cleanup := {};
|
||||
var integer i;
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i + 1) {
|
||||
dt := f_est_dchan('23'O, i, '00010203040506'O);
|
||||
dt := f_est_dchan('23'O, i, c_l3_payload);
|
||||
chan_cleanup := chan_cleanup & { dt };
|
||||
}
|
||||
|
||||
|
@ -9234,12 +9230,11 @@ testcase TC_emerg_premption() runs on test_CT {
|
|||
|
||||
/* Send EST IND for the first TCH, so we get to test the RR release cause */
|
||||
var RslChannelNr first_tch := valueof(t_RslChanNr_Bm(1));
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(first_tch, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(first_tch, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
/* Accept BSSAP conn, so we get to test the Clear Request cause */
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
var integer sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11063,11 +11058,10 @@ testcase TC_imm_ass_post_chan_ack() runs on test_CT {
|
|||
chan_ident_ie.chan_ident.ch_desc.v.tsc);
|
||||
|
||||
/* Check that the lchan is working */
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
dt.sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11111,11 +11105,10 @@ testcase TC_imm_ass_pre_chan_ack() runs on test_CT {
|
|||
f_ipa_tx(ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));
|
||||
|
||||
/* Check that the lchan is working */
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
dt.sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11159,11 +11152,10 @@ testcase TC_imm_ass_pre_ts_ack() runs on test_CT {
|
|||
f_ipa_tx(ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));
|
||||
|
||||
/* Check that the lchan is working */
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
dt.sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11228,11 +11220,10 @@ testcase TC_imm_ass_pre_chan_ack_dyn_ts() runs on test_CT {
|
|||
f_ipa_tx(ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));
|
||||
|
||||
/* Check that the lchan is working */
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
dt.sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11301,11 +11292,10 @@ testcase TC_imm_ass_pre_ts_ack_dyn_ts() runs on test_CT {
|
|||
chan_ident_ie.chan_ident.ch_desc.v.tsc);
|
||||
|
||||
/* Check that the lchan is working */
|
||||
var octetstring l3 := '00010203040506'O;
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
|
||||
f_ipa_tx(ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
|
||||
var BSSAP_N_CONNECT_ind rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
|
||||
BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(c_l3_payload))) -> value rx_c_ind;
|
||||
dt.sccp_conn_id := rx_c_ind.connectionId;
|
||||
BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
|
||||
|
||||
|
@ -11581,7 +11571,7 @@ testcase TC_ratectr_all_available_allocated() runs on test_CT {
|
|||
*/
|
||||
var DchanTuples chan_cleanup := {};
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* Since only bts 0 is connected, expecting all_allocated to become true for both bts 0 and the "global" bsc
|
||||
|
@ -11591,7 +11581,7 @@ testcase TC_ratectr_all_available_allocated() runs on test_CT {
|
|||
|
||||
/* Also fill up all remaining (TCH) channels */
|
||||
for (i := 0; i < NUM_TCHF_PER_BTS + NUM_TCHH_PER_BTS; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* All TCH are now also occupied */
|
||||
|
@ -11631,7 +11621,7 @@ testcase TC_ratectr_all_available_allocated_dyn() runs on test_CT {
|
|||
*/
|
||||
var DchanTuples chan_cleanup := {};
|
||||
for (i := 0; i < NUM_SDCCH_PER_BTS; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* The static SDCCH should now be occupied, while still 3x8 dynamic SDCCH potentially remain. So only
|
||||
|
@ -11641,11 +11631,11 @@ testcase TC_ratectr_all_available_allocated_dyn() runs on test_CT {
|
|||
/* Request more SDCCH, hence convert the first dyn TS to SDCCH8.
|
||||
* Will release them later, so remember all the DchanTuples. */
|
||||
var DchanTuples dyn_sddch := {};
|
||||
dyn_sddch := dyn_sddch & { f_est_dchan_dyn('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
dyn_sddch := dyn_sddch & { f_est_dchan_dyn('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
|
||||
/* Also occupy the seven other SDCCH of the dyn TS */
|
||||
for (i := 0; i < 7; i := i+1) {
|
||||
dyn_sddch := dyn_sddch & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
dyn_sddch := dyn_sddch & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* Now all dynamic SDCCH are also occupied, so for the first time all_allocated:sdcch will trigger... */
|
||||
|
@ -11653,7 +11643,7 @@ testcase TC_ratectr_all_available_allocated_dyn() runs on test_CT {
|
|||
|
||||
/* occupy the remaining TCH, three TCH/F and two TCH/H lchans */
|
||||
for (i := 0; i < 5; i := i+1) {
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O) };
|
||||
chan_cleanup := chan_cleanup & { f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, c_l3_payload) };
|
||||
}
|
||||
|
||||
/* All TCH lchans are now also occupied, both static and dynamic */
|
||||
|
@ -11727,7 +11717,7 @@ testcase TC_chan_alloc_algo_ascending() runs on test_CT {
|
|||
|
||||
/* Expect the BSC to allocate 4 x TCH/F channels on BTS2/TRX0 */
|
||||
for (var integer i := 0; i < 4; i := i + 1) {
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, '00000000'O, {2, 0});
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, c_l3_payload, {2, 0});
|
||||
f_TC_chan_alloc_algo(dt, {2, 0});
|
||||
f_perform_clear_test_ct(dt);
|
||||
}
|
||||
|
@ -11750,7 +11740,7 @@ testcase TC_chan_alloc_algo_descending() runs on test_CT {
|
|||
|
||||
/* Expect the BSC to allocate 5 x TCH/F channels on BTS2/TRX3 */
|
||||
for (var integer i := 0; i < 5; i := i + 1) {
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, '00000000'O, {2, 0});
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, c_l3_payload, {2, 0});
|
||||
f_TC_chan_alloc_algo(dt, {2, 3});
|
||||
f_perform_clear_test_ct(dt);
|
||||
}
|
||||
|
@ -11779,12 +11769,12 @@ testcase TC_chan_alloc_algo_ass_dynamic() runs on test_CT {
|
|||
var DchanTuple dt;
|
||||
|
||||
f_logp(BSCVTY, "Case a) Unknown Uplink RxLev, fall-back to ascending");
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O, TRX0);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload, TRX0);
|
||||
f_TC_chan_alloc_algo(dt, TRX0);
|
||||
f_perform_clear_test_ct(dt);
|
||||
|
||||
f_logp(BSCVTY, "Case b) Not enough RxLev samples, use ascending");
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O, TRX0);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload, TRX0);
|
||||
f_ipa_tx(ts_RSL_MEAS_RES_EMPTY(dt.rsl_chan_nr, 0,
|
||||
ts_RSL_IE_UplinkMeas(30, 0),
|
||||
ts_RSL_IE_BS_Power(0)), TRX0);
|
||||
|
@ -11793,7 +11783,7 @@ testcase TC_chan_alloc_algo_ass_dynamic() runs on test_CT {
|
|||
f_perform_clear_test_ct(dt);
|
||||
|
||||
f_logp(BSCVTY, "Case c) Uplink RxLev below the threshold, use ascending");
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O, TRX0);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload, TRX0);
|
||||
f_ipa_tx(ts_RSL_MEAS_RES_EMPTY(dt.rsl_chan_nr, 0,
|
||||
ts_RSL_IE_UplinkMeas(45, 0),
|
||||
ts_RSL_IE_BS_Power(0)), TRX0);
|
||||
|
@ -11805,7 +11795,7 @@ testcase TC_chan_alloc_algo_ass_dynamic() runs on test_CT {
|
|||
f_perform_clear_test_ct(dt);
|
||||
|
||||
f_logp(BSCVTY, "Case d) Uplink RxLev above the threshold, use descending");
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O, TRX0);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload, TRX0);
|
||||
f_ipa_tx(ts_RSL_MEAS_RES_EMPTY(dt.rsl_chan_nr, 0,
|
||||
ts_RSL_IE_UplinkMeas(50, 0),
|
||||
ts_RSL_IE_BS_Power(0)), TRX0);
|
||||
|
@ -11821,7 +11811,7 @@ testcase TC_chan_alloc_algo_ass_dynamic() runs on test_CT {
|
|||
f_vty_transceive(BSCVTY, "end");
|
||||
|
||||
f_logp(BSCVTY, "Case e) Uplink RxLev above the threshold, but C0 load is not");
|
||||
dt := f_est_dchan('23'O, 23, '00000000'O, TRX0);
|
||||
dt := f_est_dchan('23'O, 23, c_l3_payload, TRX0);
|
||||
f_ipa_tx(ts_RSL_MEAS_RES_EMPTY(dt.rsl_chan_nr, 0,
|
||||
ts_RSL_IE_UplinkMeas(50, 0),
|
||||
ts_RSL_IE_BS_Power(0)), TRX0);
|
||||
|
|
|
@ -1005,7 +1005,7 @@ testcase TC_cbsp_emerg_write_bts_cgi_dchan() runs on cbsp_test_CT {
|
|||
cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)});
|
||||
|
||||
/* first establish a dedicated channel */
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, '00010203040506'O);
|
||||
var DchanTuple dt := f_est_dchan('23'O, 23, c_l3_payload);
|
||||
|
||||
/* then send ETWS PN */
|
||||
f_cbsp_write_emerg(g_cbsp_msg_id, g_cbsp_ser_no, cell_list);
|
||||
|
|
|
@ -279,13 +279,13 @@ testcase TC_chan_act_to_vamos() runs on test_CT {
|
|||
/* verify that DTAP passes through both ways with the right cbits */
|
||||
private function f_verify_dtap() runs on MSC_ConnHdlr
|
||||
{
|
||||
var octetstring l3_data := '00010203040506'O;
|
||||
var PDU_BSSAP rx_bssap_dtap;
|
||||
var octetstring l3_data;
|
||||
|
||||
/* MS to NW */
|
||||
RSL.send(ts_RSL_DATA_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3_data));
|
||||
RSL.send(ts_RSL_DATA_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)), c_l3_payload));
|
||||
BSSAP.receive(tr_BSSAP_DTAP) -> value rx_bssap_dtap;
|
||||
if (not match(rx_bssap_dtap.pdu.dtap, l3_data)) {
|
||||
if (not match(rx_bssap_dtap.pdu.dtap, c_l3_payload)) {
|
||||
setverdict(fail, "unexpected L3 data");
|
||||
mtc.stop;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue