| //////////////////////////////////////////////////////////////////////////////// |
| // // |
| // Copyright Test Competence Center (TCC) ETH 2008 // |
| // // |
| // The copyright to the computer program(s) herein is the property of TCC. // |
| // The program(s) may be used and/or copied only with the written permission // |
| // of TCC or in accordance with the terms and conditions stipulated in the // |
| // agreement/contract under which the program(s) have been supplied // |
| // // |
| /////////////////////////////////////////////////////////////////////////////// |
| // File: SCCP_Types.ttcn |
| // Description: SS7 SCCP definitions according to specification |
| // ITU-T SS7 SCCP, ANSI ..., ttc ..., mpt |
| // Reference: ITU-T: Recommendation Q.711-Q.714 (07/96) |
| // ANSI: T1.112-2001 |
| // ttc: JT-Q711 -JT-Q714 (ver 2, 04/97) |
| // Rev: R6A05 |
| // Prodnr: CNL 113 341 |
| // Updated: 2008-05-08 |
| // Contact: http://ttcn.ericsson.se |
| |
| module SCCP_Types.objid { itu_t(0) identified_organization (4) etsi(0) |
| reserved(127) etsi_identified_organization(0) ericsson(5) |
| testing (0) generic(0) sccp(1) v3(3) typeDefinitions(2) patchNo(3)} |
| |
| {//start of the module |
| |
| modulepar |
| {//startparameters |
| |
| //------------------Protocol Timer Values---------------------------------- |
| |
| //Waiting for connection confirm message -1 to 2 minutes |
| |
| float tspc_timer_T_conn_est:=120.0; |
| |
| //Delay to send a message on a conn IT on a |
| //connection section when there are no |
| //messages to send |
| //5 to 10 minutes |
| |
| float tspc_timer_T_ias:=600.0; |
| //Waiting to receive a message on a connection |
| //section |
| //11 to 21 minutes |
| float tspc_timer_T_iar:=1260.0; |
| //Waiting for release complete message -10 to 20 seconds |
| |
| float tspc_timer_T_rel:=20.0; |
| //Waiting for release complete message; or to |
| //repeat sending released message after the |
| //initial T(rel) expiry |
| //10 to 20 seconds |
| float tspc_timer_T_repeat_rel:=20.0; |
| |
| //Waiting for release complete message; or to |
| //release connection resources, freeze the LRN |
| //and alert a maintenance function after the |
| //initial T(rel) expiry |
| //extending to 1 minute |
| float tspc_timer_T_int:=60.0; |
| |
| //Waiting to resume normal procedure for |
| //temporary connection sections during the |
| //restart procedure |
| //23 to 25 minutes |
| float tspc_timer_T_guard:=1500.0; |
| |
| //Waiting to release temporary connection |
| //section or alert maintenance function after |
| //reset request message is sent |
| //10 to 20 seconds |
| float tspc_timer_T_reset:=20.0; |
| //Waiting to receive all the segments of the |
| //remaining segments single segmented |
| //message after receiving the first segment |
| //10 to 20 seconds |
| |
| // float tspc_timer_T_reasssembly; |
| |
| float tspc_timer_T_internal_reset:=0.0; |
| //zero-only for sending internal signals!! |
| |
| |
| float tspc_timer_guard :=120.0 |
| //the same as tspc_timer_T_conn_est:1 or 2 minutes |
| |
| }//end parameters |
| |
| |
| |
| import from General_Types all; |
| import from MTP3asp_Types all; |
| //import from MTP3asp_PortType all; |
| |
| import from SCCPasp_Types all; |
| |
| external function enc_PDU_SCCP( in PDU_SCCP pdu) return octetstring |
| with { extension "prototype(convert)" |
| extension "encode(RAW)" |
| }; |
| external function dec_PDU_SCCP( in octetstring o) return PDU_SCCP |
| with { extension "prototype(convert)" |
| extension "decode(RAW)" |
| }; |
| |
| // Address encoder/decoder for itu: |
| external function enc_PDU_SCCP_Address_itu( in SCCP_param_CPartyAddress_itu pdu) return octetstring |
| with { extension "prototype(convert)" |
| extension "encode(RAW)" |
| }; |
| external function dec_PDU_SCCP_Address_itu( in octetstring o) return SCCP_param_CPartyAddress_itu |
| with { extension "prototype(convert)" |
| extension "decode(RAW)" |
| }; |
| |
| // Address encoder/decoder for ansi: |
| external function enc_PDU_SCCP_Address_ansi( in SCCP_param_CPartyAddress_ansi pdu) return octetstring |
| with { extension "prototype(convert)" |
| extension "encode(RAW)" |
| }; |
| external function dec_PDU_SCCP_Address_ansi( in octetstring o) return SCCP_param_CPartyAddress_ansi |
| with { extension "prototype(convert)" |
| extension "decode(RAW)" |
| }; |
| |
| // Address encoder/decoder for ttc: |
| external function enc_PDU_SCCP_Address_ttc( in SCCP_param_CPartyAddress_ttc pdu) return octetstring |
| with { extension "prototype(convert)" |
| extension "encode(RAW)" |
| }; |
| external function dec_PDU_SCCP_Address_ttc( in octetstring o) return SCCP_param_CPartyAddress_ttc |
| with { extension "prototype(convert)" |
| extension "decode(RAW)" |
| }; |
| |
| // Address encoder/decoder for mpt: |
| external function enc_PDU_SCCP_Address_mpt( in SCCP_param_CPartyAddress_mpt pdu) return octetstring |
| with { extension "prototype(convert)" |
| extension "encode(RAW)" |
| }; |
| external function dec_PDU_SCCP_Address_mpt( in octetstring o) return SCCP_param_CPartyAddress_mpt |
| with { extension "prototype(convert)" |
| extension "decode(RAW)" |
| }; |
| |
| group Types |
| { |
| group FieldDefinitions |
| { |
| //--------------------------------------------------------------------------- |
| // Field Parameter Name (ITU:$3/Q713 $3, ANSI:Table 2/T1.112.3-2001 |
| //--------------------------------------------------------------------------- |
| type integer SCCP_field_ParameterName with { variant "FIELDLENGTH(8)"}; |
| const SCCP_field_ParameterName con_SCCP_eop :=0, con_SCCP_dLocRef:=1, |
| con_SCCP_sLocRef:=2, con_SCCP_cdPA:=3, |
| con_SCCP_cgPA:=4, con_SCCP_protclass:=5, |
| con_SCCP_segmReas:=6, con_SCCP_recSeqNum:=7, |
| con_SCCP_seqSegm:=8, con_SCCP_credit:=9, |
| con_SCCP_relCause:=10, con_SCCP_retCause:=11, |
| con_SCCP_resCause:=12, con_SCCP_errorCause:=13, |
| con_SCCP_refCause:=14, con_SCCP_data:=15, |
| con_SCCP_segm:=16, con_SCCP_hopCount:=17, |
| con_SCCP_imp:=18, con_SCCP_longData:=19, |
| con_SCCP_mti:=248, con_SCCP_ins:=249, |
| con_SCCP_isni:=250; |
| |
| |
| //EOP End of optional parameters, DLocRef Destination local reference, |
| //SLocRef Source local reference, CdPA Called party address, |
| //CgPA Calling party address, ProtClass Protocol class, |
| //SegmReas Segmenting/reassembling, RecSeqNum Receive sequence number, |
| //SeqSegm Sequencing/segmenting, Credit Credit, |
| //RelCause Release cause, RetCau Return cause, |
| //ResCau Reset cause, ErrCau Error cause, |
| //RefCau Refusal cause, Data Data, |
| //SEGM Segmentation, HopCount Hop counter, |
| //IMP Importance, LongData Long data, |
| // --- only in ANSI:--- |
| //MTI Message Type Interworking |
| //INS |
| //ISNI |
| //ISNI |
| |
| //--------------------------------------------------------------------------- |
| // Field Address Indicator (ITU: Q713 $3.4.1, ANSI: T1.112.3 $3.4.1) |
| //--------------------------------------------------------------------------- |
| type record SCCP_field_AddressIndicator_itu |
| { |
| BIT1 pointCodeIndic, |
| BIT1 ssnIndicator, |
| BIT4 globalTitleIndic, |
| BIT1 routingIndicator, |
| BIT1 reserved |
| } |
| with { variant "" } |
| |
| // field order is interesting at coding/decoding |
| type record SCCP_field_AddressIndicator_ansi |
| { |
| BIT1 ssnIndicator, |
| BIT1 pointCodeIndic, |
| BIT4 globalTitleIndic, |
| BIT1 routingIndicator, |
| BIT1 reserved |
| } |
| with { variant "" } |
| |
| //--------------------------------------------------------------------------- |
| // Subfield Signalling Point Code (Q713 $3.4.2.1) |
| //--------------------------------------------------------------------------- |
| // use functions SCCP_getSPC and SCCP_setSPC to handle it!!! |
| |
| type BIT16 SCCP_field_SignallingPointCode_itu; // TO BE DEFINED: msb or lsb ??? |
| type BIT24 SCCP_field_SignallingPointCode_ansi; // TO BE DEFINED: msb or lsb ??? |
| type BIT16 SCCP_field_SignallingPointCode_ttc; // TO BE DEFINED: msb or lsb ??? |
| type BIT24 SCCP_field_SignallingPointCode_mpt; // TO BE DEFINED: msb or lsb ??? |
| //--------------------------------------------------------------------------- |
| // Subfield Subsystem Number (Q713 $3.4.2.2) |
| //--------------------------------------------------------------------------- |
| //values declared in SCCPConstants in SCCP.ttcn |
| |
| type integer SCCP_field_SubsystemNumber |
| with { variant "FIELDLENGTH(8)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Subfield Global Title (ITU: Q713 $3.4.2.3, ANSI T1.112.3 $3.4.2.3 |
| //--------------------------------------------------------------------------- |
| |
| //--------------------------------------------------------------------------- |
| // Subfield Global Title, Nature of address only |
| //ITU: GTI=0001, Q713 $3.4.2.3.1 |
| //ANSI: - |
| |
| type record SCCP_field_GlobalTitle_NoA |
| { |
| BIT7 natureOfAddress, |
| BIT1 oddeven, |
| hexstring globalTitleAddress |
| //it should be hexstring, number digits are in BCD; |
| //hexstring is already supported yet by ETH compiler |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Global Title, Translation type only ( |
| // ITU: GTI=0010, Q713 $3.4.2.3.2 |
| // ANSI: GTI=0010, Figure6A/T1.112.3 |
| |
| type record SCCP_field_GlobalTitle_TT |
| { |
| OCT1 translationType, |
| hexstring globalTitleAddress |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Global Title, Translation type & numbering plan & encoding scheme |
| // ITU: GTI=0011, Q713 $3.4.2.3.3) |
| // ANSI GTI=0001, Figure6/T1.112.3 |
| |
| type record SCCP_field_GlobalTitle_TT_NP_ES |
| { |
| OCT1 translationType, |
| BIT4 encodingScheme, |
| BIT4 numberingPlan, |
| hexstring globalTitleAddress |
| } |
| with { variant "" } |
| |
| |
| //----------------------------------------------------------------------------- |
| // Global Title, Translation type & numbering plan & encoding scheme & nature of |
| // address |
| // GTI=0100, Q713 $3.4.2.3.4) |
| // ANSI: - |
| |
| // Suggested to change name to SCCP_field_GlobalTitle_TT_NP_ES_NoA |
| |
| type record SCCP_field_SignallingPointCode_TT_NP_ES_NoA |
| { |
| OCT1 translationType, |
| BIT4 encodingScheme, |
| BIT4 numberingPlan, |
| BIT7 natureOfAddress, |
| BIT1 reserved, |
| hexstring globalTitleAddress |
| } |
| with { variant "" } |
| |
| |
| type union SCCP_field_GlobalTitle_itu |
| { |
| SCCP_field_GlobalTitle_NoA gti0001, |
| SCCP_field_GlobalTitle_TT gti0010, |
| SCCP_field_GlobalTitle_TT_NP_ES gti0011, |
| SCCP_field_SignallingPointCode_TT_NP_ES_NoA gti0100 |
| } |
| with { variant "" } |
| // no TAG is added as alternatives depend on the gti field of the address indicator |
| |
| type union SCCP_field_GlobalTitle_ansi |
| { |
| SCCP_field_GlobalTitle_TT_NP_ES gti0001, |
| SCCP_field_GlobalTitle_TT gti0010 |
| } |
| with { variant "" } |
| |
| //--------------------------------------------------------------------------- |
| // Field Protocol Class (Q713 $3.6) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_field_ProtocolClass |
| // { class0 (0), class1(1), class2(2), class3(3) } |
| // with { variant "FIELDLENGTH(4)" } |
| //ethgry(2002-08-01): replaced by BIT4 |
| |
| //--------------------------------------------------------------------------- |
| // Field Importance (Q713 $3.19) |
| //--------------------------------------------------------------------------- |
| type integer SCCP_field_Importance |
| with { variant "FIELDLENGTH(3)" } |
| |
| |
| }//endgroup FieldDefinitions |
| |
| |
| group ParameterDefinitions |
| { |
| //--------------------------------------------------------------------------- |
| // Parameter Message Type (Q713 $2.1) |
| //--------------------------------------------------------------------------- |
| type integer SCCP_param_MessageType with { variant "FIELDLENGTH(8)" } |
| const SCCP_param_MessageType cr:=1, cc:=2, cref:=3, |
| rlsd:=4, rlc:=5, dt1:=6, dt2:=7, |
| ak:=8, udt:=9, udts:=10, ed:=11, |
| ea:=12, rsr:=13, rsc:=14, err:=15, |
| it:=16, xudt:=17, xudts:=18, ludt:=19, |
| ludts:=20; |
| |
| |
| //CR Connection request, CC Connection confirm, CREF Connection refused, |
| //RLSD Released, RLC Release complete, DT1 Data form 1, |
| //DT2 Data form 2, AK Data acknowledgement, UDT Unitdata, |
| //UDTS Unitdata service, ED Expedited data, EA Expedited data acknowledgement, |
| //RSR Reset request, RSC Reset confirm, ERR Protocol data unit error, |
| //IT Inactivity test, XUDT Extended unitdata, XUDTS Extended unitdata service, |
| //LUDT Long unitdata, LUDTS Long unitdata service |
| |
| |
| //--------------------------------------------------------------------------- |
| // End of Optional Parameters (Q713 $3.1) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_EndOfOptionalParams |
| { |
| SCCP_field_ParameterName paramName (con_SCCP_eop) |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Destination Local Reference (Q713 $3.2) |
| //--------------------------------------------------------------------------- |
| type octetstring SCCP_param_DestLocalReference |
| with { variant "FIELDLENGTH(3)"} |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Source Local Reference (Q713 $3.3) |
| //--------------------------------------------------------------------------- |
| |
| type octetstring SCCP_param_SourceLocalReference |
| with { variant "FIELDLENGTH(3)" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Called/Calling Party Address (Q713 $3.4/$3.5) |
| //--------------------------------------------------------------------------- |
| /* Removed 2004.02.16 by ethbaat: |
| |
| type union SCCP_superfield_SignallingPointCode_itu |
| { |
| SCCP_field_SignallingPointCode_itu present, |
| Dummy absent |
| } with { variant "" } |
| |
| |
| type union SCCP_superfield_SignallingPointCode_ansi |
| { |
| SCCP_field_SignallingPointCode_ansi present, |
| Dummy absent |
| } with { variant "" } |
| |
| type union SCCP_superfield_SignallingPointCode_ttc |
| { |
| SCCP_field_SignallingPointCode_ttc present, |
| Dummy absent |
| } with { variant "" } |
| |
| type union SCCP_superfield_SubsystemNumber |
| { |
| SCCP_field_SubsystemNumber present, |
| Dummy absent |
| } with { variant "" } |
| |
| */ |
| |
| // Standard Independent Encoded Calling/Called Party Address: |
| // used in SCCP.ttcn/Convert |
| |
| // this address is used everywhere in SCCP inside: |
| type octetstring SCCP_CPartyAddressEnc_addr with { variant ""}; |
| |
| type record SCCP_param_CPartyAddressEnc |
| { |
| LIN1 paramLength, |
| SCCP_CPartyAddressEnc_addr addr |
| } with { variant (paramLength) "LENGTHTO( addr )"} |
| |
| // Structured, decoded versions: |
| |
| type record SCCP_param_CPartyAddress_itu { |
| |
| SCCP_field_AddressIndicator_itu addressIndicator, |
| SCCP_field_SignallingPointCode_itu signPointCode optional, |
| SCCP_field_SubsystemNumber subsystemNumber optional, |
| SCCP_field_GlobalTitle_itu globalTitle optional |
| } |
| with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)"; |
| variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)"; |
| variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B, |
| addressIndicator.globalTitleIndic = '0010'B, |
| addressIndicator.globalTitleIndic = '0011'B, |
| addressIndicator.globalTitleIndic = '0100'B}), |
| CROSSTAG( |
| gti0001, addressIndicator.globalTitleIndic = '0001'B; |
| gti0010, addressIndicator.globalTitleIndic = '0010'B; |
| gti0011, addressIndicator.globalTitleIndic = '0011'B; |
| gti0100, addressIndicator.globalTitleIndic = '0100'B)" |
| } |
| |
| type record SCCP_param_CPartyAddress_ansi |
| { |
| SCCP_field_AddressIndicator_ansi addressIndicator, |
| SCCP_field_SubsystemNumber subsystemNumber optional, |
| SCCP_field_SignallingPointCode_ansi signPointCode optional, |
| SCCP_field_GlobalTitle_ansi globalTitle optional |
| } |
| with { |
| variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B )"; |
| variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B )"; |
| variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B, |
| addressIndicator.globalTitleIndic = '0010'B}), |
| CROSSTAG( |
| gti0001, addressIndicator.globalTitleIndic = '0001'B; |
| gti0010, addressIndicator.globalTitleIndic = '0010'B)" |
| } |
| |
| type record SCCP_param_CPartyAddress_ttc { |
| |
| SCCP_field_AddressIndicator_itu addressIndicator, |
| SCCP_field_SignallingPointCode_ttc signPointCode optional, |
| SCCP_field_SubsystemNumber subsystemNumber optional, |
| SCCP_field_GlobalTitle_itu globalTitle optional |
| } |
| with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)"; |
| variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)"; |
| variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B, |
| addressIndicator.globalTitleIndic = '0010'B, |
| addressIndicator.globalTitleIndic = '0011'B, |
| addressIndicator.globalTitleIndic = '0100'B}), |
| CROSSTAG( |
| gti0001, addressIndicator.globalTitleIndic = '0001'B; |
| gti0010, addressIndicator.globalTitleIndic = '0010'B; |
| gti0011, addressIndicator.globalTitleIndic = '0011'B; |
| gti0100, addressIndicator.globalTitleIndic = '0100'B)" |
| } |
| |
| type record SCCP_param_CPartyAddress_mpt { |
| |
| SCCP_field_AddressIndicator_itu addressIndicator, |
| SCCP_field_SignallingPointCode_mpt signPointCode optional, |
| SCCP_field_SubsystemNumber subsystemNumber optional, |
| SCCP_field_GlobalTitle_itu globalTitle optional |
| } |
| with { variant (signPointCode) "PRESENCE( addressIndicator.pointCodeIndic = '1'B)"; |
| variant (subsystemNumber) "PRESENCE( addressIndicator.ssnIndicator = '1'B)"; |
| variant (globalTitle) "PRESENCE( {addressIndicator.globalTitleIndic = '0001'B, |
| addressIndicator.globalTitleIndic = '0010'B, |
| addressIndicator.globalTitleIndic = '0011'B, |
| addressIndicator.globalTitleIndic = '0100'B}), |
| CROSSTAG( |
| gti0001, addressIndicator.globalTitleIndic = '0001'B; |
| gti0010, addressIndicator.globalTitleIndic = '0010'B; |
| gti0011, addressIndicator.globalTitleIndic = '0011'B; |
| gti0100, addressIndicator.globalTitleIndic = '0100'B)" |
| } |
| |
| // type record SCCP_param_CPartyAddress_opt_itu |
| type record SCCP_param_CPartyAddressEnc_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_cdPA, con_SCCP_cgPA), |
| LIN1 paramLength, |
| SCCP_CPartyAddressEnc_addr addr |
| } with { variant (paramLength) "LENGTHTO( addr )"} |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Protocol Class (Q713 $3.6) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_ProtocolClass |
| { |
| BIT4 class, |
| BIT4 messageHandling |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Segmenting/reassembling (Q713 $3.7) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_SegmentingReassembl |
| { |
| BIT1 more, |
| BIT7 reserved |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Receive Sequence Number (Q713 $3.8) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_RecSeqNumber |
| { |
| BIT1 reserved, |
| BIT7 pr |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Sequencing/Segmenting (Q713 $3.9) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_SequencingSegmenting |
| { |
| BIT1 reserved, |
| BIT7 p_s, |
| BIT1 more, |
| BIT7 pr |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Credit(Q713 $3.10) |
| //--------------------------------------------------------------------------- |
| type octetstring SCCP_param_Credit |
| with { variant "FIELDLENGTH(1)" }//ethlel0813 |
| |
| |
| type record SCCP_param_Credit_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_credit), |
| LIN1 paramLength, // always 1! |
| OCT1 credit |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Release Cause(Q713 $3.11) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_param_ReleaseCause |
| // { endUserOrig(0), endUserCong(1), endUserFailure(2), sCCPUserOrig(3), |
| // remProcError(4), inconsConnData(5), accessFailure(6), accessCongestion(7), |
| // subsystFailure(8), subsystCongest(9), mTPFailure(10), networkCongest(11), |
| // expResetTimer(12), expRecInacTimer(13), reserved(14), unqualified(15), |
| // sCCPFailure(16) |
| // } |
| // with { variant "FIELDLENGTH(8)" } |
| |
| //values declared in SCCPConstants in SCCP.ttcn |
| |
| type integer SCCP_param_ReleaseCause |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Return Cause(Q713 $3.12) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_param_ReturnCause |
| // { noTransl4AddrNature(0), noTransl4SpecifAddr(1), subsystemCongestion(2), |
| // subsystemFailure(3), unequippedUser(4), mTPFailure(5), |
| // networkCongestion(6), unqualified(7), errorMessageTransport(8), |
| // errorLocalProcessing(9), destNoReassembly(10), sCCPFailure(11), |
| // hopCounterViolation(12), segmeNotSupported(13), segmentationFailure(14) |
| // } |
| // with { variant "FIELDLENGTH(8)" } |
| |
| //values declared in SCCPConstants in SCCP.ttcn |
| type integer SCCP_param_ReturnCause |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Reset Cause(Q713 $3.13) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_param_ResetCause |
| // { endUserOriginated(0), sCCPUserOriginated(1), |
| // messOutOfOrder_incPs(2), messOutOfOrder_incPr(3), |
| // remProcErr_messOutOfWindow(4), emProcErr_IncPsAfterReinit(5), |
| // remProcErr_general(6), remEndUserOperational(7), |
| // networkOperational(8), accessOperational(9), |
| // networkCongestion(10), reserved(11), |
| // unqualified(12) |
| // } |
| // with { variant "FIELDLENGTH(8)" } |
| |
| |
| //values declared in SCCPConstants in SCCP.ttcn |
| |
| type integer SCCP_param_ResetCause |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Error Cause(Q713 $3.14) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_param_ErrorCause |
| // { unassignedDestinationLRN(0), inconsistentSourceLRN(1), |
| // pointCodeMismatch(2), serviceClassMismatch(3), |
| // unqualified(4) |
| // } |
| // with { variant "FIELDLENGTH(8)" } |
| |
| //values declared in SCCPConstants in SCCP.ttcn |
| |
| type integer SCCP_param_ErrorCause |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Refusal Cause(Q713 $3.15) |
| //--------------------------------------------------------------------------- |
| //type enumerated SCCP_param_RefusalCause |
| // { endUserOrigin(0), endUserConges(1), endUserFailure(2), |
| // sCCPUserOrigin(3), destAddrUnkn(4), destInaccess(5), |
| // qOSNotAvail_nonTransient(6), qOSNotAvail_transient(7), accessFailure(8), |
| // accessCongestion(9), subsystemFailure(10), subsystemCongest(11), |
| // expConnEstTimer(12), incomUserData(13), reserved(14), |
| // unqualified(15), hopCounterViol(16), sCCPFailure(17), |
| // noTransl4address(18), unequippedUser(19) |
| // } |
| // with { variant "FIELDLENGTH(8)" } |
| |
| |
| //values declared in SCCPConstants in SCCP.ttcn |
| |
| type integer SCCP_param_RefusalCause |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter User data (Q713 $3.16) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_Data |
| { |
| LIN1 paramLength, |
| OCTN data |
| } |
| with { variant (paramLength) "LENGTHTO(data)" } |
| |
| |
| type record SCCP_param_Data_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_data), |
| LIN1 paramLength, |
| OCTN data |
| } |
| with { variant (paramLength) "LENGTHTO(data)" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Segmentation (Q713 $3.17) |
| //--------------------------------------------------------------------------- |
| |
| type record SCCP_param_Segmentation_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_segm), |
| LIN1 paramLength, //always 4! |
| BIT4 remainingSegment, |
| BIT2 reserved, |
| BIT1 class, |
| BIT1 firstSegm, |
| OCT3 segmLocalRef |
| } |
| with { variant "" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Hop counter (Q713 $3.18) |
| //--------------------------------------------------------------------------- |
| type integer SCCP_param_HopCounter |
| with { variant "FIELDLENGTH(8), COMP(nosign)" }; |
| |
| |
| type record SCCP_param_HopCounter_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_hopCount), |
| LIN1 paramLength, //always 1! |
| SCCP_param_HopCounter counter |
| } |
| with { variant (paramLength) "LENGTHTO(counter)" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Importance (Q713 $3.19) |
| //--------------------------------------------------------------------------- |
| |
| type record SCCP_param_Importance_opt |
| { |
| SCCP_field_ParameterName paramName(con_SCCP_imp), |
| LIN1 paramLength, //always 1! |
| SCCP_field_Importance importance, |
| BIT5 reserved |
| } |
| with { variant ""} |
| //with { variant (paramLength) "LENGTHTO(importance)" } //???? |
| |
| |
| //--------------------------------------------------------------------------- |
| // Parameter Long data (Q713 $3.20) |
| //--------------------------------------------------------------------------- |
| type record SCCP_param_LongData |
| { |
| LIN2 paramLength, |
| OCTN data |
| } |
| with { variant (paramLength) "LENGTHTO(data)" } |
| |
| |
| //******************************************************************************** |
| // SCCP management parameters (Q713 $5) |
| //******************************************************************************** |
| |
| //--------------------------------------------------------------------------- |
| // SCMG format identifier (Q713 $5.1) |
| //--------------------------------------------------------------------------- |
| type enumerated SCMG_param_FormatId |
| { |
| sSAallowed(1), // SSA subsystem-allowed |
| sSPprohib(2), // SSP subsystem-prohibited |
| sSTstaTest(3), // SST subsystem-status-test |
| sORoutReq(4), // SOR subsystem-out-of-service-request |
| sORoutGrant (5), // SOG subsystem-out-of-service-grant |
| sSCcongest(6) // SSC SCCP/subsystem-congested |
| } |
| with { variant "FIELDLENGTH(8)" } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Affected SSN (Q713 $5.2.1) |
| //--------------------------------------------------------------------------- |
| /* not supported yet: |
| type SCCP_field_SubsystemNumber SCMG_param_AffectedSSN |
| with { variant "" } |
| */ |
| |
| //--------------------------------------------------------------------------- |
| // Affected Pointcode (Q713 $5.2.2) |
| //--------------------------------------------------------------------------- |
| /* not supported yet: |
| type SCCP_field_SignallingPointCode SCMG_param_AffectedPointCode |
| with { variant "" } |
| */ |
| |
| //--------------------------------------------------------------------------- |
| // Subsystem Multiplicity Indicator (Q713 $5.2.3) |
| //--------------------------------------------------------------------------- |
| /* not supported yet: |
| type record SCMG_param_MultiplIndicator |
| { |
| BIT2 smi, |
| BIT6 reserved |
| } |
| with { variant "" } |
| */ |
| |
| //--------------------------------------------------------------------------- |
| // SCCP congestion level (Q713 $5.2.4) |
| //--------------------------------------------------------------------------- |
| /* not supported yet: |
| type record SCMG_param_CongestionLevel |
| { |
| BIT4 congLevel, |
| BIT4 reserved |
| } |
| with { variant "" } |
| */ |
| |
| }//endgroup ParameterDefinitions |
| |
| |
| group PDUDefinitions |
| { |
| //******************************************************************************** |
| // Message Connection Request (CR) (Q713 $4.2) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| type set SCCP_ConnReq_optionalPart |
| { |
| SCCP_param_Credit_opt credit optional, |
| SCCP_param_CPartyAddressEnc_opt callingPAddress optional, |
| SCCP_param_Data_opt data optional, |
| SCCP_param_HopCounter_opt hopCounter optional, |
| SCCP_param_Importance_opt importance optional |
| } |
| with { variant "TAG ( credit, paramName= con_SCCP_credit; |
| callingPAddress, paramName= con_SCCP_cgPA; |
| data, paramName= con_SCCP_data; |
| hopCounter, paramName= con_SCCP_hopCount; |
| importance , paramName= con_SCCP_imp)" |
| } |
| |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ConnectionRequest |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_SourceLocalReference sourceLocRef, |
| SCCP_param_ProtocolClass protClass, |
| LIN1 pointer1, //will be 2 |
| LIN1 pointer2, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_ConnReq_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop )" |
| //Note, that optional part itself is mandatory but it may be empty! |
| } |
| |
| |
| //******************************************************************************** |
| // Message Connection Confirm (CC) (Q713 $4.3) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| type set SCCP_ConnConfirm_optionalPart |
| { |
| SCCP_param_Credit_opt credit optional, |
| SCCP_param_CPartyAddressEnc_opt calledPAddress optional, |
| SCCP_param_Data_opt data optional, |
| SCCP_param_Importance_opt importance optional |
| } |
| with { variant "TAG ( credit, paramName= con_SCCP_credit; |
| calledPAddress, paramName= con_SCCP_cdPA; |
| data, paramName= con_SCCP_data; |
| importance, paramName= con_SCCP_imp)" |
| } |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ConnectionConfirm |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef, |
| SCCP_param_ProtocolClass protClass, |
| LIN1 pointer1, |
| SCCP_ConnConfirm_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop )"} |
| |
| |
| //******************************************************************************** |
| // Message Connection Refused (CREF) (Q713 $4.4) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| type set SCCP_ConnRefused_optionalPart |
| { |
| SCCP_param_CPartyAddressEnc_opt calledPAddress optional, |
| SCCP_param_Data_opt data optional, |
| SCCP_param_Importance_opt importance optional |
| } |
| with { variant "TAG (calledPAddress, paramName= con_SCCP_cdPA; |
| data, paramName= con_SCCP_data; |
| importance, paramName= con_SCCP_imp)" |
| } |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ConnectionRefused |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_RefusalCause refusalCause, |
| LIN1 pointer1, |
| SCCP_ConnRefused_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop )"} |
| |
| |
| //******************************************************************************** |
| // Message Released (RLSD) (Q713 $4.5) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| type set SCCP_Released_optionalPart |
| { |
| SCCP_param_Data_opt data optional, |
| SCCP_param_Importance_opt importance optional |
| } |
| with { variant "TAG (data, paramName= con_SCCP_data; |
| importance, paramName= con_SCCP_imp)" |
| } |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_Released |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef, |
| SCCP_param_ReleaseCause releaseCause, |
| LIN1 pointer1, |
| SCCP_Released_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop )" } |
| |
| |
| //******************************************************************************** |
| // Message Release Complete (RLC) (Q713 $4.6) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ReleaseComplete |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Data form 1 (DT1) (Q713 $4.7) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_DataForm1 |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SegmentingReassembl segmentingReassembl, |
| LIN1 pointer1, //always 1! |
| SCCP_param_Data data |
| } |
| with { variant (pointer1) "POINTERTO(data)"; } |
| |
| |
| //******************************************************************************** |
| // Message Data form 2 (DT2) (Q713 $4.8) |
| //******************************************************************************** |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_DataForm2 |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SequencingSegmenting sequencingSegmenting, |
| LIN1 pointer1, //always 1! |
| SCCP_param_Data data |
| } |
| with { variant (pointer1) "POINTERTO(data)"; } |
| |
| |
| //******************************************************************************** |
| // Message Data Acknowledgement (AK) (Q713 $4.9) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_DataAcknowledgement |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_RecSeqNumber recSeqNumber, |
| SCCP_param_Credit credit |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Unitdata (UDT) (Q713 $4.10) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_Unitdata |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ProtocolClass protClass, |
| LIN1 pointer1, //will be 3 |
| LIN1 pointer2, |
| LIN1 pointer3, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_Data data |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(data)" |
| } |
| |
| |
| //******************************************************************************** |
| // Message Unitdata service (UDTS) (Q713 $4.11) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_UnitdataService |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ReturnCause returnCause, |
| LIN1 pointer1, //will be 3 |
| LIN1 pointer2, |
| LIN1 pointer3, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_Data data |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(data)" |
| } |
| |
| |
| //******************************************************************************** |
| // Message Expedited Data (ED) (Q713 $4.12) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ExpeditedData |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| LIN1 pointer1, //always 1! |
| SCCP_param_Data data |
| } |
| with { variant (pointer1) "POINTERTO(data)" } |
| |
| |
| //******************************************************************************** |
| // Message Expedited Data Acknowledgement (EA) (Q713 $4.13) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ExpeditedDataAck |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Reset Request (RSR) (Q713 $4.14) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ResetRequest |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef, |
| SCCP_param_ResetCause resetCause |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Reset Confirmation (RSC) (Q713 $4.15) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ResetConfirm |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Protocol data unit error (ERR) (Q713 $4.16) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ProtDataUnitError |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_ErrorCause errorCause |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Inactivity test (IT) (Q713 $4.17) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_InactivityTest |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_DestLocalReference destLocRef, |
| SCCP_param_SourceLocalReference sourceLocRef, |
| SCCP_param_ProtocolClass protClass, |
| SCCP_param_SequencingSegmenting sequencingSegmenting, |
| SCCP_param_Credit credit |
| } |
| with { variant "" } |
| |
| |
| //******************************************************************************** |
| // Message Extended Unitdata (XUDT) (Q713 $4.18) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| type record SCCP_ExtUnitdata_optionalPart |
| { |
| SCCP_param_Segmentation_opt segmentation optional, |
| SCCP_param_Importance_opt importance optional |
| } |
| with { variant "TAG (segmentation, paramName= con_SCCP_segm; |
| importance, paramName= con_SCCP_imp)" |
| } |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ExtUnitdata |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ProtocolClass protClass, |
| SCCP_param_HopCounter hopCounter, |
| LIN1 pointer1, //will be 4 |
| LIN1 pointer2, |
| LIN1 pointer3, |
| LIN1 pointer4, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_Data data, |
| SCCP_ExtUnitdata_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(data)"; |
| variant (pointer4) "POINTERTO(optionalPart)"; |
| variant "TAG (eop, paramName=con_SCCP_eop )" |
| } |
| |
| |
| //******************************************************************************** |
| // Message Extended Unitdata Service(XUDTS) (Q713 $4.19) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| // The same as SCCP_ExtUnitdata_optionalPart |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_ExtUnitdataService |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ReturnCause returnCause, |
| SCCP_param_HopCounter hopCounter, |
| LIN1 pointer1, //will be 4 |
| LIN1 pointer2, |
| LIN1 pointer3, |
| LIN1 pointer4, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_Data data, |
| SCCP_ExtUnitdata_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(data)"; |
| variant (pointer4) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop )" |
| } |
| |
| |
| //******************************************************************************** |
| // Message Long Unitdata (LUDT) (Q713 $4.20) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| // The same as SCCP_ExtUnitdata_optionalPart |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_LongUnitdata |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ProtocolClass protClass, |
| SCCP_param_HopCounter hopCounter, |
| LIN2 pointer1, |
| LIN2 pointer2, |
| LIN2 pointer3, |
| LIN2 pointer4, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_LongData longData, |
| SCCP_ExtUnitdata_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(longData)"; |
| variant (pointer4) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop) " |
| } |
| |
| |
| //******************************************************************************** |
| // Message Long Unitdata Service (LUDTS) (Q713 $4.21) |
| //******************************************************************************** |
| //--------------------------------------------------------------------------- |
| // Optional part |
| // The same as SCCP_ExtUnitdata_optionalPart |
| |
| //--------------------------------------------------------------------------- |
| // Message definition |
| //--------------------------------------------------------------------------- |
| type record PDU_SCCP_LongUnitdataService |
| { |
| SCCP_param_MessageType messageType, |
| SCCP_param_ReturnCause returnCause, |
| SCCP_param_HopCounter hopCounter, |
| LIN2 pointer1, //will be 5 |
| LIN2 pointer2, |
| LIN2 pointer3, |
| LIN2 pointer4, |
| SCCP_param_CPartyAddressEnc calledPAddress, |
| SCCP_param_CPartyAddressEnc callingPAddress, |
| SCCP_param_LongData longData, |
| SCCP_ExtUnitdata_optionalPart optionalPart optional, |
| SCCP_param_EndOfOptionalParams eop optional |
| } |
| with { variant (pointer1) "POINTERTO(calledPAddress)"; |
| variant (pointer2) "POINTERTO(callingPAddress)"; |
| variant (pointer3) "POINTERTO(longData)"; |
| variant (pointer4) "POINTERTO(optionalPart)"; |
| variant "TAG (eop,paramName=con_SCCP_eop) " |
| } |
| |
| |
| //******************************************************************************** |
| // SCCP management messages (Q713 $5.3) |
| //******************************************************************************** |
| /*type record PDU_SCMG_message |
| { |
| SCMG_param_FormatId messageType, |
| SCMG_param_AffectedSSN affectedSSN, |
| SCMG_param_AffectedPointCode affectedPC, |
| SCMG_param_MultiplIndicator smi, |
| SCMG_param_CongestionLevel congLevel optional |
| //shall be present in all messages except SSG |
| } |
| with { variant "" } |
| */ |
| |
| //******************************************************************************** |
| // SCCP Top Level PDU (Q713 $4.2) |
| //******************************************************************************** |
| |
| type union PDU_SCCP |
| { |
| PDU_SCCP_ConnectionRequest connrequest, |
| PDU_SCCP_ConnectionRefused connrefused, |
| PDU_SCCP_Released released, |
| PDU_SCCP_ReleaseComplete relcomp, |
| PDU_SCCP_DataForm1 dataform1, |
| PDU_SCCP_DataForm2 dataform2, |
| PDU_SCCP_DataAcknowledgement dataack, |
| PDU_SCCP_UnitdataService udataserv, |
| PDU_SCCP_ExpeditedData expdata, |
| PDU_SCCP_ExpeditedDataAck expdataack , |
| PDU_SCCP_ResetRequest resetreq, |
| PDU_SCCP_ResetConfirm resconf, |
| PDU_SCCP_ProtDataUnitError pduerror, |
| PDU_SCCP_InactivityTest inacttest, |
| PDU_SCCP_ExtUnitdata extudata, |
| PDU_SCCP_ExtUnitdataService extudataserv , |
| PDU_SCCP_LongUnitdata longudata, |
| PDU_SCCP_LongUnitdataService longudataserv, |
| PDU_SCCP_Unitdata unitdata, |
| PDU_SCCP_ConnectionConfirm connconfirm |
| // PDU_SCMG_message scmg |
| } |
| with { variant "TAG (connrequest, messageType = cr; |
| connconfirm, messageType = cc; |
| connrefused, messageType = cref; |
| released, messageType = rlsd; |
| relcomp, messageType = rlc; |
| dataform1, messageType = dt1; |
| dataform2, messageType = dt2; |
| dataack, messageType = ak; |
| unitdata, messageType = udt; |
| udataserv, messageType = udts; |
| expdata, messageType = ed; |
| expdataack, messageType = ea; |
| resetreq, messageType = rsr; |
| resconf, messageType = rsc; |
| pduerror, messageType = err; |
| inacttest, messageType = it; |
| extudata, messageType = xudt; |
| extudataserv, messageType = xudts; |
| longudata, messageType = ludt; |
| longudataserv, messageType = ludts)" |
| } |
| |
| }//endgroup PDUDefinitions |
| |
| }//endgroup Types |
| |
| |
| |
| group OtherTypedefinitions |
| {//startgroup OtherTypedefinitions |
| |
| // enum replaced with this solution: |
| type integer states; |
| const states |
| idle:=0, |
| connection_pending_OG:=1, |
| connection_pending_IC:=2, |
| active:=3, // ==data transfer, see 6.1.1.2.1/Q.711. |
| disconnect_pending:=4, // == |
| //reset_OG,- as N_RESET_req and N_RESET_resp will not be received, this state should never occur |
| reset_bothway:=5, |
| reset_IC:=5, |
| //frozen_reference, |
| wait_conn_confirm:=6; |
| |
| type record sccp_buffer |
| { |
| octetstring buffer, |
| integer actlen, |
| integer maxlen |
| } |
| |
| // === Connection Oriented Data: === |
| |
| // record holding all data of a connection |
| type record ConnectionData |
| { |
| OCT3 localReference, //segmLocReference????, |
| OCT3 remoteReference, //segmRemoteRef????, |
| states state, |
| integer connectionId, |
| //integer max_len, //maximal length of input buffer |
| sccp_buffer reassembler_buffer // data collected here before sending up to the User |
| } |
| |
| // === Connectionless Data: ======================= |
| // == sending:== |
| // Segmentation Local Reference |
| type integer segmLocRef_states; |
| const segmLocRef_states segmLocRef_idle :=0, segmLocRef_busy:=1; |
| |
| type record segmLocRef |
| { |
| OCT3 val, |
| segmLocRef_states state |
| } |
| |
| // == receiving: == |
| type record ClessRcvBuff |
| { |
| //OCT3 segmLocalRef, // not used ?? |
| OCT3 segmRemoteRef, |
| segmLocRef_states state, |
| sccp_buffer reassembler_buffer |
| } |
| |
| type charstring SCCP_ServiceType; |
| |
| const charstring mtp3_itu := "mtp3_itu"; // SCCP_itu |
| const charstring mtp3_ansi := "mtp3_ansi"; //SCCP_ansi |
| const charstring mtp3_ttc := "mtp3_ttc"; //SCCP_ttc |
| const charstring mtp3b_itu := "mtp3b_itu"; |
| const charstring mtp3b_ansi:= "mtp3b_ansi"; |
| const charstring mtp3b_ttc := "mtp3b_ttc"; |
| const charstring m3ua := "m3ua"; |
| const charstring mtp3_mpt := "mtp3_mpt"; |
| |
| type record MSC_SCCP_MTP3_parameters |
| { |
| MTP3_Field_sio sio, |
| integer opc, |
| integer dpc, |
| integer sls, |
| SCCP_ServiceType sccp_serviceType, |
| integer ssn optional //This should be set if you want only one |
| } //active subsystem on the link. |
| |
| }//endgroup OtherTypedefinitions |
| |
| group MessageTypes |
| { |
| // ************************************************************************* |
| // * ASP_sccp type definitions * |
| // ************************************************************************* |
| |
| |
| // type record ASP_MTP3_TRANSFERind_sccp |
| // { |
| // octetstring sio length(1), // see values in Q.704 $14.2.1 |
| // integer opc, |
| // integer dpc, |
| // integer sls, |
| // PDU_SCCP data |
| // } |
| |
| |
| type record ASP_MTP3_TRANSFERreq_sccp |
| { |
| octetstring sio length(1), // see values in Q.704 $14.2.1 |
| integer opc, |
| integer dpc, |
| integer sls, |
| PDU_SCCP data |
| } |
| |
| }//end group Messagetypes |
| |
| group ASPTemplates |
| { |
| |
| // ************************************************************************* |
| // * ASP template definitions sending |
| // ************************************************************************* |
| |
| // template ASP_MTP3_TRANSFERind_sccp t_ASP_MTP3_TRANSFERind_sccp |
| // ( |
| // |
| // octetstring pl_sio, |
| // integer pl_opc, |
| // integer pl_dpc, |
| // integer pl_sls, |
| // template PDU_SCCP pl_data) := |
| // { |
| // sio := pl_sio, |
| // opc := pl_opc, |
| // dpc := pl_dpc, |
| // sls := pl_sls, |
| // data := pl_data |
| // } |
| |
| |
| template ASP_MTP3_TRANSFERreq_sccp t_ASP_MTP3_TRANSFERreq_sccp |
| ( |
| |
| octetstring pl_sio, |
| integer pl_opc, |
| integer pl_dpc, |
| integer pl_sls, |
| template PDU_SCCP pl_data |
| ) := |
| { |
| sio := pl_sio, |
| opc := pl_opc, |
| dpc := pl_dpc, |
| sls := pl_sls, |
| data := pl_data |
| } |
| |
| |
| // ************************************************************************* |
| // * ASP template definitions receiving * |
| // ************************************************************************* |
| |
| |
| //template ASP_MTP3_TRANSFERind_sccp tr_ASP_MTP3_TRANSFERind_sccp |
| // ( |
| // |
| // PDU_SCCP pl_data) := |
| // { |
| // sio := ?, |
| // opc := ?, |
| // dpc := ?, |
| // sls := ?, |
| // data := pl_data |
| // } |
| |
| |
| template ASP_MTP3_TRANSFERreq_sccp tr_ASP_MTP3_TRANSFERreq_sccp |
| // ( |
| |
| // PDU_SCCP pl_data) |
| := |
| { |
| sio := ?, |
| opc := ?, |
| dpc := ?, |
| sls := ?, |
| data := ? //pl_data |
| } |
| |
| |
| |
| |
| |
| |
| }//endgroup ASPTemplates |
| |
| |
| } with { encode "RAW" } // end module |