blob: c0c0837e66f206288cf7ab726572248b4c5f890c [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 := ?,
132 template (present) octetstring p_msg_content := ?
133 ) := {
134 initiatingMessage := {
135 procedureCode := id_Write_Replace_Warning,
136 criticality := reject,
137 value_ := {
138 write_Replace_Warning_Request := {
139 protocolIEs := {
140 {
141 id := SBC_AP_Constants.id_Message_Identifier,
142 criticality := reject,
143 value_ := { Message_Identifier := p_msg_id }
144 }, {
145 id := SBC_AP_Constants.id_Serial_Number,
146 criticality := reject,
147 value_ := { Serial_Number := p_ser_nr }
148 /* List of TAIs */
149 /* Warning Area List */
150 }, {
151 id := SBC_AP_Constants.id_Repetition_Period,
152 criticality := reject,
153 value_ := { Repetition_Period := p_rep_per }
154 /* Extended Repetition Period */
155 }, {
156 id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested,
157 criticality := reject,
158 value_ := { Number_of_Broadcasts_Requested := p_num_bcast }
159 }/*, {
160 id := SBC_AP_Constants.id_Warning_Type,
161 criticality := ignore,
162 value_ := { Warning_Type := warn_type }
163 }, {
164 id := SBC_AP_Constants.id_Warning_Security_Information,
165 criticality := reject,
166 value_ := { Warning_Security_Information := ? }
167 }*/, {
168 id := SBC_AP_Constants.id_Data_Coding_Scheme,
169 criticality := ignore,
170 value_ := { Data_Coding_Scheme := dcs }
171 }, {
172 /* Warning Message Content */
173 id := SBC_AP_Constants.id_Warning_Message_Content,
174 criticality := ignore,
175 value_ := { Warning_Message_Content := p_msg_content }
176 }
177 /* Warning Message Content */
178 /* OMC ID */
179 /* Concurrent Warning Message Indicator */
180 /* Send Write Replace Warning Indication */
181 /* Global eNB ID */
182 /* Warning Area Coordinates */
183 },
184 protocolExtensions := omit
185 }
186 }
187 }
188}
189
190/* 4.3.4.2.3 STOP WARNING REQUEST */
191template (value) SBC_AP_PDU
192ts_SBCAP_WRITE_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
193 template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := {
194 successfulOutcome := {
195 procedureCode := id_Write_Replace_Warning,
196 criticality := reject,
197 value_ := {
198 write_Replace_Warning_Response := {
199 protocolIEs := {
200 {
201 id := SBC_AP_Constants.id_Message_Identifier,
202 criticality := reject,
203 value_ := { Message_Identifier := p_msg_id }
204 }, {
205 id := SBC_AP_Constants.id_Serial_Number,
206 criticality := reject,
207 value_ := { Serial_Number := p_ser_nr }
208 }, {
209 id := SBC_AP_Constants.id_Cause,
210 criticality := reject,
211 value_ := { Cause := enum2int(valueof(cause)) }
212 }
213 },
214 protocolExtensions := omit
215 }
216 }
217 }
218}
219
220template (present) SBC_AP_PDU
221tr_SBCAP_STOP_WARNING(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr) := {
222 initiatingMessage := {
223 procedureCode := id_Stop_Warning,
224 criticality := reject,
225 value_ := {
226 stop_Warning_Request := {
227 protocolIEs := {
228 {
229 id := SBC_AP_Constants.id_Message_Identifier,
230 criticality := reject,
231 value_ := { Message_Identifier := p_msg_id }
232 }, {
233 id := SBC_AP_Constants.id_Serial_Number,
234 criticality := reject,
235 value_ := { Serial_Number := p_ser_nr }
236 /* List of TAIs */
237 /* Warning Area List */
238 }
239 },
240 protocolExtensions := omit
241 }
242 }
243 }
244}
245
246/* 4.3.4.2.4 STOP WARNING RESPONSE */
247template (value) SBC_AP_PDU
248ts_SBCAP_STOP_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
249 template (value) SBC_AP_Cause cause := SBC_AP_Cause_message_accepted) := {
250 successfulOutcome := {
251 procedureCode := id_Stop_Warning,
252 criticality := reject,
253 value_ := {
254 stop_Warning_Response := {
255 protocolIEs := {
256 {
257 id := SBC_AP_Constants.id_Message_Identifier,
258 criticality := reject,
259 value_ := { Message_Identifier := p_msg_id }
260 }, {
261 id := SBC_AP_Constants.id_Serial_Number,
262 criticality := reject,
263 value_ := { Serial_Number := p_ser_nr }
264 }, {
265 id := SBC_AP_Constants.id_Cause,
266 criticality := reject,
267 value_ := { Cause := enum2int(valueof(cause)) }
268 }
269 },
270 protocolExtensions := omit
271 }
272 }
273 }
274}
275
276}