diff options
Diffstat (limited to 'library/sbcap/SBC_AP_Templates.ttcn')
-rw-r--r-- | library/sbcap/SBC_AP_Templates.ttcn | 435 |
1 files changed, 435 insertions, 0 deletions
diff --git a/library/sbcap/SBC_AP_Templates.ttcn b/library/sbcap/SBC_AP_Templates.ttcn new file mode 100644 index 00000000..b0022868 --- /dev/null +++ b/library/sbcap/SBC_AP_Templates.ttcn @@ -0,0 +1,435 @@ +module SBC_AP_Templates { + +import from General_Types all; +import from Osmocom_Types all; + +import from SBC_AP_IEs all; +import from SBC_AP_Constants all; +import from SBC_AP_Containers all; +import from SBC_AP_PDU_Contents all; +import from SBC_AP_PDU_Descriptions all; + +import from SBC_AP_Types all; + +/* 3GPP TS 36.413 9.2.1.38 */ +template (value) EUTRAN_CGI ts_SBCAP_ECGI(PLMNidentity plmn_id := '09F107'O, integer cell_id := 1) := { + pLMNidentity := plmn_id, + cell_ID := int2bit(cell_id, 28), + iE_Extensions := omit +} + +/* 3GPP TS 36.413 9.2.3.16 */ +template (value) TAI ts_SBCAP_TAI(PLMNidentity plmn_id := '09F107'O, uint16_t tac := 1) := { + pLMNidentity := plmn_id, + tAC := int2oct(tac, 2), + iE_Extensions := omit +} + +/* 3GPP TS 36.413 9.2.1.54 */ +template (value) CellId_Broadcast_List_Item ts_SBCAP_CellId_Broadcast_List_Item( + template (value) EUTRAN_CGI ecgi := ts_SBCAP_ECGI()) := { + eCGI := ecgi, + iE_Extensions := omit +} +template (value) Broadcast_Scheduled_Area_List ts_SBCAP_Broadcast_Scheduled_Area_List( + template (value) CellId_Broadcast_List cell_id_li := {ts_SBCAP_CellId_Broadcast_List_Item()}) +:= { + cellId_Broadcast_List := cell_id_li, + tAI_Broadcast_List := omit, + emergencyAreaID_Broadcast_List := omit, + iE_Extensions := omit +} + +template (value) Global_ENB_ID ts_Global_ENB_ID_MACRO(PLMNidentity plmn_id, + integer macro_enb_id) + +:= { + pLMNidentity := plmn_id, + eNB_ID := { + macroENB_ID := int2bit(macro_enb_id, 20) + }, + iE_Extensions := omit +} + +template (value) SBC_AP_PDU +ts_SBCAP_PWS_RESTART( + template (value) Restarted_Cell_List restart_cl, + template (value) Global_ENB_ID global_enb_id) := { + initiatingMessage := { + procedureCode := id_PWS_Restart_Indication, + criticality := reject, + value_ := { + PWS_Restart_Indication := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Restarted_Cell_List, + criticality := reject, + value_ := { Restarted_Cell_List := restart_cl } + }, { + id := SBC_AP_Constants.id_Global_ENB_ID, + criticality := reject, + value_ := { Global_ENB_ID := global_enb_id } + } + /* List of TAIs (mandatory) */ + /* List of EAIs (optional) */ + }, + protocolExtensions := omit + } + } + } +} + +template (value) SBC_AP_PDU +ts_SBCAP_PWS_FAILURE( + template (value) Failed_Cell_List fail_cl, + template (value) Global_ENB_ID global_enb_id) := { + initiatingMessage := { + procedureCode := id_PWS_Failure_Indication, + criticality := reject, + value_ := { + PWS_Failure_Indication := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Failed_Cell_List, + criticality := reject, + value_ := { Failed_Cell_List := fail_cl } + }, { + id := SBC_AP_Constants.id_Global_ENB_ID, + criticality := reject, + value_ := { Global_ENB_ID := global_enb_id } + } + }, + protocolExtensions := omit + } + } + } +} + +/* 4.3.4.2.1 WRITE-REPLACE WARNING REQUEST */ +template (value) SBC_AP_PDU +ts_SBCAP_WRITE_WARNING(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr, + template (value) uint12_t p_rep_per, template (value) uint16_t p_num_bcast, + template (value) OCT2 p_w_type, OCT1 p_dcs, + template (value) octetstring p_msg_content) := { + initiatingMessage := { + procedureCode := id_Write_Replace_Warning, + criticality := reject, + value_ := { + write_Replace_Warning_Request := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + /* List of TAIs */ + /* Warning Area List */ + }, { + id := SBC_AP_Constants.id_Repetition_Period, + criticality := reject, + value_ := { Repetition_Period := p_rep_per } + /* Extended Repetition Period */ + }, { + id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested, + criticality := reject, + value_ := { Number_of_Broadcasts_Requested := p_num_bcast } + }, { + id := SBC_AP_Constants.id_Warning_Type, + criticality := ignore, + value_ := { Warning_Type := p_w_type } + }, { + /* Warning Security Info */ + /* Data Coding Scheme */ + id := SBC_AP_Constants.id_Data_Coding_Scheme, + criticality := ignore, + value_ := { Data_Coding_Scheme := oct2bit(p_dcs) } + }, { + /* Warning Message Content */ + id := SBC_AP_Constants.id_Warning_Message_Content, + criticality := ignore, + value_ := { Warning_Message_Content := p_msg_content } + } + /* OMC ID */ + /* Concurrent Warning Message Indicator */ + /* Send Write Replace Warning Indication */ + /* Global eNB ID */ + /* Warning Area Coordinates */ + }, + protocolExtensions := omit + } + } + } +} + +/* 4.3.4.2.1 WRITE-REPLACE WARNING REQUEST */ +template (present) SBC_AP_PDU +tr_SBCAP_WRITE_WARNING_REQ_CBS(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr, + template (present) uint12_t p_rep_per, + template (present) uint16_t p_num_bcast, + template (present) BIT8 dcs := ?, + template (present) octetstring p_msg_content := ?, + template (present) Send_Write_Replace_Warning_Indication send_ind := ?, + template (present) Concurrent_Warning_Message_Indicator concurrent_ind := ? + ) := { + initiatingMessage := { + procedureCode := id_Write_Replace_Warning, + criticality := reject, + value_ := { + write_Replace_Warning_Request := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + /* List of TAIs */ + /* Warning Area List */ + }, { + id := SBC_AP_Constants.id_Repetition_Period, + criticality := reject, + value_ := { Repetition_Period := p_rep_per } + /* Extended Repetition Period */ + }, { + id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested, + criticality := reject, + value_ := { Number_of_Broadcasts_Requested := p_num_bcast } + }, { + id := SBC_AP_Constants.id_Data_Coding_Scheme, + criticality := ignore, + value_ := { Data_Coding_Scheme := dcs } + }, { + /* Warning Message Content */ + id := SBC_AP_Constants.id_Warning_Message_Content, + criticality := ignore, + value_ := { Warning_Message_Content := p_msg_content } + /* OMC ID */ + /* Concurrent Warning Message Indicator */ + }, { + id := SBC_AP_Constants.id_Concurrent_Warning_Message_Indicator, + criticality := reject, + value_ := { Concurrent_Warning_Message_Indicator := concurrent_ind } + }, { + id := SBC_AP_Constants.id_Send_Write_Replace_Warning_Indication, + criticality := ignore, + value_ := { Send_Write_Replace_Warning_Indication := send_ind } + } + /* Global eNB ID */ + /* Warning Area Coordinates */ + }, + protocolExtensions := omit + } + } + } +} + +template (present) SBC_AP_PDU +tr_SBCAP_WRITE_WARNING_REQ_ETWS(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr, + template (present) uint12_t p_rep_per, + template (present) uint16_t p_num_bcast, + template (present) Warning_Type warn_type := ?, + template (present) Send_Write_Replace_Warning_Indication send_ind := ? + ) := { + initiatingMessage := { + procedureCode := id_Write_Replace_Warning, + criticality := reject, + value_ := { + write_Replace_Warning_Request := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + /* List of TAIs */ + /* Warning Area List */ + }, { + id := SBC_AP_Constants.id_Repetition_Period, + criticality := reject, + value_ := { Repetition_Period := p_rep_per } + /* Extended Repetition Period */ + }, { + id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested, + criticality := reject, + value_ := { Number_of_Broadcasts_Requested := p_num_bcast } + }, { + id := SBC_AP_Constants.id_Warning_Type, + criticality := ignore, + value_ := { Warning_Type := warn_type } + }, { + id := SBC_AP_Constants.id_Warning_Security_Information, + criticality := ignore, + value_ := { Warning_Security_Information := ? } + }, { + id := SBC_AP_Constants.id_Send_Write_Replace_Warning_Indication, + criticality := ignore, + value_ := { Send_Write_Replace_Warning_Indication := send_ind } + } + /* Global eNB ID */ + /* Warning Area Coordinates */ + }, + protocolExtensions := omit + } + } + } +} + +/* 4.3.4.2.5 WRITE REPLACE WARNING INDICATION */ +template (value) SBC_AP_PDU +ts_SBCAP_WRITE_WARNING_IND(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr, + template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted, + template (value) CellId_Broadcast_List bcast_cell_id_li := {ts_SBCAP_CellId_Broadcast_List_Item()}) := { + initiatingMessage := { + procedureCode := id_Write_Replace_Warning_Indication, + criticality := ignore, + value_ := { + write_Replace_Warning_Indication := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + }, { + id := SBC_AP_Constants.id_Broadcast_Scheduled_Area_List, + criticality := reject, + value_ := { broadcast_Scheduled_Area_List := ts_SBCAP_Broadcast_Scheduled_Area_List(bcast_cell_id_li) } + } + }, + protocolExtensions := omit + } + } + } +} + +/* 4.3.4.2.2 WRITE-REPLACE WARNING RESPONSE */ +template (value) SBC_AP_PDU +ts_SBCAP_WRITE_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr, + template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := { + successfulOutcome := { + procedureCode := id_Write_Replace_Warning, + criticality := reject, + value_ := { + write_Replace_Warning_Response := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + }, { + id := SBC_AP_Constants.id_Cause, + criticality := reject, + value_ := { Cause := enum2int(valueof(cause)) } + } + }, + protocolExtensions := omit + } + } + } +} + +template (value) SBC_AP_PDU +ts_SBCAP_WRITE_WARNING_RESP_UNKNOWN_TAI(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr, + template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted, + template (value) List_of_TAIs unknown_tai_list := {{ts_SBCAP_TAI}}) +modifies ts_SBCAP_WRITE_WARNING_RESP := { + successfulOutcome := { + value_ := { + write_Replace_Warning_Response := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + }, { + id := SBC_AP_Constants.id_Cause, + criticality := reject, + value_ := { Cause := enum2int(valueof(cause)) } + }, { + id := SBC_AP_Constants.id_Unknown_Tracking_Area_List, + criticality := ignore, + value_ := { List_of_TAIs := unknown_tai_list } + } + } + } + } + } +} + +/* 4.3.4.2.3 STOP WARNING REQUEST */ +template (present) SBC_AP_PDU +tr_SBCAP_STOP_WARNING(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr) := { + initiatingMessage := { + procedureCode := id_Stop_Warning, + criticality := reject, + value_ := { + stop_Warning_Request := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + /* List of TAIs */ + /* Warning Area List */ + } + }, + protocolExtensions := omit + } + } + } +} + +/* 4.3.4.2.4 STOP WARNING RESPONSE */ +template (value) SBC_AP_PDU +ts_SBCAP_STOP_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr, + template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := { + successfulOutcome := { + procedureCode := id_Stop_Warning, + criticality := reject, + value_ := { + stop_Warning_Response := { + protocolIEs := { + { + id := SBC_AP_Constants.id_Message_Identifier, + criticality := reject, + value_ := { Message_Identifier := p_msg_id } + }, { + id := SBC_AP_Constants.id_Serial_Number, + criticality := reject, + value_ := { Serial_Number := p_ser_nr } + }, { + id := SBC_AP_Constants.id_Cause, + criticality := reject, + value_ := { Cause := enum2int(valueof(cause)) } + } + }, + protocolExtensions := omit + } + } + } +} + +} |