summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-09-10 10:28:21 +0200
committerHarald Welte <laforge@gnumonks.org>2018-09-16 12:41:11 +0200
commitcc373205ad235fd8a9564014373b9f48060bd146 (patch)
tree4248c41f26899c507cb1468bf4e8ad50b665d6d9
parentf50e3ae53288095ed02e6cb55ea2bea2c34bfdd9 (diff)
rsl: Add SMSCB related RSL types / templates
-rw-r--r--library/RSL_Types.ttcn54
1 files changed, 54 insertions, 0 deletions
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index 95a7b1f..7992132 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -577,6 +577,28 @@ module RSL_Types {
RSL_ChanNeeded chan_needed
}
+ /* 9.3.41 CB Command Type */
+ type enumerated RSL_CbCommand {
+ RSL_CB_CMD_NORMAL ('0000'B),
+ RSL_CB_CMD_SCHEDULE ('1000'B),
+ RSL_CB_CMD_DEFAULT ('1110'B),
+ RSL_CB_CMD_NULL ('1111'B)
+ } with { variant "FIELDLENGTH(4)" };
+ type record RSL_IE_CbCommandType {
+ RSL_CbCommand command,
+ boolean default_bcast_null,
+ BIT1 spare,
+ uint2_t last_block
+ };
+ template (value) RSL_IE_CbCommandType ts_RSL_IE_CbCmdType(RSL_CbCommand cmd := RSL_CB_CMD_NORMAL,
+ uint2_t last_block := 1,
+ boolean def_bcast_null := true) := {
+ command := cmd,
+ default_bcast_null := def_bcast_null,
+ spare := '0'B,
+ last_block := last_block
+ }
+
/* 9.3.53 */
type record RSL_IE_MultirateCtrl {
uint3_t spare,
@@ -678,6 +700,9 @@ module RSL_Types {
uint16_t paging_load,
uint8_t paging_group,
RSL_IE_ChanNeeded chan_needed,
+ RSL_IE_CbCommandType cb_cmd_type,
+ RSL_LV smscb_message,
+
RSL_IE_StartingTime starting_time,
RSL_IE_EncryptionInfo encr_info,
RSL_IE_RequestRef req_ref,
@@ -726,6 +751,8 @@ module RSL_Types {
paging_load, iei = RSL_IE_PAGING_LOAD;
paging_group, iei = RSL_IE_PAGING_GROUP;
chan_needed, iei = RSL_IE_CHAN_NEEDED;
+ cb_cmd_type, iei = RSL_IE_CB_CMD_TYPE;
+ smscb_message, iei = RSL_IE_SMSCB_MSG;
starting_time, iei = RSL_IE_STARTNG_TIME;
encr_info, iei = RSL_IE_ENCR_INFO;
@@ -1467,6 +1494,33 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
ies := *
}
+ /* 8.5.8 BTS <- BSC SMS BROADCAST COMMAND */
+ template RSL_Message tr_RSL_SMSCB_CMD(template RSL_IE_CbCommandType cb_cmd := ?,
+ template octetstring msg := ?,
+ template RslChannelNr chan_nr := ?) := {
+ msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
+ msg_type := RSL_MT_SMS_BC_CMD,
+ ies := {
+ tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}),
+ tr_RSL_IE(RSL_IE_Body:{cb_cmd_type := cb_cmd}),
+ tr_RSL_IE(RSL_IE_Body:{smscb_message := tr_RSL_LV(msg)}),
+ *
+ }
+ }
+ template (value) RSL_Message ts_RSL_SMSCB_CMD(template (value) RSL_IE_CbCommandType cb_cmd,
+ template (value) octetstring msg,
+ template (value) RslChannelNr chan_nr :=
+ ts_RslChanNr_SDCCH4(0, 2)) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
+ msg_type := RSL_MT_SMS_BC_CMD,
+ ies := {
+ t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}),
+ t_RSL_IE(RSL_IE_CB_CMD_TYPE, RSL_IE_Body:{cb_cmd_type := cb_cmd}),
+ t_RSL_IE(RSL_IE_SMSCB_MSG, RSL_IE_Body:{smscb_message := ts_RSL_LV(msg)})
+ /* optional channel type for extended CBCH */
+ }
+ }
+
/* 8.6.2 BTS <- BSC */
template (value) RSL_Message ts_RSL_SACCH_FILL(RSL_IE_SysinfoType si_type, octetstring l3_info) := {
msg_disc := ts_RSL_MsgDisc(RSL_MDISC_TRX_MGMT, false),