blob: d5f24710677354a77d0330b3de50dc4297ba0389 [file] [log] [blame]
Pau Espin Pedrol7c13cb72022-06-16 19:03:44 +02001module SBC_AP_Templates {
2
3import from General_Types all;
4import from Osmocom_Types all;
5
6import from SBC_AP_IEs all;
7import from SBC_AP_Constants all;
8import from SBC_AP_Containers all;
9import from SBC_AP_PDU_Contents all;
10import from SBC_AP_PDU_Descriptions all;
11
12import from SBC_AP_Types all;
13
14template (value) SBC_AP_PDU
15ts_SBCAP_PWS_RESTART(
16 template (value) Restarted_Cell_List restart_cl,
17 template (value) Global_ENB_ID global_enb_id) := {
18 initiatingMessage := {
19 procedureCode := id_PWS_Restart_Indication,
20 criticality := reject,
21 value_ := {
22 PWS_Restart_Indication := {
23 protocolIEs := {
24 {
25 id := SBC_AP_Constants.id_Restarted_Cell_List,
26 criticality := reject,
27 value_ := { Restarted_Cell_List := restart_cl }
28 }, {
29 id := SBC_AP_Constants.id_Global_ENB_ID,
30 criticality := reject,
31 value_ := { Global_ENB_ID := global_enb_id }
32 }
33 /* List of TAIs (mandatory) */
34 /* List of EAIs (optional) */
35 },
36 protocolExtensions := omit
37 }
38 }
39 }
40}
41
42template (value) SBC_AP_PDU
43ts_SBCAP_PWS_FAILURE(
44 template (value) Failed_Cell_List fail_cl,
45 template (value) Global_ENB_ID global_enb_id) := {
46 initiatingMessage := {
47 procedureCode := id_PWS_Failure_Indication,
48 criticality := reject,
49 value_ := {
50 PWS_Failure_Indication := {
51 protocolIEs := {
52 {
53 id := SBC_AP_Constants.id_Failed_Cell_List,
54 criticality := reject,
55 value_ := { Failed_Cell_List := fail_cl }
56 }, {
57 id := SBC_AP_Constants.id_Global_ENB_ID,
58 criticality := reject,
59 value_ := { Global_ENB_ID := global_enb_id }
60 }
61 },
62 protocolExtensions := omit
63 }
64 }
65 }
66}
67
68/* 4.3.4.2.1 WRITE-REPLACE WARNING REQUEST */
69template (value) SBC_AP_PDU
70ts_SBCAP_WRITE_WARNING(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
71 template (value) uint12_t p_rep_per, template (value) uint16_t p_num_bcast,
72 template (value) OCT2 p_w_type, OCT1 p_dcs,
73 template (value) octetstring p_msg_content) := {
74 initiatingMessage := {
75 procedureCode := id_Write_Replace_Warning,
76 criticality := reject,
77 value_ := {
78 write_Replace_Warning_Request := {
79 protocolIEs := {
80 {
81 id := SBC_AP_Constants.id_Message_Identifier,
82 criticality := reject,
83 value_ := { Message_Identifier := p_msg_id }
84 }, {
85 id := SBC_AP_Constants.id_Serial_Number,
86 criticality := reject,
87 value_ := { Serial_Number := p_ser_nr }
88 /* List of TAIs */
89 /* Warning Area List */
90 }, {
91 id := SBC_AP_Constants.id_Repetition_Period,
92 criticality := reject,
93 value_ := { Repetition_Period := p_rep_per }
94 /* Extended Repetition Period */
95 }, {
96 id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested,
97 criticality := reject,
98 value_ := { Number_of_Broadcasts_Requested := p_num_bcast }
99 }, {
100 id := SBC_AP_Constants.id_Warning_Type,
101 criticality := ignore,
102 value_ := { Warning_Type := p_w_type }
103 }, {
104 /* Warning Security Info */
105 /* Data Coding Scheme */
106 id := SBC_AP_Constants.id_Data_Coding_Scheme,
107 criticality := ignore,
108 value_ := { Data_Coding_Scheme := oct2bit(p_dcs) }
109 }, {
110 /* Warning Message Content */
111 id := SBC_AP_Constants.id_Warning_Message_Content,
112 criticality := ignore,
113 value_ := { Warning_Message_Content := p_msg_content }
114 }
115 /* OMC ID */
116 /* Concurrent Warning Message Indicator */
117 /* Send Write Replace Warning Indication */
118 /* Global eNB ID */
119 /* Warning Area Coordinates */
120 },
121 protocolExtensions := omit
122 }
123 }
124 }
125}
126
127template (present) SBC_AP_PDU
128tr_SBCAP_WRITE_WARNING(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr,
129 template (present) uint12_t p_rep_per,
130 template (present) uint16_t p_num_bcast,
131 template (present) BIT8 dcs := ?,
Pau Espin Pedrol78d80e72022-07-27 14:13:19 +0200132 template (present) octetstring p_msg_content := ?,
133 template (present) Send_Write_Replace_Warning_Indication send_ind := ?
Pau Espin Pedrol7c13cb72022-06-16 19:03:44 +0200134 ) := {
135 initiatingMessage := {
136 procedureCode := id_Write_Replace_Warning,
137 criticality := reject,
138 value_ := {
139 write_Replace_Warning_Request := {
140 protocolIEs := {
141 {
142 id := SBC_AP_Constants.id_Message_Identifier,
143 criticality := reject,
144 value_ := { Message_Identifier := p_msg_id }
145 }, {
146 id := SBC_AP_Constants.id_Serial_Number,
147 criticality := reject,
148 value_ := { Serial_Number := p_ser_nr }
149 /* List of TAIs */
150 /* Warning Area List */
151 }, {
152 id := SBC_AP_Constants.id_Repetition_Period,
153 criticality := reject,
154 value_ := { Repetition_Period := p_rep_per }
155 /* Extended Repetition Period */
156 }, {
157 id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested,
158 criticality := reject,
159 value_ := { Number_of_Broadcasts_Requested := p_num_bcast }
160 }/*, {
161 id := SBC_AP_Constants.id_Warning_Type,
162 criticality := ignore,
163 value_ := { Warning_Type := warn_type }
164 }, {
165 id := SBC_AP_Constants.id_Warning_Security_Information,
166 criticality := reject,
167 value_ := { Warning_Security_Information := ? }
168 }*/, {
169 id := SBC_AP_Constants.id_Data_Coding_Scheme,
170 criticality := ignore,
171 value_ := { Data_Coding_Scheme := dcs }
172 }, {
173 /* Warning Message Content */
174 id := SBC_AP_Constants.id_Warning_Message_Content,
175 criticality := ignore,
176 value_ := { Warning_Message_Content := p_msg_content }
Pau Espin Pedrol7c13cb72022-06-16 19:03:44 +0200177 /* OMC ID */
178 /* Concurrent Warning Message Indicator */
Pau Espin Pedrol78d80e72022-07-27 14:13:19 +0200179 }, {
180 id := SBC_AP_Constants.id_Send_Write_Replace_Warning_Indication,
181 criticality := ignore,
182 value_ := { Send_Write_Replace_Warning_Indication := send_ind }
183 }
Pau Espin Pedrol7c13cb72022-06-16 19:03:44 +0200184 /* Global eNB ID */
185 /* Warning Area Coordinates */
186 },
187 protocolExtensions := omit
188 }
189 }
190 }
191}
192
193/* 4.3.4.2.3 STOP WARNING REQUEST */
194template (value) SBC_AP_PDU
195ts_SBCAP_WRITE_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
196 template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := {
197 successfulOutcome := {
198 procedureCode := id_Write_Replace_Warning,
199 criticality := reject,
200 value_ := {
201 write_Replace_Warning_Response := {
202 protocolIEs := {
203 {
204 id := SBC_AP_Constants.id_Message_Identifier,
205 criticality := reject,
206 value_ := { Message_Identifier := p_msg_id }
207 }, {
208 id := SBC_AP_Constants.id_Serial_Number,
209 criticality := reject,
210 value_ := { Serial_Number := p_ser_nr }
211 }, {
212 id := SBC_AP_Constants.id_Cause,
213 criticality := reject,
214 value_ := { Cause := enum2int(valueof(cause)) }
215 }
216 },
217 protocolExtensions := omit
218 }
219 }
220 }
221}
222
223template (present) SBC_AP_PDU
224tr_SBCAP_STOP_WARNING(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr) := {
225 initiatingMessage := {
226 procedureCode := id_Stop_Warning,
227 criticality := reject,
228 value_ := {
229 stop_Warning_Request := {
230 protocolIEs := {
231 {
232 id := SBC_AP_Constants.id_Message_Identifier,
233 criticality := reject,
234 value_ := { Message_Identifier := p_msg_id }
235 }, {
236 id := SBC_AP_Constants.id_Serial_Number,
237 criticality := reject,
238 value_ := { Serial_Number := p_ser_nr }
239 /* List of TAIs */
240 /* Warning Area List */
241 }
242 },
243 protocolExtensions := omit
244 }
245 }
246 }
247}
248
249/* 4.3.4.2.4 STOP WARNING RESPONSE */
250template (value) SBC_AP_PDU
251ts_SBCAP_STOP_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
252 template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := {
253 successfulOutcome := {
254 procedureCode := id_Stop_Warning,
255 criticality := reject,
256 value_ := {
257 stop_Warning_Response := {
258 protocolIEs := {
259 {
260 id := SBC_AP_Constants.id_Message_Identifier,
261 criticality := reject,
262 value_ := { Message_Identifier := p_msg_id }
263 }, {
264 id := SBC_AP_Constants.id_Serial_Number,
265 criticality := reject,
266 value_ := { Serial_Number := p_ser_nr }
267 }, {
268 id := SBC_AP_Constants.id_Cause,
269 criticality := reject,
270 value_ := { Cause := enum2int(valueof(cause)) }
271 }
272 },
273 protocolExtensions := omit
274 }
275 }
276 }
277}
278
279}