forked from ttcn3/osmo-ttcn3-hacks
1554 lines
62 KiB
Plaintext
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
|