From cc373205ad235fd8a9564014373b9f48060bd146 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 10 Sep 2018 10:28:21 +0200 Subject: rsl: Add SMSCB related RSL types / templates Change-Id: I203e72a203ffa7538aadc7b96e1ae7e21956c160 --- library/RSL_Types.ttcn | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index 95a7b1ff..79921320 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), -- cgit v1.2.3