osmo-ttcn3-hacks/SCCP_CNL113341/src/SCCP_Types.ttcn

1554 lines
62 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// //
// 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