blob: 168c317a92553bdd9b1236b1241313fb84bcf9e8 [file] [log] [blame]
Harald Welteac359802017-04-12 12:13:44 +02001////////////////////////////////////////////////////////////////////////////////
2// //
3// Copyright Test Competence Center (TCC) ETH 2008 //
4// //
5// The copyright to the computer program(s) herein is the property of TCC. //
6// The program(s) may be used and/or copied only with the written permission //
7// of TCC or in accordance with the terms and conditions stipulated in the //
8// agreement/contract under which the program(s) have been supplied //
9// //
10///////////////////////////////////////////////////////////////////////////////
11// File: SCCP_Types.ttcn
12// Description: SS7 SCCP definitions according to specification
13// ITU-T SS7 SCCP, ANSI ..., ttc ..., mpt
14// Reference: ITU-T: Recommendation Q.711-Q.714 (07/96)
15// ANSI: T1.112-2001
16// ttc: JT-Q711 -JT-Q714 (ver 2, 04/97)
17// Rev: R6A05
18// Prodnr: CNL 113 341
19// Updated: 2008-05-08
20// Contact: http://ttcn.ericsson.se
21
22module SCCP_Types.objid { itu_t(0) identified_organization (4) etsi(0)
23 reserved(127) etsi_identified_organization(0) ericsson(5)
24 testing (0) generic(0) sccp(1) v3(3) typeDefinitions(2) patchNo(3)}
25
26{//start of the module
27
28modulepar
29{//startparameters
30
31//------------------Protocol Timer Values----------------------------------
32
33//Waiting for connection confirm message -1 to 2 minutes
34
35 float tspc_timer_T_conn_est:=120.0;
36
37 //Delay to send a message on a conn IT on a
38 //connection section when there are no
39 //messages to send
40 //5 to 10 minutes
41
42 float tspc_timer_T_ias:=600.0;
43 //Waiting to receive a message on a connection
44 //section
45 //11 to 21 minutes
46 float tspc_timer_T_iar:=1260.0;
47 //Waiting for release complete message -10 to 20 seconds
48
49 float tspc_timer_T_rel:=20.0;
50 //Waiting for release complete message; or to
51 //repeat sending released message after the
52 //initial T(rel) expiry
53 //10 to 20 seconds
54 float tspc_timer_T_repeat_rel:=20.0;
55
56 //Waiting for release complete message; or to
57 //release connection resources, freeze the LRN
58 //and alert a maintenance function after the
59 //initial T(rel) expiry
60 //extending to 1 minute
61 float tspc_timer_T_int:=60.0;
62
63 //Waiting to resume normal procedure for
64 //temporary connection sections during the
65 //restart procedure
66 //23 to 25 minutes
67 float tspc_timer_T_guard:=1500.0;
68
69 //Waiting to release temporary connection
70 //section or alert maintenance function after
71 //reset request message is sent
72 //10 to 20 seconds
73 float tspc_timer_T_reset:=20.0;
74 //Waiting to receive all the segments of the
75 //remaining segments single segmented
76 //message after receiving the first segment
77 //10 to 20 seconds
78
79 // float tspc_timer_T_reasssembly;
80
81 float tspc_timer_T_internal_reset:=0.0;
82 //zero-only for sending internal signals!!
83
84
85 float tspc_timer_guard :=120.0
86 //the same as tspc_timer_T_conn_est:1 or 2 minutes
87
88}//end parameters
89
90
91
92import from General_Types all;
93import from MTP3asp_Types all;
94//import from MTP3asp_PortType all;
95
96import from SCCPasp_Types all;
97
98external function enc_PDU_SCCP( in PDU_SCCP pdu) return octetstring
99 with { extension "prototype(convert)"
100 extension "encode(RAW)"
101 };
102external function dec_PDU_SCCP( in octetstring o) return PDU_SCCP
103 with { extension "prototype(convert)"
104 extension "decode(RAW)"
105 };
106
107// Address encoder/decoder for itu:
108external function enc_PDU_SCCP_Address_itu( in SCCP_param_CPartyAddress_itu pdu) return octetstring
109 with { extension "prototype(convert)"
110 extension "encode(RAW)"
111 };
112external function dec_PDU_SCCP_Address_itu( in octetstring o) return SCCP_param_CPartyAddress_itu
113 with { extension "prototype(convert)"
114 extension "decode(RAW)"
115 };
116
117// Address encoder/decoder for ansi:
118external function enc_PDU_SCCP_Address_ansi( in SCCP_param_CPartyAddress_ansi pdu) return octetstring
119 with { extension "prototype(convert)"
120 extension "encode(RAW)"
121 };
122external function dec_PDU_SCCP_Address_ansi( in octetstring o) return SCCP_param_CPartyAddress_ansi
123 with { extension "prototype(convert)"
124 extension "decode(RAW)"
125 };
126
127// Address encoder/decoder for ttc:
128external function enc_PDU_SCCP_Address_ttc( in SCCP_param_CPartyAddress_ttc pdu) return octetstring
129 with { extension "prototype(convert)"
130 extension "encode(RAW)"
131 };
132external function dec_PDU_SCCP_Address_ttc( in octetstring o) return SCCP_param_CPartyAddress_ttc
133 with { extension "prototype(convert)"
134 extension "decode(RAW)"
135 };
136
137// Address encoder/decoder for mpt:
138external function enc_PDU_SCCP_Address_mpt( in SCCP_param_CPartyAddress_mpt pdu) return octetstring
139 with { extension "prototype(convert)"
140 extension "encode(RAW)"
141 };
142external function dec_PDU_SCCP_Address_mpt( in octetstring o) return SCCP_param_CPartyAddress_mpt
143 with { extension "prototype(convert)"
144 extension "decode(RAW)"
145 };
146
147group Types
148{
149 group FieldDefinitions
150 {
151 //---------------------------------------------------------------------------
152 // Field Parameter Name (ITU:$3/Q713 $3, ANSI:Table 2/T1.112.3-2001
153 //---------------------------------------------------------------------------
154 type integer SCCP_field_ParameterName with { variant "FIELDLENGTH(8)"};
155 const SCCP_field_ParameterName con_SCCP_eop :=0, con_SCCP_dLocRef:=1,
156 con_SCCP_sLocRef:=2, con_SCCP_cdPA:=3,
157 con_SCCP_cgPA:=4, con_SCCP_protclass:=5,
158 con_SCCP_segmReas:=6, con_SCCP_recSeqNum:=7,
159 con_SCCP_seqSegm:=8, con_SCCP_credit:=9,
160 con_SCCP_relCause:=10, con_SCCP_retCause:=11,
161 con_SCCP_resCause:=12, con_SCCP_errorCause:=13,
162 con_SCCP_refCause:=14, con_SCCP_data:=15,
163 con_SCCP_segm:=16, con_SCCP_hopCount:=17,
164 con_SCCP_imp:=18, con_SCCP_longData:=19,
165 con_SCCP_mti:=248, con_SCCP_ins:=249,
166 con_SCCP_isni:=250;
167
168
169 //EOP End of optional parameters, DLocRef Destination local reference,
170 //SLocRef Source local reference, CdPA Called party address,
171 //CgPA Calling party address, ProtClass Protocol class,
172 //SegmReas Segmenting/reassembling, RecSeqNum Receive sequence number,
173 //SeqSegm Sequencing/segmenting, Credit Credit,
174 //RelCause Release cause, RetCau Return cause,
175 //ResCau Reset cause, ErrCau Error cause,
176 //RefCau Refusal cause, Data Data,
177 //SEGM Segmentation, HopCount Hop counter,
178 //IMP Importance, LongData Long data,
179 // --- only in ANSI:---
180 //MTI Message Type Interworking
181 //INS
182 //ISNI
183 //ISNI
184
185 //---------------------------------------------------------------------------
186 // Field Address Indicator (ITU: Q713 $3.4.1, ANSI: T1.112.3 $3.4.1)
187 //---------------------------------------------------------------------------
188 type record SCCP_field_AddressIndicator_itu
189 {
190 BIT1 pointCodeIndic,
191 BIT1 ssnIndicator,
192 BIT4 globalTitleIndic,
193 BIT1 routingIndicator,
194 BIT1 reserved
195 }
196 with { variant "" }
197
198 // field order is interesting at coding/decoding
199 type record SCCP_field_AddressIndicator_ansi
200 {
201 BIT1 ssnIndicator,
202 BIT1 pointCodeIndic,
203 BIT4 globalTitleIndic,
204 BIT1 routingIndicator,
205 BIT1 reserved
206 }
207 with { variant "" }
208
209 //---------------------------------------------------------------------------
210 // Subfield Signalling Point Code (Q713 $3.4.2.1)
211 //---------------------------------------------------------------------------
212 // use functions SCCP_getSPC and SCCP_setSPC to handle it!!!
213
214 type BIT16 SCCP_field_SignallingPointCode_itu; // TO BE DEFINED: msb or lsb ???
215 type BIT24 SCCP_field_SignallingPointCode_ansi; // TO BE DEFINED: msb or lsb ???
216 type BIT16 SCCP_field_SignallingPointCode_ttc; // TO BE DEFINED: msb or lsb ???
217 type BIT24 SCCP_field_SignallingPointCode_mpt; // TO BE DEFINED: msb or lsb ???
218 //---------------------------------------------------------------------------
219 // Subfield Subsystem Number (Q713 $3.4.2.2)
220 //---------------------------------------------------------------------------
221 //values declared in SCCPConstants in SCCP.ttcn
222
223 type integer SCCP_field_SubsystemNumber
224 with { variant "FIELDLENGTH(8)" };
225
226
227 //---------------------------------------------------------------------------
228 // Subfield Global Title (ITU: Q713 $3.4.2.3, ANSI T1.112.3 $3.4.2.3
229 //---------------------------------------------------------------------------
230
231 //---------------------------------------------------------------------------
232 // Subfield Global Title, Nature of address only
233 //ITU: GTI=0001, Q713 $3.4.2.3.1
234 //ANSI: -
235
236 type record SCCP_field_GlobalTitle_NoA
237 {
238 BIT7 natureOfAddress,
239 BIT1 oddeven,
240 hexstring globalTitleAddress
241 //it should be hexstring, number digits are in BCD;
242 //hexstring is already supported yet by ETH compiler
243 }
244 with { variant "" }
245
246
247 //---------------------------------------------------------------------------
248 // Global Title, Translation type only (
249 // ITU: GTI=0010, Q713 $3.4.2.3.2
250 // ANSI: GTI=0010, Figure6A/T1.112.3
251
252 type record SCCP_field_GlobalTitle_TT
253 {
254 OCT1 translationType,
255 hexstring globalTitleAddress
256 }
257 with { variant "" }
258
259
260 //---------------------------------------------------------------------------
261 // Global Title, Translation type & numbering plan & encoding scheme
262 // ITU: GTI=0011, Q713 $3.4.2.3.3)
263 // ANSI GTI=0001, Figure6/T1.112.3
264
265 type record SCCP_field_GlobalTitle_TT_NP_ES
266 {
267 OCT1 translationType,
268 BIT4 encodingScheme,
269 BIT4 numberingPlan,
270 hexstring globalTitleAddress
271 }
272 with { variant "" }
273
274
275 //-----------------------------------------------------------------------------
276 // Global Title, Translation type & numbering plan & encoding scheme & nature of
277 // address
278 // GTI=0100, Q713 $3.4.2.3.4)
279 // ANSI: -
280
281 // Suggested to change name to SCCP_field_GlobalTitle_TT_NP_ES_NoA
282
283 type record SCCP_field_SignallingPointCode_TT_NP_ES_NoA
284 {
285 OCT1 translationType,
286 BIT4 encodingScheme,
287 BIT4 numberingPlan,
288 BIT7 natureOfAddress,
289 BIT1 reserved,
290 hexstring globalTitleAddress
291 }
292 with { variant "" }
293
294
295 type union SCCP_field_GlobalTitle_itu
296 {
297 SCCP_field_GlobalTitle_NoA gti0001,
298 SCCP_field_GlobalTitle_TT gti0010,
299 SCCP_field_GlobalTitle_TT_NP_ES gti0011,
300 SCCP_field_SignallingPointCode_TT_NP_ES_NoA gti0100
301 }
302 with { variant "" }
303 // no TAG is added as alternatives depend on the gti field of the address indicator
304
305 type union SCCP_field_GlobalTitle_ansi
306 {
307 SCCP_field_GlobalTitle_TT_NP_ES gti0001,
308 SCCP_field_GlobalTitle_TT gti0010
309 }
310 with { variant "" }
311
312//---------------------------------------------------------------------------
313// Field Protocol Class (Q713 $3.6)
314//---------------------------------------------------------------------------
315//type enumerated SCCP_field_ProtocolClass
316// { class0 (0), class1(1), class2(2), class3(3) }
317// with { variant "FIELDLENGTH(4)" }
318//ethgry(2002-08-01): replaced by BIT4
319
320//---------------------------------------------------------------------------
321// Field Importance (Q713 $3.19)
322//---------------------------------------------------------------------------
323 type integer SCCP_field_Importance
324 with { variant "FIELDLENGTH(3)" }
325
326
327}//endgroup FieldDefinitions
328
329
330group ParameterDefinitions
331{
332 //---------------------------------------------------------------------------
333 // Parameter Message Type (Q713 $2.1)
334 //---------------------------------------------------------------------------
335 type integer SCCP_param_MessageType with { variant "FIELDLENGTH(8)" }
336 const SCCP_param_MessageType cr:=1, cc:=2, cref:=3,
337 rlsd:=4, rlc:=5, dt1:=6, dt2:=7,
338 ak:=8, udt:=9, udts:=10, ed:=11,
339 ea:=12, rsr:=13, rsc:=14, err:=15,
340 it:=16, xudt:=17, xudts:=18, ludt:=19,
341 ludts:=20;
342
343
344 //CR Connection request, CC Connection confirm, CREF Connection refused,
345 //RLSD Released, RLC Release complete, DT1 Data form 1,
346 //DT2 Data form 2, AK Data acknowledgement, UDT Unitdata,
347 //UDTS Unitdata service, ED Expedited data, EA Expedited data acknowledgement,
348 //RSR Reset request, RSC Reset confirm, ERR Protocol data unit error,
349 //IT Inactivity test, XUDT Extended unitdata, XUDTS Extended unitdata service,
350 //LUDT Long unitdata, LUDTS Long unitdata service
351
352
353 //---------------------------------------------------------------------------
354 // End of Optional Parameters (Q713 $3.1)
355 //---------------------------------------------------------------------------
356 type record SCCP_param_EndOfOptionalParams
357 {
358 SCCP_field_ParameterName paramName (con_SCCP_eop)
359 }
360 with { variant "" }
361
362
363 //---------------------------------------------------------------------------
364 // Parameter Destination Local Reference (Q713 $3.2)
365 //---------------------------------------------------------------------------
366 type octetstring SCCP_param_DestLocalReference
367 with { variant "FIELDLENGTH(3)"}
368
369
370 //---------------------------------------------------------------------------
371 // Parameter Source Local Reference (Q713 $3.3)
372 //---------------------------------------------------------------------------
373
374 type octetstring SCCP_param_SourceLocalReference
375 with { variant "FIELDLENGTH(3)" }
376
377
378 //---------------------------------------------------------------------------
379 // Parameter Called/Calling Party Address (Q713 $3.4/$3.5)
380 //---------------------------------------------------------------------------
381 /* Removed 2004.02.16 by ethbaat:
382
383 type union SCCP_superfield_SignallingPointCode_itu
384 {
385 SCCP_field_SignallingPointCode_itu present,
386 Dummy absent
387 } with { variant "" }
388
389
390 type union SCCP_superfield_SignallingPointCode_ansi
391 {
392 SCCP_field_SignallingPointCode_ansi present,
393 Dummy absent
394 } with { variant "" }
395
396 type union SCCP_superfield_SignallingPointCode_ttc
397 {
398 SCCP_field_SignallingPointCode_ttc present,
399 Dummy absent
400 } with { variant "" }
401
402 type union SCCP_superfield_SubsystemNumber
403 {
404 SCCP_field_SubsystemNumber present,
405 Dummy absent
406 } with { variant "" }
407
408 */
409
410 // Standard Independent Encoded Calling/Called Party Address:
411 // used in SCCP.ttcn/Convert
412
413 // this address is used everywhere in SCCP inside:
414 type octetstring SCCP_CPartyAddressEnc_addr with { variant ""};
415
416 type record SCCP_param_CPartyAddressEnc
417 {
418 LIN1 paramLength,
419 SCCP_CPartyAddressEnc_addr addr
420 } with { variant (paramLength) "LENGTHTO( addr )"}
421
422 // Structured, decoded versions:
423
424 type record SCCP_param_CPartyAddress_itu {
425
426 SCCP_field_AddressIndicator_itu addressIndicator,
427 SCCP_field_SignallingPointCode_itu signPointCode optional,
428 SCCP_field_SubsystemNumber subsystemNumber optional,
429 SCCP_field_GlobalTitle_itu globalTitle optional
430 }
431 with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)";
432 variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)";
433 variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B,
434 addressIndicator.globalTitleIndic = '0010'B,
435 addressIndicator.globalTitleIndic = '0011'B,
436 addressIndicator.globalTitleIndic = '0100'B}),
437 CROSSTAG(
438 gti0001, addressIndicator.globalTitleIndic = '0001'B;
439 gti0010, addressIndicator.globalTitleIndic = '0010'B;
440 gti0011, addressIndicator.globalTitleIndic = '0011'B;
441 gti0100, addressIndicator.globalTitleIndic = '0100'B)"
442 }
443
444 type record SCCP_param_CPartyAddress_ansi
445 {
446 SCCP_field_AddressIndicator_ansi addressIndicator,
447 SCCP_field_SubsystemNumber subsystemNumber optional,
448 SCCP_field_SignallingPointCode_ansi signPointCode optional,
449 SCCP_field_GlobalTitle_ansi globalTitle optional
450 }
451 with {
452 variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B )";
453 variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B )";
454 variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B,
455 addressIndicator.globalTitleIndic = '0010'B}),
456 CROSSTAG(
457 gti0001, addressIndicator.globalTitleIndic = '0001'B;
458 gti0010, addressIndicator.globalTitleIndic = '0010'B)"
459 }
460
461 type record SCCP_param_CPartyAddress_ttc {
462
463 SCCP_field_AddressIndicator_itu addressIndicator,
464 SCCP_field_SignallingPointCode_ttc signPointCode optional,
465 SCCP_field_SubsystemNumber subsystemNumber optional,
466 SCCP_field_GlobalTitle_itu globalTitle optional
467 }
468 with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)";
469 variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)";
470 variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B,
471 addressIndicator.globalTitleIndic = '0010'B,
472 addressIndicator.globalTitleIndic = '0011'B,
473 addressIndicator.globalTitleIndic = '0100'B}),
474 CROSSTAG(
475 gti0001, addressIndicator.globalTitleIndic = '0001'B;
476 gti0010, addressIndicator.globalTitleIndic = '0010'B;
477 gti0011, addressIndicator.globalTitleIndic = '0011'B;
478 gti0100, addressIndicator.globalTitleIndic = '0100'B)"
479 }
480
481 type record SCCP_param_CPartyAddress_mpt {
482
483 SCCP_field_AddressIndicator_itu addressIndicator,
484 SCCP_field_SignallingPointCode_mpt signPointCode optional,
485 SCCP_field_SubsystemNumber subsystemNumber optional,
486 SCCP_field_GlobalTitle_itu globalTitle optional
487 }
488 with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)";
489 variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)";
490 variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B,
491 addressIndicator.globalTitleIndic = '0010'B,
492 addressIndicator.globalTitleIndic = '0011'B,
493 addressIndicator.globalTitleIndic = '0100'B}),
494 CROSSTAG(
495 gti0001, addressIndicator.globalTitleIndic = '0001'B;
496 gti0010, addressIndicator.globalTitleIndic = '0010'B;
497 gti0011, addressIndicator.globalTitleIndic = '0011'B;
498 gti0100, addressIndicator.globalTitleIndic = '0100'B)"
499 }
500
501// type record SCCP_param_CPartyAddress_opt_itu
502 type record SCCP_param_CPartyAddressEnc_opt
503 {
504 SCCP_field_ParameterName paramName(con_SCCP_cdPA, con_SCCP_cgPA),
505 LIN1 paramLength,
506 SCCP_CPartyAddressEnc_addr addr
507 } with { variant (paramLength) "LENGTHTO( addr )"}
508
509 //---------------------------------------------------------------------------
510 // Parameter Protocol Class (Q713 $3.6)
511 //---------------------------------------------------------------------------
512 type record SCCP_param_ProtocolClass
513 {
514 BIT4 class,
515 BIT4 messageHandling
516 }
517 with { variant "" }
518
519
520 //---------------------------------------------------------------------------
521 // Parameter Segmenting/reassembling (Q713 $3.7)
522 //---------------------------------------------------------------------------
523 type record SCCP_param_SegmentingReassembl
524 {
525 BIT1 more,
526 BIT7 reserved
527 }
528 with { variant "" }
529
530
531 //---------------------------------------------------------------------------
532 // Parameter Receive Sequence Number (Q713 $3.8)
533 //---------------------------------------------------------------------------
534 type record SCCP_param_RecSeqNumber
535 {
536 BIT1 reserved,
537 BIT7 pr
538 }
539 with { variant "" }
540
541
542 //---------------------------------------------------------------------------
543 // Parameter Sequencing/Segmenting (Q713 $3.9)
544 //---------------------------------------------------------------------------
545 type record SCCP_param_SequencingSegmenting
546 {
547 BIT1 reserved,
548 BIT7 p_s,
549 BIT1 more,
550 BIT7 pr
551 }
552 with { variant "" }
553
554
555 //---------------------------------------------------------------------------
556 // Parameter Credit(Q713 $3.10)
557 //---------------------------------------------------------------------------
558 type octetstring SCCP_param_Credit
559 with { variant "FIELDLENGTH(1)" }//ethlel0813
560
561
562 type record SCCP_param_Credit_opt
563 {
564 SCCP_field_ParameterName paramName(con_SCCP_credit),
565 LIN1 paramLength, // always 1!
566 OCT1 credit
567 }
568 with { variant "" }
569
570
571//---------------------------------------------------------------------------
572// Parameter Release Cause(Q713 $3.11)
573//---------------------------------------------------------------------------
574//type enumerated SCCP_param_ReleaseCause
575// { endUserOrig(0), endUserCong(1), endUserFailure(2), sCCPUserOrig(3),
576// remProcError(4), inconsConnData(5), accessFailure(6), accessCongestion(7),
577// subsystFailure(8), subsystCongest(9), mTPFailure(10), networkCongest(11),
578// expResetTimer(12), expRecInacTimer(13), reserved(14), unqualified(15),
579// sCCPFailure(16)
580// }
581// with { variant "FIELDLENGTH(8)" }
582
583//values declared in SCCPConstants in SCCP.ttcn
584
585 type integer SCCP_param_ReleaseCause
586 with { variant "FIELDLENGTH(8), COMP(nosign)" };
587
588
589//---------------------------------------------------------------------------
590// Parameter Return Cause(Q713 $3.12)
591//---------------------------------------------------------------------------
592//type enumerated SCCP_param_ReturnCause
593// { noTransl4AddrNature(0), noTransl4SpecifAddr(1), subsystemCongestion(2),
594// subsystemFailure(3), unequippedUser(4), mTPFailure(5),
595// networkCongestion(6), unqualified(7), errorMessageTransport(8),
596// errorLocalProcessing(9), destNoReassembly(10), sCCPFailure(11),
597// hopCounterViolation(12), segmeNotSupported(13), segmentationFailure(14)
598// }
599// with { variant "FIELDLENGTH(8)" }
600
601 //values declared in SCCPConstants in SCCP.ttcn
602 type integer SCCP_param_ReturnCause
603 with { variant "FIELDLENGTH(8), COMP(nosign)" };
604
605
606//---------------------------------------------------------------------------
607// Parameter Reset Cause(Q713 $3.13)
608//---------------------------------------------------------------------------
609//type enumerated SCCP_param_ResetCause
610// { endUserOriginated(0), sCCPUserOriginated(1),
611// messOutOfOrder_incPs(2), messOutOfOrder_incPr(3),
612// remProcErr_messOutOfWindow(4), emProcErr_IncPsAfterReinit(5),
613// remProcErr_general(6), remEndUserOperational(7),
614// networkOperational(8), accessOperational(9),
615// networkCongestion(10), reserved(11),
616// unqualified(12)
617// }
618// with { variant "FIELDLENGTH(8)" }
619
620
621 //values declared in SCCPConstants in SCCP.ttcn
622
623 type integer SCCP_param_ResetCause
624 with { variant "FIELDLENGTH(8), COMP(nosign)" };
625
626
627 //---------------------------------------------------------------------------
628 // Parameter Error Cause(Q713 $3.14)
629 //---------------------------------------------------------------------------
630 //type enumerated SCCP_param_ErrorCause
631 // { unassignedDestinationLRN(0), inconsistentSourceLRN(1),
632 // pointCodeMismatch(2), serviceClassMismatch(3),
633 // unqualified(4)
634 // }
635 // with { variant "FIELDLENGTH(8)" }
636
637 //values declared in SCCPConstants in SCCP.ttcn
638
639 type integer SCCP_param_ErrorCause
640 with { variant "FIELDLENGTH(8), COMP(nosign)" };
641
642
643 //---------------------------------------------------------------------------
644 // Parameter Refusal Cause(Q713 $3.15)
645 //---------------------------------------------------------------------------
646 //type enumerated SCCP_param_RefusalCause
647 // { endUserOrigin(0), endUserConges(1), endUserFailure(2),
648 // sCCPUserOrigin(3), destAddrUnkn(4), destInaccess(5),
649 // qOSNotAvail_nonTransient(6), qOSNotAvail_transient(7), accessFailure(8),
650 // accessCongestion(9), subsystemFailure(10), subsystemCongest(11),
651 // expConnEstTimer(12), incomUserData(13), reserved(14),
652 // unqualified(15), hopCounterViol(16), sCCPFailure(17),
653 // noTransl4address(18), unequippedUser(19)
654 // }
655 // with { variant "FIELDLENGTH(8)" }
656
657
658 //values declared in SCCPConstants in SCCP.ttcn
659
660 type integer SCCP_param_RefusalCause
661 with { variant "FIELDLENGTH(8), COMP(nosign)" };
662
663
664 //---------------------------------------------------------------------------
665 // Parameter User data (Q713 $3.16)
666 //---------------------------------------------------------------------------
667 type record SCCP_param_Data
668 {
669 LIN1 paramLength,
670 OCTN data
671 }
672 with { variant (paramLength) "LENGTHTO(data)" }
673
674
675 type record SCCP_param_Data_opt
676 {
677 SCCP_field_ParameterName paramName(con_SCCP_data),
678 LIN1 paramLength,
679 OCTN data
680 }
681 with { variant (paramLength) "LENGTHTO(data)" }
682
683
684 //---------------------------------------------------------------------------
685 // Parameter Segmentation (Q713 $3.17)
686 //---------------------------------------------------------------------------
687
688 type record SCCP_param_Segmentation_opt
689 {
690 SCCP_field_ParameterName paramName(con_SCCP_segm),
691 LIN1 paramLength, //always 4!
692 BIT4 remainingSegment,
693 BIT2 reserved,
694 BIT1 class,
695 BIT1 firstSegm,
696 OCT3 segmLocalRef
697 }
698 with { variant "" }
699
700
701 //---------------------------------------------------------------------------
702 // Parameter Hop counter (Q713 $3.18)
703 //---------------------------------------------------------------------------
704 type integer SCCP_param_HopCounter
705 with { variant "FIELDLENGTH(8), COMP(nosign)" };
706
707
708 type record SCCP_param_HopCounter_opt
709 {
710 SCCP_field_ParameterName paramName(con_SCCP_hopCount),
711 LIN1 paramLength, //always 1!
712 SCCP_param_HopCounter counter
713 }
714 with { variant (paramLength) "LENGTHTO(counter)" }
715
716
717 //---------------------------------------------------------------------------
718 // Parameter Importance (Q713 $3.19)
719 //---------------------------------------------------------------------------
720
721 type record SCCP_param_Importance_opt
722 {
723 SCCP_field_ParameterName paramName(con_SCCP_imp),
724 LIN1 paramLength, //always 1!
725 SCCP_field_Importance importance,
726 BIT5 reserved
727 }
728 with { variant ""}
729 //with { variant (paramLength) "LENGTHTO(importance)" } //????
730
731
732 //---------------------------------------------------------------------------
733 // Parameter Long data (Q713 $3.20)
734 //---------------------------------------------------------------------------
735 type record SCCP_param_LongData
736 {
737 LIN2 paramLength,
738 OCTN data
739 }
740 with { variant (paramLength) "LENGTHTO(data)" }
741
742
743 //********************************************************************************
744 // SCCP management parameters (Q713 $5)
745 //********************************************************************************
746
747 //---------------------------------------------------------------------------
748 // SCMG format identifier (Q713 $5.1)
749 //---------------------------------------------------------------------------
750 type enumerated SCMG_param_FormatId
751 {
752 sSAallowed(1), // SSA subsystem-allowed
753 sSPprohib(2), // SSP subsystem-prohibited
754 sSTstaTest(3), // SST subsystem-status-test
755 sORoutReq(4), // SOR subsystem-out-of-service-request
756 sORoutGrant (5), // SOG subsystem-out-of-service-grant
757 sSCcongest(6) // SSC SCCP/subsystem-congested
758 }
759 with { variant "FIELDLENGTH(8)" }
760
761
762 //---------------------------------------------------------------------------
763 // Affected SSN (Q713 $5.2.1)
764 //---------------------------------------------------------------------------
765 /* not supported yet:
766 type SCCP_field_SubsystemNumber SCMG_param_AffectedSSN
767 with { variant "" }
768 */
769
770 //---------------------------------------------------------------------------
771 // Affected Pointcode (Q713 $5.2.2)
772 //---------------------------------------------------------------------------
773 /* not supported yet:
774 type SCCP_field_SignallingPointCode SCMG_param_AffectedPointCode
775 with { variant "" }
776 */
777
778 //---------------------------------------------------------------------------
779 // Subsystem Multiplicity Indicator (Q713 $5.2.3)
780 //---------------------------------------------------------------------------
781 /* not supported yet:
782 type record SCMG_param_MultiplIndicator
783 {
784 BIT2 smi,
785 BIT6 reserved
786 }
787 with { variant "" }
788 */
789
790 //---------------------------------------------------------------------------
791 // SCCP congestion level (Q713 $5.2.4)
792 //---------------------------------------------------------------------------
793 /* not supported yet:
794 type record SCMG_param_CongestionLevel
795 {
796 BIT4 congLevel,
797 BIT4 reserved
798 }
799 with { variant "" }
800 */
801
802}//endgroup ParameterDefinitions
803
804
805group PDUDefinitions
806{
807 //********************************************************************************
808 // Message Connection Request (CR) (Q713 $4.2)
809 //********************************************************************************
810 //---------------------------------------------------------------------------
811 // Optional part
812 type set SCCP_ConnReq_optionalPart
813 {
814 SCCP_param_Credit_opt credit optional,
815 SCCP_param_CPartyAddressEnc_opt callingPAddress optional,
816 SCCP_param_Data_opt data optional,
817 SCCP_param_HopCounter_opt hopCounter optional,
818 SCCP_param_Importance_opt importance optional
819 }
820 with { variant "TAG ( credit, paramName= con_SCCP_credit;
821 callingPAddress, paramName= con_SCCP_cgPA;
822 data, paramName= con_SCCP_data;
823 hopCounter, paramName= con_SCCP_hopCount;
824 importance , paramName= con_SCCP_imp)"
825 }
826
827
828 //---------------------------------------------------------------------------
829 // Message definition
830 //---------------------------------------------------------------------------
831 type record PDU_SCCP_ConnectionRequest
832 {
833 SCCP_param_MessageType messageType,
834 SCCP_param_SourceLocalReference sourceLocRef,
835 SCCP_param_ProtocolClass protClass,
836 LIN1 pointer1, //will be 2
837 LIN1 pointer2,
838 SCCP_param_CPartyAddressEnc calledPAddress,
839 SCCP_ConnReq_optionalPart optionalPart optional,
840 SCCP_param_EndOfOptionalParams eop optional
841 }
842 with { variant (pointer1) "POINTERTO(calledPAddress)";
843 variant (pointer2) "POINTERTO(optionalPart)";
844 variant "TAG (eop,paramName=con_SCCP_eop )"
845 //Note, that optional part itself is mandatory but it may be empty!
846 }
847
848
849 //********************************************************************************
850 // Message Connection Confirm (CC) (Q713 $4.3)
851 //********************************************************************************
852 //---------------------------------------------------------------------------
853 // Optional part
854 type set SCCP_ConnConfirm_optionalPart
855 {
856 SCCP_param_Credit_opt credit optional,
857 SCCP_param_CPartyAddressEnc_opt calledPAddress optional,
858 SCCP_param_Data_opt data optional,
859 SCCP_param_Importance_opt importance optional
860 }
861 with { variant "TAG ( credit, paramName= con_SCCP_credit;
862 calledPAddress, paramName= con_SCCP_cdPA;
863 data, paramName= con_SCCP_data;
864 importance, paramName= con_SCCP_imp)"
865 }
866
867 //---------------------------------------------------------------------------
868 // Message definition
869 //---------------------------------------------------------------------------
870 type record PDU_SCCP_ConnectionConfirm
871 {
872 SCCP_param_MessageType messageType,
873 SCCP_param_DestLocalReference destLocRef,
874 SCCP_param_SourceLocalReference sourceLocRef,
875 SCCP_param_ProtocolClass protClass,
876 LIN1 pointer1,
877 SCCP_ConnConfirm_optionalPart optionalPart optional,
878 SCCP_param_EndOfOptionalParams eop optional
879 }
880 with { variant (pointer1) "POINTERTO(optionalPart)";
881 variant "TAG (eop,paramName=con_SCCP_eop )"}
882
883
884 //********************************************************************************
885 // Message Connection Refused (CREF) (Q713 $4.4)
886 //********************************************************************************
887 //---------------------------------------------------------------------------
888 // Optional part
889 type set SCCP_ConnRefused_optionalPart
890 {
891 SCCP_param_CPartyAddressEnc_opt calledPAddress optional,
892 SCCP_param_Data_opt data optional,
893 SCCP_param_Importance_opt importance optional
894 }
895 with { variant "TAG (calledPAddress, paramName= con_SCCP_cdPA;
896 data, paramName= con_SCCP_data;
897 importance, paramName= con_SCCP_imp)"
898 }
899
900 //---------------------------------------------------------------------------
901 // Message definition
902 //---------------------------------------------------------------------------
903 type record PDU_SCCP_ConnectionRefused
904 {
905 SCCP_param_MessageType messageType,
906 SCCP_param_DestLocalReference destLocRef,
907 SCCP_param_RefusalCause refusalCause,
908 LIN1 pointer1,
909 SCCP_ConnRefused_optionalPart optionalPart optional,
910 SCCP_param_EndOfOptionalParams eop optional
911 }
912 with { variant (pointer1) "POINTERTO(optionalPart)";
913 variant "TAG (eop,paramName=con_SCCP_eop )"}
914
915
916 //********************************************************************************
917 // Message Released (RLSD) (Q713 $4.5)
918 //********************************************************************************
919 //---------------------------------------------------------------------------
920 // Optional part
921 type set SCCP_Released_optionalPart
922 {
923 SCCP_param_Data_opt data optional,
924 SCCP_param_Importance_opt importance optional
925 }
926 with { variant "TAG (data, paramName= con_SCCP_data;
927 importance, paramName= con_SCCP_imp)"
928 }
929
930 //---------------------------------------------------------------------------
931 // Message definition
932 //---------------------------------------------------------------------------
933 type record PDU_SCCP_Released
934 {
935 SCCP_param_MessageType messageType,
936 SCCP_param_DestLocalReference destLocRef,
937 SCCP_param_SourceLocalReference sourceLocRef,
938 SCCP_param_ReleaseCause releaseCause,
939 LIN1 pointer1,
940 SCCP_Released_optionalPart optionalPart optional,
941 SCCP_param_EndOfOptionalParams eop optional
942 }
943 with { variant (pointer1) "POINTERTO(optionalPart)";
944 variant "TAG (eop,paramName=con_SCCP_eop )" }
945
946
947 //********************************************************************************
948 // Message Release Complete (RLC) (Q713 $4.6)
949 //********************************************************************************
950 //---------------------------------------------------------------------------
951 // Message definition
952 //---------------------------------------------------------------------------
953 type record PDU_SCCP_ReleaseComplete
954 {
955 SCCP_param_MessageType messageType,
956 SCCP_param_DestLocalReference destLocRef,
957 SCCP_param_SourceLocalReference sourceLocRef
958 }
959 with { variant "" }
960
961
962 //********************************************************************************
963 // Message Data form 1 (DT1) (Q713 $4.7)
964 //********************************************************************************
965 //---------------------------------------------------------------------------
966 // Message definition
967 //---------------------------------------------------------------------------
968 type record PDU_SCCP_DataForm1
969 {
970 SCCP_param_MessageType messageType,
971 SCCP_param_DestLocalReference destLocRef,
972 SCCP_param_SegmentingReassembl segmentingReassembl,
973 LIN1 pointer1, //always 1!
974 SCCP_param_Data data
975 }
976 with { variant (pointer1) "POINTERTO(data)"; }
977
978
979 //********************************************************************************
980 // Message Data form 2 (DT2) (Q713 $4.8)
981 //********************************************************************************
982
983 //---------------------------------------------------------------------------
984 // Message definition
985 //---------------------------------------------------------------------------
986 type record PDU_SCCP_DataForm2
987 {
988 SCCP_param_MessageType messageType,
989 SCCP_param_DestLocalReference destLocRef,
990 SCCP_param_SequencingSegmenting sequencingSegmenting,
991 LIN1 pointer1, //always 1!
992 SCCP_param_Data data
993 }
994 with { variant (pointer1) "POINTERTO(data)"; }
995
996
997 //********************************************************************************
998 // Message Data Acknowledgement (AK) (Q713 $4.9)
999 //********************************************************************************
1000 //---------------------------------------------------------------------------
1001 // Message definition
1002 //---------------------------------------------------------------------------
1003 type record PDU_SCCP_DataAcknowledgement
1004 {
1005 SCCP_param_MessageType messageType,
1006 SCCP_param_DestLocalReference destLocRef,
1007 SCCP_param_RecSeqNumber recSeqNumber,
1008 SCCP_param_Credit credit
1009 }
1010 with { variant "" }
1011
1012
1013 //********************************************************************************
1014 // Message Unitdata (UDT) (Q713 $4.10)
1015 //********************************************************************************
1016 //---------------------------------------------------------------------------
1017 // Message definition
1018 //---------------------------------------------------------------------------
1019 type record PDU_SCCP_Unitdata
1020 {
1021 SCCP_param_MessageType messageType,
1022 SCCP_param_ProtocolClass protClass,
1023 LIN1 pointer1, //will be 3
1024 LIN1 pointer2,
1025 LIN1 pointer3,
1026 SCCP_param_CPartyAddressEnc calledPAddress,
1027 SCCP_param_CPartyAddressEnc callingPAddress,
1028 SCCP_param_Data data
1029 }
1030 with { variant (pointer1) "POINTERTO(calledPAddress)";
1031 variant (pointer2) "POINTERTO(callingPAddress)";
1032 variant (pointer3) "POINTERTO(data)"
1033 }
1034
1035
1036 //********************************************************************************
1037 // Message Unitdata service (UDTS) (Q713 $4.11)
1038 //********************************************************************************
1039 //---------------------------------------------------------------------------
1040 // Message definition
1041 //---------------------------------------------------------------------------
1042 type record PDU_SCCP_UnitdataService
1043 {
1044 SCCP_param_MessageType messageType,
1045 SCCP_param_ReturnCause returnCause,
1046 LIN1 pointer1, //will be 3
1047 LIN1 pointer2,
1048 LIN1 pointer3,
1049 SCCP_param_CPartyAddressEnc calledPAddress,
1050 SCCP_param_CPartyAddressEnc callingPAddress,
1051 SCCP_param_Data data
1052 }
1053 with { variant (pointer1) "POINTERTO(calledPAddress)";
1054 variant (pointer2) "POINTERTO(callingPAddress)";
1055 variant (pointer3) "POINTERTO(data)"
1056 }
1057
1058
1059 //********************************************************************************
1060 // Message Expedited Data (ED) (Q713 $4.12)
1061 //********************************************************************************
1062 //---------------------------------------------------------------------------
1063 // Message definition
1064 //---------------------------------------------------------------------------
1065 type record PDU_SCCP_ExpeditedData
1066 {
1067 SCCP_param_MessageType messageType,
1068 SCCP_param_DestLocalReference destLocRef,
1069 LIN1 pointer1, //always 1!
1070 SCCP_param_Data data
1071 }
1072 with { variant (pointer1) "POINTERTO(data)" }
1073
1074
1075 //********************************************************************************
1076 // Message Expedited Data Acknowledgement (EA) (Q713 $4.13)
1077 //********************************************************************************
1078 //---------------------------------------------------------------------------
1079 // Message definition
1080 //---------------------------------------------------------------------------
1081 type record PDU_SCCP_ExpeditedDataAck
1082 {
1083 SCCP_param_MessageType messageType,
1084 SCCP_param_DestLocalReference destLocRef
1085 }
1086 with { variant "" }
1087
1088
1089 //********************************************************************************
1090 // Message Reset Request (RSR) (Q713 $4.14)
1091 //********************************************************************************
1092 //---------------------------------------------------------------------------
1093 // Message definition
1094 //---------------------------------------------------------------------------
1095 type record PDU_SCCP_ResetRequest
1096 {
1097 SCCP_param_MessageType messageType,
1098 SCCP_param_DestLocalReference destLocRef,
1099 SCCP_param_SourceLocalReference sourceLocRef,
1100 SCCP_param_ResetCause resetCause
1101 }
1102 with { variant "" }
1103
1104
1105 //********************************************************************************
1106 // Message Reset Confirmation (RSC) (Q713 $4.15)
1107 //********************************************************************************
1108 //---------------------------------------------------------------------------
1109 // Message definition
1110 //---------------------------------------------------------------------------
1111 type record PDU_SCCP_ResetConfirm
1112 {
1113 SCCP_param_MessageType messageType,
1114 SCCP_param_DestLocalReference destLocRef,
1115 SCCP_param_SourceLocalReference sourceLocRef
1116 }
1117 with { variant "" }
1118
1119
1120 //********************************************************************************
1121 // Message Protocol data unit error (ERR) (Q713 $4.16)
1122 //********************************************************************************
1123 //---------------------------------------------------------------------------
1124 // Message definition
1125 //---------------------------------------------------------------------------
1126 type record PDU_SCCP_ProtDataUnitError
1127 {
1128 SCCP_param_MessageType messageType,
1129 SCCP_param_DestLocalReference destLocRef,
1130 SCCP_param_ErrorCause errorCause
1131 }
1132 with { variant "" }
1133
1134
1135 //********************************************************************************
1136 // Message Inactivity test (IT) (Q713 $4.17)
1137 //********************************************************************************
1138 //---------------------------------------------------------------------------
1139 // Message definition
1140 //---------------------------------------------------------------------------
1141 type record PDU_SCCP_InactivityTest
1142 {
1143 SCCP_param_MessageType messageType,
1144 SCCP_param_DestLocalReference destLocRef,
1145 SCCP_param_SourceLocalReference sourceLocRef,
1146 SCCP_param_ProtocolClass protClass,
1147 SCCP_param_SequencingSegmenting sequencingSegmenting,
1148 SCCP_param_Credit credit
1149 }
1150 with { variant "" }
1151
1152
1153 //********************************************************************************
1154 // Message Extended Unitdata (XUDT) (Q713 $4.18)
1155 //********************************************************************************
1156 //---------------------------------------------------------------------------
1157 // Optional part
1158 type record SCCP_ExtUnitdata_optionalPart
1159 {
1160 SCCP_param_Segmentation_opt segmentation optional,
1161 SCCP_param_Importance_opt importance optional
1162 }
1163 with { variant "TAG (segmentation, paramName= con_SCCP_segm;
1164 importance, paramName= con_SCCP_imp)"
1165 }
1166
1167 //---------------------------------------------------------------------------
1168 // Message definition
1169 //---------------------------------------------------------------------------
1170 type record PDU_SCCP_ExtUnitdata
1171 {
1172 SCCP_param_MessageType messageType,
1173 SCCP_param_ProtocolClass protClass,
1174 SCCP_param_HopCounter hopCounter,
1175 LIN1 pointer1, //will be 4
1176 LIN1 pointer2,
1177 LIN1 pointer3,
1178 LIN1 pointer4,
1179 SCCP_param_CPartyAddressEnc calledPAddress,
1180 SCCP_param_CPartyAddressEnc callingPAddress,
1181 SCCP_param_Data data,
1182 SCCP_ExtUnitdata_optionalPart optionalPart optional,
1183 SCCP_param_EndOfOptionalParams eop optional
1184 }
1185 with { variant (pointer1) "POINTERTO(calledPAddress)";
1186 variant (pointer2) "POINTERTO(callingPAddress)";
1187 variant (pointer3) "POINTERTO(data)";
1188 variant (pointer4) "POINTERTO(optionalPart)";
1189 variant "TAG (eop, paramName=con_SCCP_eop )"
1190 }
1191
1192
1193 //********************************************************************************
1194 // Message Extended Unitdata Service(XUDTS) (Q713 $4.19)
1195 //********************************************************************************
1196 //---------------------------------------------------------------------------
1197 // Optional part
1198 // The same as SCCP_ExtUnitdata_optionalPart
1199
1200 //---------------------------------------------------------------------------
1201 // Message definition
1202 //---------------------------------------------------------------------------
1203 type record PDU_SCCP_ExtUnitdataService
1204 {
1205 SCCP_param_MessageType messageType,
1206 SCCP_param_ReturnCause returnCause,
1207 SCCP_param_HopCounter hopCounter,
1208 LIN1 pointer1, //will be 4
1209 LIN1 pointer2,
1210 LIN1 pointer3,
1211 LIN1 pointer4,
1212 SCCP_param_CPartyAddressEnc calledPAddress,
1213 SCCP_param_CPartyAddressEnc callingPAddress,
1214 SCCP_param_Data data,
1215 SCCP_ExtUnitdata_optionalPart optionalPart optional,
1216 SCCP_param_EndOfOptionalParams eop optional
1217 }
1218 with { variant (pointer1) "POINTERTO(calledPAddress)";
1219 variant (pointer2) "POINTERTO(callingPAddress)";
1220 variant (pointer3) "POINTERTO(data)";
1221 variant (pointer4) "POINTERTO(optionalPart)";
1222 variant "TAG (eop,paramName=con_SCCP_eop )"
1223 }
1224
1225
1226 //********************************************************************************
1227 // Message Long Unitdata (LUDT) (Q713 $4.20)
1228 //********************************************************************************
1229 //---------------------------------------------------------------------------
1230 // Optional part
1231 // The same as SCCP_ExtUnitdata_optionalPart
1232
1233 //---------------------------------------------------------------------------
1234 // Message definition
1235 //---------------------------------------------------------------------------
1236 type record PDU_SCCP_LongUnitdata
1237 {
1238 SCCP_param_MessageType messageType,
1239 SCCP_param_ProtocolClass protClass,
1240 SCCP_param_HopCounter hopCounter,
1241 LIN2 pointer1,
1242 LIN2 pointer2,
1243 LIN2 pointer3,
1244 LIN2 pointer4,
1245 SCCP_param_CPartyAddressEnc calledPAddress,
1246 SCCP_param_CPartyAddressEnc callingPAddress,
1247 SCCP_param_LongData longData,
1248 SCCP_ExtUnitdata_optionalPart optionalPart optional,
1249 SCCP_param_EndOfOptionalParams eop optional
1250 }
1251 with { variant (pointer1) "POINTERTO(calledPAddress)";
1252 variant (pointer2) "POINTERTO(callingPAddress)";
1253 variant (pointer3) "POINTERTO(longData)";
1254 variant (pointer4) "POINTERTO(optionalPart)";
1255 variant "TAG (eop,paramName=con_SCCP_eop) "
1256 }
1257
1258
1259 //********************************************************************************
1260 // Message Long Unitdata Service (LUDTS) (Q713 $4.21)
1261 //********************************************************************************
1262 //---------------------------------------------------------------------------
1263 // Optional part
1264 // The same as SCCP_ExtUnitdata_optionalPart
1265
1266 //---------------------------------------------------------------------------
1267 // Message definition
1268 //---------------------------------------------------------------------------
1269 type record PDU_SCCP_LongUnitdataService
1270 {
1271 SCCP_param_MessageType messageType,
1272 SCCP_param_ReturnCause returnCause,
1273 SCCP_param_HopCounter hopCounter,
1274 LIN2 pointer1, //will be 5
1275 LIN2 pointer2,
1276 LIN2 pointer3,
1277 LIN2 pointer4,
1278 SCCP_param_CPartyAddressEnc calledPAddress,
1279 SCCP_param_CPartyAddressEnc callingPAddress,
1280 SCCP_param_LongData longData,
1281 SCCP_ExtUnitdata_optionalPart optionalPart optional,
1282 SCCP_param_EndOfOptionalParams eop optional
1283 }
1284 with { variant (pointer1) "POINTERTO(calledPAddress)";
1285 variant (pointer2) "POINTERTO(callingPAddress)";
1286 variant (pointer3) "POINTERTO(longData)";
1287 variant (pointer4) "POINTERTO(optionalPart)";
1288 variant "TAG (eop,paramName=con_SCCP_eop) "
1289 }
1290
1291
1292 //********************************************************************************
1293 // SCCP management messages (Q713 $5.3)
1294 //********************************************************************************
1295 /*type record PDU_SCMG_message
1296 {
1297 SCMG_param_FormatId messageType,
1298 SCMG_param_AffectedSSN affectedSSN,
1299 SCMG_param_AffectedPointCode affectedPC,
1300 SCMG_param_MultiplIndicator smi,
1301 SCMG_param_CongestionLevel congLevel optional
1302 //shall be present in all messages except SSG
1303 }
1304 with { variant "" }
1305 */
1306
1307 //********************************************************************************
1308 // SCCP Top Level PDU (Q713 $4.2)
1309 //********************************************************************************
1310
1311 type union PDU_SCCP
1312 {
1313 PDU_SCCP_ConnectionRequest connrequest,
1314 PDU_SCCP_ConnectionRefused connrefused,
1315 PDU_SCCP_Released released,
1316 PDU_SCCP_ReleaseComplete relcomp,
1317 PDU_SCCP_DataForm1 dataform1,
1318 PDU_SCCP_DataForm2 dataform2,
1319 PDU_SCCP_DataAcknowledgement dataack,
1320 PDU_SCCP_UnitdataService udataserv,
1321 PDU_SCCP_ExpeditedData expdata,
1322 PDU_SCCP_ExpeditedDataAck expdataack ,
1323 PDU_SCCP_ResetRequest resetreq,
1324 PDU_SCCP_ResetConfirm resconf,
1325 PDU_SCCP_ProtDataUnitError pduerror,
1326 PDU_SCCP_InactivityTest inacttest,
1327 PDU_SCCP_ExtUnitdata extudata,
1328 PDU_SCCP_ExtUnitdataService extudataserv ,
1329 PDU_SCCP_LongUnitdata longudata,
1330 PDU_SCCP_LongUnitdataService longudataserv,
1331 PDU_SCCP_Unitdata unitdata,
1332 PDU_SCCP_ConnectionConfirm connconfirm
1333 // PDU_SCMG_message scmg
1334 }
1335 with { variant "TAG (connrequest, messageType = cr;
1336 connconfirm, messageType = cc;
1337 connrefused, messageType = cref;
1338 released, messageType = rlsd;
1339 relcomp, messageType = rlc;
1340 dataform1, messageType = dt1;
1341 dataform2, messageType = dt2;
1342 dataack, messageType = ak;
1343 unitdata, messageType = udt;
1344 udataserv, messageType = udts;
1345 expdata, messageType = ed;
1346 expdataack, messageType = ea;
1347 resetreq, messageType = rsr;
1348 resconf, messageType = rsc;
1349 pduerror, messageType = err;
1350 inacttest, messageType = it;
1351 extudata, messageType = xudt;
1352 extudataserv, messageType = xudts;
1353 longudata, messageType = ludt;
1354 longudataserv, messageType = ludts)"
1355 }
1356
1357}//endgroup PDUDefinitions
1358
1359}//endgroup Types
1360
1361
1362
1363group OtherTypedefinitions
1364{//startgroup OtherTypedefinitions
1365
1366 // enum replaced with this solution:
1367 type integer states;
1368 const states
1369 idle:=0,
1370 connection_pending_OG:=1,
1371 connection_pending_IC:=2,
1372 active:=3, // ==data transfer, see 6.1.1.2.1/Q.711.
1373 disconnect_pending:=4, // ==
1374 //reset_OG,- as N_RESET_req and N_RESET_resp will not be received, this state should never occur
1375 reset_bothway:=5,
1376 reset_IC:=5,
1377 //frozen_reference,
1378 wait_conn_confirm:=6;
1379
1380 type record sccp_buffer
1381 {
1382 octetstring buffer,
1383 integer actlen,
1384 integer maxlen
1385 }
1386
1387 // === Connection Oriented Data: ===
1388
1389 // record holding all data of a connection
1390 type record ConnectionData
1391 {
1392 OCT3 localReference, //segmLocReference????,
1393 OCT3 remoteReference, //segmRemoteRef????,
1394 states state,
1395 integer connectionId,
1396 //integer max_len, //maximal length of input buffer
1397 sccp_buffer reassembler_buffer // data collected here before sending up to the User
1398 }
1399
1400 // === Connectionless Data: =======================
1401 // == sending:==
1402 // Segmentation Local Reference
1403 type integer segmLocRef_states;
1404 const segmLocRef_states segmLocRef_idle :=0, segmLocRef_busy:=1;
1405
1406 type record segmLocRef
1407 {
1408 OCT3 val,
1409 segmLocRef_states state
1410 }
1411
1412 // == receiving: ==
1413 type record ClessRcvBuff
1414 {
1415 //OCT3 segmLocalRef, // not used ??
1416 OCT3 segmRemoteRef,
1417 segmLocRef_states state,
1418 sccp_buffer reassembler_buffer
1419 }
1420
1421 type charstring SCCP_ServiceType;
1422
1423 const charstring mtp3_itu := "mtp3_itu"; // SCCP_itu
1424 const charstring mtp3_ansi := "mtp3_ansi"; //SCCP_ansi
1425 const charstring mtp3_ttc := "mtp3_ttc"; //SCCP_ttc
1426 const charstring mtp3b_itu := "mtp3b_itu";
1427 const charstring mtp3b_ansi:= "mtp3b_ansi";
1428 const charstring mtp3b_ttc := "mtp3b_ttc";
1429 const charstring m3ua := "m3ua";
1430 const charstring mtp3_mpt := "mtp3_mpt";
1431
1432 type record MSC_SCCP_MTP3_parameters
1433 {
1434 MTP3_Field_sio sio,
1435 integer opc,
1436 integer dpc,
1437 integer sls,
1438 SCCP_ServiceType sccp_serviceType,
1439 integer ssn optional //This should be set if you want only one
1440 } //active subsystem on the link.
1441
1442}//endgroup OtherTypedefinitions
1443
1444group MessageTypes
1445{
1446 // *************************************************************************
1447 // * ASP_sccp type definitions *
1448 // *************************************************************************
1449
1450
1451 // type record ASP_MTP3_TRANSFERind_sccp
1452 // {
1453 // octetstring sio length(1), // see values in Q.704 $14.2.1
1454 // integer opc,
1455 // integer dpc,
1456 // integer sls,
1457 // PDU_SCCP data
1458 // }
1459
1460
1461 type record ASP_MTP3_TRANSFERreq_sccp
1462 {
1463 octetstring sio length(1), // see values in Q.704 $14.2.1
1464 integer opc,
1465 integer dpc,
1466 integer sls,
1467 PDU_SCCP data
1468 }
1469
1470}//end group Messagetypes
1471
1472group ASPTemplates
1473{
1474
1475// *************************************************************************
1476// * ASP template definitions sending
1477// *************************************************************************
1478
1479// template ASP_MTP3_TRANSFERind_sccp t_ASP_MTP3_TRANSFERind_sccp
1480// (
1481//
1482// octetstring pl_sio,
1483// integer pl_opc,
1484// integer pl_dpc,
1485// integer pl_sls,
1486// template PDU_SCCP pl_data) :=
1487// {
1488// sio := pl_sio,
1489// opc := pl_opc,
1490// dpc := pl_dpc,
1491// sls := pl_sls,
1492// data := pl_data
1493// }
1494
1495
1496 template ASP_MTP3_TRANSFERreq_sccp t_ASP_MTP3_TRANSFERreq_sccp
1497 (
1498
1499 octetstring pl_sio,
1500 integer pl_opc,
1501 integer pl_dpc,
1502 integer pl_sls,
1503 template PDU_SCCP pl_data
1504 ) :=
1505 {
1506 sio := pl_sio,
1507 opc := pl_opc,
1508 dpc := pl_dpc,
1509 sls := pl_sls,
1510 data := pl_data
1511 }
1512
1513
1514// *************************************************************************
1515// * ASP template definitions receiving *
1516// *************************************************************************
1517
1518
1519//template ASP_MTP3_TRANSFERind_sccp tr_ASP_MTP3_TRANSFERind_sccp
1520// (
1521//
1522// PDU_SCCP pl_data) :=
1523// {
1524// sio := ?,
1525// opc := ?,
1526// dpc := ?,
1527// sls := ?,
1528// data := pl_data
1529// }
1530
1531
1532 template ASP_MTP3_TRANSFERreq_sccp tr_ASP_MTP3_TRANSFERreq_sccp
1533 // (
1534
1535 // PDU_SCCP pl_data)
1536 :=
1537 {
1538 sio := ?,
1539 opc := ?,
1540 dpc := ?,
1541 sls := ?,
1542 data := ? //pl_data
1543 }
1544
1545
1546
1547
1548
1549
1550}//endgroup ASPTemplates
1551
1552
1553} with { encode "RAW" } // end module