RSL_Types: Add dissected RSL_IE_ActivationType and related templates
This is required for supporting normal and handover assignments.
Change-Id: I116d589d0ec4aa6bffba4da6e3bfe1974dd04db2
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index 0d772b3..cfe2845 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -273,20 +273,44 @@
type record RSL_IE_ActivationType {
boolean reactivation,
uint4_t reserved,
- uint3_t a_bits
- }
+ RSL_ActivationAbits a_bits
+ };
+ type enumerated RSL_ActivationAbits {
+ ACT_REL_TO_IMM_ASSIGN ('000'B),
+ ACT_REL_TO_NORM_ASSIGN ('001'B),
+ ACT_REL_TO_ASYNC_HANDOVER ('010'B),
+ ACT_REL_TO_SYNC_HANDOVER ('011'B),
+ ACT_REL_TO_ADDL_ASSIGN ('100'B),
+ ACT_REL_TO_MSLOT_CONFIG ('101'B),
+ ACT_REL_TO_OSMO_PDCH ('111'B)
+ } with { variant "FIELDLENGTH(3)" };
- template RSL_IE_ActivationType t_RSL_IE_ActType := {
+ const RSL_IE_ActivationType t_RSL_IE_ActType_IA := {
reactivation := false,
reserved := 0,
- a_bits := 0 /* related to immediate assignment */
+ a_bits := ACT_REL_TO_IMM_ASSIGN
+ }
+ const RSL_IE_ActivationType t_RSL_IE_ActType_ASS := {
+ reactivation := false,
+ reserved := 0,
+ a_bits := ACT_REL_TO_NORM_ASSIGN
+ }
+ const RSL_IE_ActivationType t_RSL_IE_ActType_HO_ASYNC := {
+ reactivation := false,
+ reserved := 0,
+ a_bits := ACT_REL_TO_ASYNC_HANDOVER
+ }
+ const RSL_IE_ActivationType t_RSL_IE_ActType_HO_SYNC := {
+ reactivation := false,
+ reserved := 0,
+ a_bits := ACT_REL_TO_SYNC_HANDOVER
}
/* osmocom-style dynamic PDCH */
- template RSL_IE_ActivationType t_RSL_IE_ActType_PDCH := {
+ const RSL_IE_ActivationType t_RSL_IE_ActType_PDCH := {
reactivation := false,
reserved := 1,
- a_bits := 7 /* related to immediate assignment */
+ a_bits := ACT_REL_TO_OSMO_PDCH
}
/* 9.3.6 */
@@ -1122,23 +1146,25 @@
/* 8.4.1 BSC -> BTS */
template (value) RSL_Message ts_RSL_CHAN_ACT(template (value) RslChannelNr chan_nr,
- template (value) RSL_IE_ChannelMode mode) := {
+ template (value) RSL_IE_ChannelMode mode,
+ template (value) RSL_IE_ActivationType at := t_RSL_IE_ActType_IA) := {
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 := t_RSL_IE_ActType}),
+ t_RSL_IE(RSL_IE_ACT_TYPE, RSL_IE_Body:{act_type := at}),
t_RSL_IE(RSL_IE_CHAN_MODE, RSL_IE_Body:{chan_mode := mode})
/* lots of optional IEs */
}
}
template RSL_Message tr_RSL_CHAN_ACT(template RslChannelNr chan_nr,
- template RSL_IE_ChannelMode mode) := {
+ template RSL_IE_ChannelMode mode,
+ template (value) RSL_IE_ActivationType at := t_RSL_IE_ActType_IA) := {
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}),
+ tr_RSL_IE(RSL_IE_Body:{act_type := at}),
tr_RSL_IE(RSL_IE_Body:{chan_mode := mode}),
/* lots of optional IEs */
*