library/RSL_Types: fix CHAN ACT templates for dynamic timeslots
* t_RSL_IE_ActType_PDCH is actually a constant, not a template. * tr_RSL_CHAN_ACT_PDCH makes no use of parameter 'mode'. * Accomplish tr_RSL_CHAN_ACT_PDCH with a send template. * Use 'present' qualifier for receive template parameters. Change-Id: Ie62a92daaacf4de5f05dd1f3f5b4a2a5e4ee6dd6
This commit is contained in:
parent
637beabd09
commit
58b165383f
|
@ -7374,7 +7374,7 @@ testcase TC_dyn_pdch_osmo_act_deact() runs on test_CT {
|
|||
log("TCH/F_TCH/H_PDCH pchan starts out in disabled mode:");
|
||||
f_ts_dyn_mode_assert(0, 0, chan_nr.tn, NONE_MODE);
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
|
@ -7403,7 +7403,7 @@ testcase TC_dyn_pdch_osmo_act_nack() runs on test_CT {
|
|||
|
||||
f_ts_dyn_mode_assert(0, 0, chan_nr.tn, NONE_MODE);
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
|
||||
/* NACK this activation and expect the "show timeslot" mode still to be NONE */
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_NACK(chan_nr, RSL_ERR_EQUIPMENT_FAIL));
|
||||
|
@ -7435,7 +7435,7 @@ testcase TC_dyn_ts_sdcch8_act_deact() runs on test_CT {
|
|||
log("TCH/F_TCH/H_SDCCH8_PDCH pchan starts out in disabled mode:");
|
||||
f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, NONE_MODE);
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
|
@ -7473,7 +7473,7 @@ testcase TC_dyn_ts_sdcch8_act_deact() runs on test_CT {
|
|||
f_exp_chan_rel_and_clear(dt, 0);
|
||||
|
||||
/* The BSC will switch the TS back to PDCH once the only lchan using it is released: */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, PDCH_MODE);
|
||||
|
@ -7505,7 +7505,7 @@ testcase TC_dyn_ts_sdcch8_all_subslots_used() runs on test_CT {
|
|||
/* The dyn TS want to activate PDCH mode, ACK that. */
|
||||
var RslChannelNr chan_nr;
|
||||
chan_nr := valueof(t_RslChanNr_PDCH(2));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
|
||||
|
||||
f_sleep(1.0);
|
||||
|
@ -7559,7 +7559,7 @@ testcase TC_dyn_ts_sdcch8_tch_call_act_deact() runs on test_CT {
|
|||
log("TCH/F_TCH/H_SDCCH8_PDCH pchan starts out in disabled mode:");
|
||||
f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, NONE_MODE);
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
|
@ -7597,7 +7597,7 @@ testcase TC_dyn_ts_sdcch8_tch_call_act_deact() runs on test_CT {
|
|||
f_exp_chan_rel_and_clear(dt, 0);
|
||||
|
||||
/* The BSC will switch the TS back to PDCH once the only lchan using it is released: */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, PDCH_MODE);
|
||||
|
@ -7629,7 +7629,7 @@ testcase TC_dyn_ts_sdcch8_act_nack() runs on test_CT {
|
|||
log("TCH/F_TCH/H_SDCCH8_PDCH pchan starts out in disabled mode:");
|
||||
f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, NONE_MODE);
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
f_sleep(1.0);
|
||||
|
@ -7662,7 +7662,7 @@ testcase TC_dyn_ts_sdcch8_act_nack() runs on test_CT {
|
|||
/* FIXME? Currently the TS stays in state BORKEN: */
|
||||
|
||||
/* The BSC will switch the TS back to PDCH once the only lchan using it is released: */
|
||||
/* rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr, ?));
|
||||
/* rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(pdch_chan_nr));
|
||||
* f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(pdch_chan_nr, 2342));
|
||||
* f_sleep(1.0);
|
||||
* f_ts_dyn_mode_assert(0, 0, pdch_chan_nr.tn, PDCH_MODE)
|
||||
|
@ -10319,7 +10319,7 @@ testcase TC_imm_ass_pre_chan_ack_dyn_ts() runs on test_CT {
|
|||
|
||||
var RslChannelNr chan_nr := valueof(t_RslChanNr_PDCH(6));
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2323));
|
||||
|
||||
/* clean up timeslot 6 config, will only take effect when the OML drops the next time */
|
||||
|
@ -10391,7 +10391,7 @@ testcase TC_imm_ass_pre_ts_ack_dyn_ts() runs on test_CT {
|
|||
|
||||
var RslChannelNr chan_nr := valueof(t_RslChanNr_PDCH(6));
|
||||
/* The BSC will activate the dynamic PDCH by default, so confirm that */
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2323));
|
||||
|
||||
/* clean up timeslot 6 config, will only take effect when the OML drops the next time */
|
||||
|
@ -10723,7 +10723,7 @@ testcase TC_ratectr_all_available_allocated_dyn() runs on test_CT {
|
|||
/* The dyn TS wants to activate PDCH mode, ACK that. */
|
||||
var RslChannelNr chan_nr;
|
||||
chan_nr := valueof(t_RslChanNr_PDCH(2));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
|
||||
|
||||
/* Exhaust all dedicated SDCCH lchans.
|
||||
|
@ -10781,7 +10781,7 @@ testcase TC_ratectr_all_available_allocated_dyn() runs on test_CT {
|
|||
|
||||
/* All SDCCH on the dyn TS are released, the dyn TS wants to activate PDCH again */
|
||||
chan_nr := valueof(t_RslChanNr_PDCH(2));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
|
||||
f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr));
|
||||
f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
|
||||
|
||||
/* Now all channels are occupied except the dyn TS, so expecting only the static counters to increment */
|
||||
|
|
|
@ -318,7 +318,7 @@ module RSL_Types {
|
|||
}
|
||||
|
||||
/* osmocom-style dynamic PDCH */
|
||||
const RSL_IE_ActivationType t_RSL_IE_ActType_PDCH := {
|
||||
const RSL_IE_ActivationType c_RSL_IE_ActType_PDCH := {
|
||||
reactivation := false,
|
||||
reserved := 1,
|
||||
a_bits := ACT_REL_TO_OSMO_PDCH
|
||||
|
@ -1400,13 +1400,23 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
|
|||
*
|
||||
}
|
||||
}
|
||||
template RSL_Message tr_RSL_CHAN_ACT_PDCH(template RslChannelNr chan_nr,
|
||||
template RSL_IE_ChannelMode mode) := {
|
||||
|
||||
template (value) RSL_Message
|
||||
ts_RSL_CHAN_ACT_PDCH(template (value) RslChannelNr chan_nr) := {
|
||||
msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
|
||||
msg_type := RSL_MT_CHAN_ACTIV,
|
||||
ies :={
|
||||
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
|
||||
t_RSL_IE(RSL_IE_ACT_TYPE, RSL_IE_Body:{act_type := c_RSL_IE_ActType_PDCH})
|
||||
}
|
||||
}
|
||||
template RSL_Message
|
||||
tr_RSL_CHAN_ACT_PDCH(template (present) RslChannelNr chan_nr) := {
|
||||
msg_disc := tr_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
|
||||
msg_type := RSL_MT_CHAN_ACTIV,
|
||||
ies :={
|
||||
tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}),
|
||||
tr_RSL_IE(RSL_IE_Body:{act_type := t_RSL_IE_ActType_PDCH}),
|
||||
tr_RSL_IE(RSL_IE_Body:{act_type := c_RSL_IE_ActType_PDCH}),
|
||||
/* lots of optional IEs */
|
||||
*
|
||||
}
|
||||
|
@ -2320,14 +2330,16 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
|
|||
}
|
||||
|
||||
|
||||
template (value) RSL_Message ts_RSL_IPA_PDCH_ACT(RslChannelNr chan_nr) := {
|
||||
template (value) RSL_Message
|
||||
ts_RSL_IPA_PDCH_ACT(template (value) RslChannelNr chan_nr) := {
|
||||
msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
|
||||
msg_type := RSL_MT_IPAC_PDCH_ACT,
|
||||
ies := {
|
||||
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr})
|
||||
}
|
||||
}
|
||||
template RSL_Message tr_RSL_IPA_PDCH_ACT(template RslChannelNr chan_nr) := {
|
||||
template RSL_Message
|
||||
tr_RSL_IPA_PDCH_ACT(template (present) RslChannelNr chan_nr) := {
|
||||
msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
|
||||
msg_type := RSL_MT_IPAC_PDCH_ACT,
|
||||
ies := {
|
||||
|
|
Loading…
Reference in New Issue