blob: 383f3d37218cb01003e5c283bb99245a15f9a9f6 [file] [log] [blame]
Harald Welte36975c82017-12-09 21:39:57 +01001module BSSAP_CodecPort {
2
3import from General_Types all;
4import from Osmocom_Types all;
5
6import from SCCPasp_Types all;
7import from SCCP_Types all;
8
9import from BSSAP_Types all;
10
11type record BSSAP_N_CONNECT_req
12{
13 SCCP_PAR_Address calledAddress,
14 SCCP_PAR_Address callingAddress optional,
15 SCCP_PAR_Expedited_Data_Sel expeditedDataSel optional,
16 SCCP_PAR_Quality_Of_Service qualityOfService optional,
17 PDU_BSSAP userData optional,
18 SCCP_PAR_Connection_Id connectionId optional,
19 SCCP_PAR_Importance importance optional
20}
21
22template BSSAP_N_CONNECT_req ts_BSSAP_CONNECT_req(SCCP_PAR_Address called,
23 SCCP_PAR_Address calling,
24 template PDU_BSSAP bssap := *) := {
25 calledAddress := called,
26 callingAddress := calling,
27 expeditedDataSel := omit,
28 qualityOfService := omit,
29 userData := bssap,
30 connectionId := omit,
31 importance := omit
32}
33
34type record BSSAP_N_CONNECT_ind
35{
36 SCCP_PAR_Address calledAddress,
37 SCCP_PAR_Address callingAddress optional,
38 SCCP_PAR_Quality_Of_Service qualityOfService optional,
39 PDU_BSSAP userData optional,
40 SCCP_PAR_Connection_Id connectionId optional,
41 SCCP_PAR_Importance importance optional
42}
43
44template BSSAP_N_CONNECT_ind tr_BSSAP_CONNECT_ind(template SCCP_PAR_Address called,
45 template SCCP_PAR_Address calling,
46 template PDU_BSSAP payload := *) := {
47 calledAddress := called,
48 callingAddress := calling,
49 qualityOfService := *,
50 userData := payload,
51 connectionId := *,
52 importance := *
53}
54
55type record BSSAP_N_CONNECT_res
56{
57 SCCP_PAR_Address respondingAddress optional,
58 SCCP_PAR_Expedited_Data_Sel expeditedDataSel optional,
59 SCCP_PAR_Quality_Of_Service qualityOfService optional,
60 PDU_BSSAP userData optional,
61 SCCP_PAR_Connection_Id connectionId optional,
62 SCCP_PAR_Importance importance optional
63}
64
65template BSSAP_N_CONNECT_res ts_BSSAP_CONNECT_res(SCCP_PAR_Connection_Id conn_id,
66 template PDU_BSSAP bssap := omit) := {
67 respondingAddress := omit,
68 expeditedDataSel := omit,
69 qualityOfService := omit,
70 userData := bssap,
71 connectionId := conn_id,
72 importance := omit
73}
74
75type record BSSAP_N_CONNECT_cfm
76{
77 SCCP_PAR_Address respondingAddress optional,
78 SCCP_PAR_Quality_Of_Service qualityOfService optional,
79 PDU_BSSAP userData optional,
80 SCCP_PAR_Connection_Id connectionId optional,
81 SCCP_PAR_Importance importance optional
82}
83
84template BSSAP_N_CONNECT_cfm tr_BSSAP_CONNECT_cfm(template SCCP_PAR_Connection_Id conn_id,
85 template PDU_BSSAP bssap := *) := {
86 respondingAddress := *,
87 qualityOfService := *,
88 userData := bssap,
89 connectionId := conn_id,
90 importance := *
91}
92
93type record BSSAP_N_DATA_req
94{
95 PDU_BSSAP userData ,
96 SCCP_PAR_Connection_Id connectionId optional ,
97 SCCP_PAR_Importance importance optional
98}
99
100template BSSAP_N_DATA_req ts_BSSAP_DATA_req(SCCP_PAR_Connection_Id conn_id,
101 template PDU_BSSAP bssap) := {
102 userData := bssap,
103 connectionId := conn_id,
104 importance := omit
105}
106
107
108type record BSSAP_N_DATA_ind
109{
110 PDU_BSSAP userData ,
111 SCCP_PAR_Connection_Id connectionId optional ,
112 SCCP_PAR_Importance importance optional
113}
114
115template BSSAP_N_DATA_ind tr_BSSAP_DATA_ind(SCCP_PAR_Connection_Id conn_id,
116 template PDU_BSSAP bssap := *) := {
117 userData := bssap,
118 connectionId := conn_id,
119 importance := *
120}
121
122
123type record BSSAP_N_DISCONNECT_req
124{
125 SCCP_PAR_Address respondingAddress optional,
126 SCCP_PAR_Reason reason ,
127 PDU_BSSAP userData optional ,
128 SCCP_PAR_Connection_Id connectionId optional ,
129 SCCP_PAR_Importance importance optional
130}
131
132template BSSAP_N_DISCONNECT_req ts_BSSAP_DISC_req(SCCP_PAR_Connection_Id conn_id,
133 template SCCP_PAR_Reason reason,
134 template PDU_BSSAP bssap := omit) := {
135 respondingAddress := omit,
136 reason := reason,
137 userData := bssap,
138 connectionId := conn_id,
139 importance := omit
140}
141
142
143type record BSSAP_N_DISCONNECT_ind
144{
145 SCCP_PAR_Originator originator ,
146 SCCP_PAR_Address respondingAddress optional ,
147 SCCP_PAR_Reason reason ,
148 PDU_BSSAP userData optional ,
149 SCCP_PAR_Connection_Id connectionId optional ,
150 SCCP_PAR_Importance importance optional
151}
152
153template BSSAP_N_DISCONNECT_ind tr_BSSAP_DISC_ind(template SCCP_PAR_Connection_Id conn_id,
154 template SCCP_PAR_Originator originator,
155 template SCCP_PAR_Reason reason,
156 template PDU_BSSAP bssap := *) := {
157 originator := originator,
158 respondingAddress:= ?,
159 reason := reason,
160 userData := bssap,
161 connectionId := conn_id,
162 importance := *
163}
164
165type record BSSAP_N_UNITDATA_req
166{
167 SCCP_PAR_Address calledAddress ,
168 SCCP_PAR_Address callingAddress ,
169 SCCP_PAR_Sequence_Control sequenceControl optional ,
170 SCCP_PAR_Return_Option returnOption optional ,
171 PDU_BSSAP userData ,
172 SCCP_PAR_Importance importance optional
173 }
174
175template BSSAP_N_UNITDATA_req ts_BSSAP_UNITDATA_req(SCCP_PAR_Address called, SCCP_PAR_Address calling, template PDU_BSSAP payload) := {
176 calledAddress := called,
177 callingAddress := calling,
178 sequenceControl := omit,
179 returnOption := omit,
180 userData := payload,
181 importance := omit
182}
183
184type record BSSAP_N_UNITDATA_ind
185{
186 SCCP_PAR_Address calledAddress ,
187 SCCP_PAR_Address callingAddress ,
188 SCCP_PAR_Sequence_Control sequenceControl optional ,
189 SCCP_PAR_Return_Option returnOption optional ,
190 PDU_BSSAP userData ,
191 SCCP_PAR_Importance importance optional
192}
193
194template BSSAP_N_UNITDATA_ind tr_BSSAP_UNITDATA_ind(template SCCP_PAR_Address called, template SCCP_PAR_Address calling, template PDU_BSSAP payload) := {
195 calledAddress := called,
196 callingAddress := calling,
197 sequenceControl := *,
198 returnOption := *,
199 userData := payload,
200 importance := *
201}
202
203type record BSSAP_N_NOTICE_ind
204{
205 SCCP_PAR_Address calledAddress ,
206 SCCP_PAR_Address callingAddress ,
207 SCCP_PAR_Reason_For_Return reasonForReturn ,
208 PDU_BSSAP userData ,
209 SCCP_PAR_Importance importance optional
210}
211
212
213
214private function f_dec_ConnectInd(in ASP_SCCP_N_CONNECT_ind pin, out BSSAP_N_CONNECT_ind pout) {
215 pout.calledAddress := pin.calledAddress;
216 pout.callingAddress := pin.callingAddress;
217 pout.qualityOfService := pin.qualityOfService;
218 pout.userData := dec_PDU_BSSAP(pin.userData);
219 pout.connectionId := pin.connectionId;
220 pout.importance := pin.importance;
221 //port.setstate(0);
222} with {extension "prototype(fast)" }
223
224private function f_dec_ConnectCfm(in ASP_SCCP_N_CONNECT_cfm pin, out BSSAP_N_CONNECT_cfm pout) {
225 pout.respondingAddress := pin.respondingAddress;
226 pout.qualityOfService := pin.qualityOfService;
227 pout.userData := dec_PDU_BSSAP(pin.userData);
228 pout.connectionId := pin.connectionId;
229 pout.importance := pin.importance;
230 //port.setstate(0);
231} with {extension "prototype(fast)" }
232
233private function f_dec_DataInd(in ASP_SCCP_N_DATA_ind pin, out BSSAP_N_DATA_ind pout) {
234 pout.userData := dec_PDU_BSSAP(pin.userData);
235 pout.connectionId := pin.connectionId;
236 pout.importance := pin.importance;
237 //port.setstate(0);
238} with {extension "prototype(fast)" }
239
240private function f_dec_DisconnectInd(in ASP_SCCP_N_DISCONNECT_ind pin, out BSSAP_N_DISCONNECT_ind pout) {
241 pout.originator := pin.originator;
242 pout.respondingAddress := pin.respondingAddress;
243 pout.reason := pin.reason;
244 pout.userData := dec_PDU_BSSAP(pin.userData);
245 pout.connectionId := pin.connectionId;
246 pout.importance := pin.importance;
247 //port.setstate(0);
248} with {extension "prototype(fast)" }
249
250private function f_dec_UnitdataInd(in ASP_SCCP_N_UNITDATA_ind pin, out BSSAP_N_UNITDATA_ind pout) {
251 pout.calledAddress := pin.calledAddress;
252 pout.callingAddress := pin.callingAddress;
253 pout.sequenceControl := pin.sequenceControl;
254 pout.returnOption := pin.returnOption;
255 pout.userData := dec_PDU_BSSAP(pin.userData);
256 pout.importance := pin.importance;
257 //port.setstate(0);
258} with {extension "prototype(fast)" }
259
260private function f_dec_NoticeInd(in ASP_SCCP_N_NOTICE_ind pin, out BSSAP_N_NOTICE_ind pout) {
261 pout.calledAddress := pin.calledAddress;
262 pout.callingAddress := pin.callingAddress;
263 pout.reasonForReturn := pin.reasonForReturn;
264 pout.userData := dec_PDU_BSSAP(pin.userData);
265 pout.importance := pin.importance;
266 //port.setstate(0);
267} with {extension "prototype(fast)" }
268
269
270
271private function f_enc_ConnectReq(in BSSAP_N_CONNECT_req pin, out ASP_SCCP_N_CONNECT_req pout) {
272 pout.calledAddress := pin.calledAddress;
273 pout.callingAddress := pin.callingAddress;
274 pout.expeditedDataSel := pin.expeditedDataSel;
275 pout.qualityOfService := pin.qualityOfService;
276 pout.userData := enc_PDU_BSSAP(pin.userData);
277 pout.connectionId := pin.connectionId;
278 pout.importance := pin.importance;
279 //port.setstate(0);
280} with {extension "prototype(fast)" }
281
282private function f_enc_ConnectRes(in BSSAP_N_CONNECT_res pin, out ASP_SCCP_N_CONNECT_res pout) {
283 pout.respondingAddress := pin.respondingAddress;
284 pout.expeditedDataSel := pin.expeditedDataSel;
285 pout.qualityOfService := pin.qualityOfService;
286 if (ispresent(pin.userData)) {
287 pout.userData := enc_PDU_BSSAP(pin.userData);
288 } else {
289 pout.userData := omit;
290 }
291 pout.connectionId := pin.connectionId;
292 pout.importance := pin.importance;
293 //port.setstate(0);
294} with {extension "prototype(fast)" }
295
296private function f_enc_DataReq(in BSSAP_N_DATA_req pin, out ASP_SCCP_N_DATA_req pout) {
297 pout.userData := enc_PDU_BSSAP(pin.userData);
298 pout.connectionId := pin.connectionId;
299 pout.importance := pin.importance;
300 //port.setstate(0);
301} with {extension "prototype(fast)" }
302
303private function f_enc_DisconnectReq(in BSSAP_N_DISCONNECT_req pin, out ASP_SCCP_N_DISCONNECT_req pout) {
304 pout.respondingAddress := pin.respondingAddress;
305 pout.reason := pin.reason;
306 if (ispresent(pin.userData)) {
307 pout.userData := enc_PDU_BSSAP(pin.userData);
308 } else {
309 pout.userData := omit;
310 }
311 pout.connectionId := pin.connectionId;
312 pout.importance := pin.importance;
313 //port.setstate(0);
314} with {extension "prototype(fast)" }
315
316private function f_enc_UnitdataReq(in BSSAP_N_UNITDATA_req pin, out ASP_SCCP_N_UNITDATA_req pout) {
317 pout.calledAddress := pin.calledAddress;
318 pout.callingAddress := pin.callingAddress;
319 pout.userData := enc_PDU_BSSAP(pin.userData);
320 pout.sequenceControl := pin.sequenceControl;
321 pout.returnOption := pin.returnOption;
322 pout.importance := pin.importance;
323 //port.setstate(0);
324} with {extension "prototype(fast)" }
325
326
327/*
328type port BSSAP_CODEC_PT message map to SCCPasp_PT {
329 out BSSAP_N_CONNECT_req to ASP_SCCP_N_CONNECT_req with f_enc_ConnectReq(),
330 BSSAP_N_CONNECT_res to ASP_SCCP_N_CONNECT_res with f_enc_ConnectRes(),
331 BSSAP_N_DATA_req to ASP_SCCP_N_DATA_req with f_enc_DataReq(),
332 BSSAP_N_DISCONNECT_req to ASP_SCCP_N_DISCONNECT_req with f_enc_DisconnectReq(),
333 BSSAP_N_UNITDATA_req to ASP_SCCP_N_UNITDATA_req with f_enc_UnitdataReq(),
334 ASP_SCCP_N_RESET_req, ASP_SCCP_N_RESET_resp;
335
336 in BSSAP_N_CONNECT_ind from ASP_SCCP_N_CONNECT_ind with f_dec_ConnectInd(),
337 BSSAP_N_CONNECT_cfm from ASP_SCCP_N_CONNECT_cfm with f_dec_ConnectCfm(),
338 BSSAP_N_DATA_ind from ASP_SCCP_N_DATA_ind with f_dec_DataInd(),
339 BSSAP_N_DISCONNECT_ind from ASP_SCCP_N_DISCONNECT_ind with f_dec_DisconnectInd(),
340 BSSAP_N_UNITDATA_ind from ASP_SCCP_N_UNITDATA_ind with f_dec_UnitdataInd(),
341 BSSAP_N_NOTICE_ind from ASP_SCCP_N_NOTICE_ind with f_dec_NoticeInd(),
342 ASP_SCCP_N_STATE_ind, ASP_SCCP_N_RESET_ind, ASP_SCCP_N_RESET_cfm;
343} with {extension "internal"}
344*/
345
346type port BSSAP_CODEC_PT message {
347 out BSSAP_N_CONNECT_req,
348 BSSAP_N_CONNECT_res,
349 BSSAP_N_DATA_req,
350 BSSAP_N_DISCONNECT_req,
351 BSSAP_N_UNITDATA_req,
352 ASP_SCCP_N_RESET_req;
353 in BSSAP_N_CONNECT_ind,
354 BSSAP_N_CONNECT_cfm,
355 BSSAP_N_DATA_ind,
356 BSSAP_N_DISCONNECT_ind,
357 BSSAP_N_UNITDATA_ind,
358 BSSAP_N_NOTICE_ind,
359 ASP_SCCP_N_RESET_ind,
360 ASP_SCCP_N_RESET_cfm,
361 ASP_SCCP_N_STATE_ind;
362} with { extension "internal user SCCPasp_PT
363 out(BSSAP_N_CONNECT_req -> ASP_SCCP_N_CONNECT_req: function(f_enc_ConnectReq);
364 BSSAP_N_CONNECT_res -> ASP_SCCP_N_CONNECT_res: function(f_enc_ConnectRes);
365 BSSAP_N_DATA_req -> ASP_SCCP_N_DATA_req: function(f_enc_DataReq);
366 BSSAP_N_DISCONNECT_req -> ASP_SCCP_N_DISCONNECT_req: function(f_enc_DisconnectReq);
367 BSSAP_N_UNITDATA_req -> ASP_SCCP_N_UNITDATA_req: function(f_enc_UnitdataReq);
368 ASP_SCCP_N_RESET_req -> ASP_SCCP_N_RESET_req: simple)
369 in(ASP_SCCP_N_CONNECT_ind -> BSSAP_N_CONNECT_ind: function(f_dec_ConnectInd);
370 ASP_SCCP_N_CONNECT_cfm -> BSSAP_N_CONNECT_cfm: function(f_dec_ConnectCfm);
371 ASP_SCCP_N_DATA_ind -> BSSAP_N_DATA_ind: function(f_dec_DataInd);
372 ASP_SCCP_N_DISCONNECT_ind -> BSSAP_N_DISCONNECT_ind: function(f_dec_DisconnectInd);
373 ASP_SCCP_N_UNITDATA_ind -> BSSAP_N_UNITDATA_ind: function(f_dec_UnitdataInd);
374 ASP_SCCP_N_NOTICE_ind -> BSSAP_N_NOTICE_ind: function(f_dec_NoticeInd);
375 ASP_SCCP_N_RESET_ind -> ASP_SCCP_N_RESET_ind: simple;
376 ASP_SCCP_N_RESET_cfm -> ASP_SCCP_N_RESET_cfm: simple;
377 ASP_SCCP_N_STATE_ind -> ASP_SCCP_N_STATE_ind: simple)"
378}
379
380
381}