aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-04-05 09:08:26 +0200
committerHarald Welte <laforge@gnumonks.org>2018-04-05 09:35:01 +0200
commitee19c73d81ec5ebb8760c1bc8faa937f4e0eb85f (patch)
treec8c967b1111bba2fe6770e7ddf3d26495281b292 /library
parent3d04ae6c550d240ac01742af8fb419cc5a97d02a (diff)
RSL_Types: Fix msg_disc of IPA PDCH ACT/DEACT + inverse templates
The MDISC_IPACCESS is only used for the media (CRCX/MDCX/DLCX) related commands, not for the PDCH activation/deactivation. The latter uses normal MDISC_DCHAN. Also, add the inverse templates for PDCH actiation/deactivation, so we now have both receive and transmit template for each of the 6 related messages (activation, deactivation, plus each their ACK + NACK). Change-Id: I170a90391859d71e1f96a72205487cccba5b6ae7
Diffstat (limited to 'library')
-rw-r--r--library/RSL_Types.ttcn61
1 files changed, 55 insertions, 6 deletions
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index f26a1d85..5dba470f 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -1547,34 +1547,67 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
}
+ template RSL_Message ts_RSL_IPA_PDCH_ACT(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) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_ACT,
ies := {
tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr})
}
}
+
template RSL_Message ts_RSL_IPA_PDCH_ACT_ACK(RslChannelNr chan_nr, RSL_IE_FrameNumber fn) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_ACT_ACK,
ies := {
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
t_RSL_IE(RSL_IE_FRAME_NUMBER, RSL_IE_Body:{frame_nr := fn})
}
}
+ template RSL_Message tr_RSL_IPA_PDCH_ACT_ACK(template RslChannelNr chan_nr,
+ template RSL_IE_FrameNumber fn) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_IPAC_PDCH_ACT_ACK,
+ ies := {
+ tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}),
+ tr_RSL_IE(RSL_IE_Body:{frame_nr := fn})
+ }
+ }
template RSL_Message ts_RSL_IPA_PDCH_ACT_NACK(RslChannelNr chan_nr, RSL_Cause cause) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_ACT_NACK,
ies := {
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
t_RSL_IE(RSL_IE_CAUSE, RSL_IE_Body:{cause := ts_RSL_IE_Cause(cause)})
}
}
+ template RSL_Message tr_RSL_IPA_PDCH_ACT_NACK(template RslChannelNr chan_nr,
+ template RSL_Cause cause) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_IPAC_PDCH_ACT_NACK,
+ ies := {
+ tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}),
+ tr_RSL_IE(RSL_IE_Body:{cause := tr_RSL_IE_Cause(cause)})
+ }
+ }
+ template RSL_Message ts_RSL_IPA_PDCH_DEACT(RslChannelNr chan_nr) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_IPAC_PDCH_DEACT,
+ ies := {
+ t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr})
+ }
+ }
template RSL_Message tr_RSL_IPA_PDCH_DEACT(template RslChannelNr chan_nr) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_DEACT,
ies := {
tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr})
@@ -1582,21 +1615,37 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
}
template RSL_Message ts_RSL_IPA_PDCH_DEACT_ACK(RslChannelNr chan_nr) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_DEACT_ACK,
ies := {
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr})
}
}
+ template RSL_Message tr_RSL_IPA_PDCH_DEACT_ACK(template RslChannelNr chan_nr) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_IPAC_PDCH_DEACT_ACK,
+ ies := {
+ tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr})
+ }
+ }
template RSL_Message ts_RSL_IPA_PDCH_DEACT_NACK(RslChannelNr chan_nr, RSL_Cause cause) := {
- msg_disc := ts_RSL_MsgDisc(RSL_MDISC_IPACCESS, false),
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
msg_type := RSL_MT_IPAC_PDCH_DEACT_NACK,
ies := {
t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
t_RSL_IE(RSL_IE_CAUSE, RSL_IE_Body:{cause := ts_RSL_IE_Cause(cause)})
}
}
+ template RSL_Message tr_RSL_IPA_PDCH_DEACT_NACK(template RslChannelNr chan_nr,
+ template RSL_Cause cause) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_IPAC_PDCH_DEACT_NACK,
+ ies := {
+ tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}),
+ tr_RSL_IE(RSL_IE_Body:{cause := tr_RSL_IE_Cause(cause)})
+ }
+ }
function f_rsl_find_ie(RSL_Message msg, RSL_IE_Type iei, out RSL_IE_Body ret) return boolean {