aboutsummaryrefslogtreecommitdiffstats
path: root/bsc
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-01-02 17:54:59 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2023-01-02 18:41:59 +0100
commit695ada5f725ac36f6b7394695867230b686eb529 (patch)
tree9898daa4b982474ae370b317a0f0043b4c92d5e8 /bsc
parent289056cf9bea37977d1fb2d54b2b60348d9a7710 (diff)
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
Diffstat (limited to 'bsc')
-rw-r--r--bsc/BSC_Tests.ttcn134
-rw-r--r--bsc/BSC_Tests_CBSP.ttcn2
-rw-r--r--bsc/BSC_Tests_VAMOS.ttcn6
3 files changed, 66 insertions, 76 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 501b3e93..de5b390b 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -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);
diff --git a/bsc/BSC_Tests_CBSP.ttcn b/bsc/BSC_Tests_CBSP.ttcn
index c07b6057..ae77ac82 100644
--- a/bsc/BSC_Tests_CBSP.ttcn
+++ b/bsc/BSC_Tests_CBSP.ttcn
@@ -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);
diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index cd9ffd02..3ebcaaa2 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -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;
}