diff --git a/M3UA_CNL113536/M3UA_CNL113536.tpd b/M3UA_CNL113536/M3UA_CNL113536.tpd deleted file mode 100644 index c67290231..000000000 --- a/M3UA_CNL113536/M3UA_CNL113536.tpd +++ /dev/null @@ -1,44 +0,0 @@ - - - - M3UA_CNL113536 - - - - - - - - - - Default - - - - - true - true - true - bin/M3UA_CNL113536 - - - bin - - - - - diff --git a/M3UA_CNL113536/doc/documentation_note.txt b/M3UA_CNL113536/doc/documentation_note.txt deleted file mode 100644 index eb68bfba8..000000000 --- a/M3UA_CNL113536/doc/documentation_note.txt +++ /dev/null @@ -1,13 +0,0 @@ -Please note that the storage of the documentation of the product has been -moved to the eridoc.ericsson.se from the ClearCase. - -You can access the documentation of the product via the following links: - -The documentation belongs to the R2A revision of the product -can be found here: -http://document.internal.ericsson.com/Download?DocNo=1095-CNL113536&Rev=C&Lang=EN&PRev=Y - -The documentation belongs to the latest revision of the product -can be found here: -http://document.internal.ericsson.com/Download?DocNo=1095-CNL113536&Rev=HIGHEST&Lang=EN&Status=FREE&PRev=Y - diff --git a/M3UA_CNL113536/src/M3UA_Types.ttcn b/M3UA_CNL113536/src/M3UA_Types.ttcn deleted file mode 100644 index d79d8327a..000000000 --- a/M3UA_CNL113536/src/M3UA_Types.ttcn +++ /dev/null @@ -1,805 +0,0 @@ -/****************************************************************************** -* Copyright (c) 2004, 2015 Ericsson AB -* All rights reserved. This program and the accompanying materials -* are made available under the terms of the Eclipse Public License v1.0 -* which accompanies this distribution, and is available at -* http://www.eclipse.org/legal/epl-v10.html -* -* Contributors: -* Ferenc Kovacs -* Gabor Bettesch -* Gabor Szalai -******************************************************************************/ -// -// File: M3UA_Types.ttcn -// Rev: R2A -// Prodnr: CNL 113 536 -// Reference: - -module M3UA_Types { - -import from General_Types all; - -external function enc_PDU_M3UA(in PDU_M3UA pdu) return octetstring -with { extension "prototype(convert)" - extension "encode(RAW)" - } - -external function dec_PDU_M3UA(in octetstring stream) return PDU_M3UA -with { extension "prototype(convert)" - extension "decode(RAW)" - } - -//++++++++++++++++++++++++++++++++++++++++++++++++++ -// M3UA PARAMETERS -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type octetstring M3UA_OCT0_255 length (0..255); - -type record M3UA_Point_Code -{ - OCT1 mask, - OCT3 affected_Point_Code -} - -type record of M3UA_Point_Code M3UA_Point_Codes; - -type record M3UA_Error_Code -{ - OCT2 tag, - integer lengthInd, - OCT4 errorCode -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,errorCode)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Routing_Context -{ - OCT2 tag, - integer lengthInd, - octetstring routingContext -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,routingContext)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - variant "PADDING(dword32)"; - } - -type record M3UA_Affected_Point_Codes -{ - OCT2 tag, - integer lengthInd, - M3UA_Point_Codes pointCodes -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,pointCodes)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Network_Appearance -{ - OCT2 tag, - integer lengthInd, - OCT4 networkAppearance -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,networkAppearance)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Diagnostic_information -{ - OCT2 tag, - integer lengthInd, - octetstring diagnosticInformation -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,diagnosticInformation)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - variant "PADDING(dword32)"; - } - -type record M3UA_Correlation_ID -{ - OCT2 tag, - integer lengthInd, - OCT4 correlationID -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,correlationID)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Protocol_Data -{ - OCT2 tag, - integer lengthInd, - OCT4 oPC, - OCT4 dPC, - OCT1 sI, - OCT1 nI, - OCT1 mP, - OCT1 sLS, - octetstring userProtocolData -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,oPC,dPC,sI,nI,mP,sLS, - userProtocolData)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - variant "PADDING(dword32)"; - } - -type record M3UA_Info_String -{ - OCT2 tag, - integer lengthInd, - M3UA_OCT0_255 infoString -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,infoString)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - variant "PADDING(dword32)"; - } - -type record M3UA_Concerned_Destination -{ - OCT2 tag, - integer lengthInd, - OCT1 reserved, - OCT3 concernedDestination -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,reserved, - concernedDestination)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Congestion_Indicators -{ - OCT2 tag, - integer lengthInd, - OCT1 reserved, - OCT3 congestionLevel -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,reserved,congestionLevel)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_User_Cause -{ - OCT2 tag, - integer lengthInd, - OCT2 cause, - OCT2 user -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,cause,user)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_ASP_Identifier -{ - OCT2 tag, - integer lengthInd, - OCT4 aSPIdentifier -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,aSPIdentifier)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - -type record M3UA_Heartbeat_Data -{ - OCT2 tag, - integer lengthInd, - octetstring heartbeat_Data -} with { variant (lengthInd) "LENGTHTO(tag,lengthInd,heartbeat_Data)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - variant "PADDING(dword32)"; - } - -type record M3UA_Traffic_Mode_Type -{ - OCT2 tag, - integer lengthInd, - OCT4 trafficModeType -} with { variant (lengthInd) "LENGTHTO (tag,lengthInd,trafficModeType)"; - variant (lengthInd) "FIELDLENGTH(16)"; - variant (lengthInd) "BYTEORDER(last)"; - } - - -//++++++++++++++++++++++++++++++++++++++++++++++++++ -//PDUs -//++++++++++++++++++++++++++++++++++++++++++++++++++ - -// M3UA_ERR PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ERR -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ERR_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ERR_MessageParameters -{ - M3UA_Error_Code error_Code, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes optional, - M3UA_Network_Appearance network_Appearance optional, - M3UA_Diagnostic_information diagnostic_information optional -} with { variant "TAG(error_Code, tag = '000C'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - network_Appearance, tag = '0200'O; - diagnostic_information, tag = '0007'O; )" - } - - -// M3UA_NOTIFY -// NOTE1 : NOTIFY should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_NOTIFY -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// M3UA_DATA PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DATA -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_DATA_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_DATA_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Protocol_Data protocol_Data, - M3UA_Correlation_ID correlation_ID optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - protocol_Data, tag = '0210'O; - correlation_ID, tag = '0013'O; )" - } - - -// M3UA_DUNA PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DUNA -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_DUNA_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_DUNA_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes, - M3UA_Info_String info_String optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - info_String, tag = '0004'O )" - } - - -// M3UA_DAVA PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DAVA -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_DAVA_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_DAVA_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes, - M3UA_Info_String info_String optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - info_String, tag = '0004'O )" - } - - -// M3UA_DAUD PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DAUD -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_DAUD_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_DAUD_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes, - M3UA_Info_String info_String optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - info_String, tag = '0004'O )" - } - - -// M3UA_SCON PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_SCON -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_SCON_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_SCON_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes, - M3UA_Concerned_Destination concerned_Destination optional, - M3UA_Congestion_Indicators congestion_Indicators optional, - M3UA_Info_String info_String optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - concerned_Destination, tag = '0206'O; - congestion_Indicators, tag = '0205'O; - info_String, tag = '0004'O )" - } - - -// M3UA_DUPU PDU -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DUPU -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_DUPU_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_DUPU_MessageParameters -{ - M3UA_Network_Appearance network_Appearance optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Affected_Point_Codes affected_Point_Codes, - M3UA_User_Cause user_Cause, - M3UA_Info_String info_String optional -} with { variant "TAG(network_Appearance, tag = '0200'O; - routing_Context, tag = '0006'O; - affected_Point_Codes, tag = '0012'O; - user_Cause, tag = '0204'O; - info_String, tag = '0004'O )" - } - - -// M3UA_DRST PDU -// NOTE1 : DRST should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DRST -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// M3UA_ASPUP -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPUP -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPUP_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPUP_MessageParameters -{ - M3UA_ASP_Identifier aSP_Identifier optional, - M3UA_Info_String info_String optional -} with { variant "TAG(aSP_Identifier, tag = '0011'O; - info_String, tag = '0004'O; )" - } - - -//M3UA_ASPUP_Ack -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPUP_Ack -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPUP_Ack_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPUP_Ack_MessageParameters -{ - M3UA_Info_String info_String optional -} with { variant "TAG(info_String, tag = '0004'O; )" - } - - -//M3UA_ASPDN -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPDN -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPDN_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPDN_MessageParameters -{ - M3UA_Info_String info_String optional -} with { variant "TAG(info_String, tag = '0004'O; )" - } - - -//M3UA_ASPDN_Ack -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPDN_Ack -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPDN_Ack_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPDN_Ack_MessageParameters -{ - M3UA_Info_String info_String optional -} with { variant "TAG(info_String, tag = '0004'O;)" - } - - -// M3UA_BEAT -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_BEAT -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_BEAT_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_BEAT_MessageParameters -{ - M3UA_Heartbeat_Data heartbeat_Data optional -} with { variant "TAG(heartbeat_Data, tag = '0009'O; )" - } - - -// M3UA_BEAT_Ack -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_BEAT_Ack -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_BEAT_Ack_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_BEAT_Ack_MessageParameters -{ - M3UA_Heartbeat_Data heartbeat_Data optional -} with { variant "TAG(heartbeat_Data, tag = '0009'O; )" - } - - -// M3UA_ASPAC -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPAC -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPAC_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPAC_MessageParameters -{ - M3UA_Traffic_Mode_Type traffic_Mode_Type optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Info_String info_String optional -} with { variant "TAG(traffic_Mode_Type, tag = '000B'O; - routing_Context, tag = '0006'O; - info_String, tag = '0004'O; )" - } - - -// M3UA_ASPAC_Ack -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPAC_Ack -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPAC_Ack_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPAC_Ack_MessageParameters -{ - M3UA_Traffic_Mode_Type traffic_Mode_Type optional, - M3UA_Routing_Context routing_Context optional, - M3UA_Info_String info_String optional -} with { variant "TAG(traffic_Mode_Type, tag = '000B'O; - routing_Context, tag = '0006'O; - info_String, tag = '0004'O; )" - } - - -// M3UA_ASPIA -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPIA -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPIA_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPIA_MessageParameters -{ - M3UA_Routing_Context routing_Context optional, - M3UA_Info_String info_String optional -} with { variant "TAG(routing_Context, tag = '0006'O; - info_String, tag = '0004'O; )" - } - - -// M3UA_ASPIA_Ack -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_ASPIA_Ack -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - M3UA_ASPIA_Ack_MessageParameters messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - -type set M3UA_ASPIA_Ack_MessageParameters -{ - M3UA_Routing_Context routing_Context optional, - M3UA_Info_String info_String optional -} with { variant "TAG(routing_Context, tag = '0006'O; - info_String, tag = '0004'O; )" - } - - -// M3UA_REG_REQ -// NOTE1 : REG REQ should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_REG_REQ -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// M3UA_REG_RSP -// NOTE1 : REG RSP should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_REG_RSP -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// M3UA_DEREG_REQ -// NOTE1 : DEREG REQ should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DEREG_REQ -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// M3UA_DEREG_RSP -// NOTE1 : DEREG RSP should not come and will be dropped if it comes -// NOTE2 : messageParameters is simpified implementation as octetstring -//++++++++++++++++++++++++++++++++++++++++++++++++++ -type record M3UA_DEREG_RSP -{ - OCT1 version, - OCT1 reserved, - OCT2 messageClassAndType, - integer messageLength, - octetstring messageParameters -} with { variant (messageLength) "LENGTHTO(version,reserved,messageClassAndType, - messageLength,messageParameters)"; - variant (messageLength) "FIELDLENGTH(32)"; - variant (messageLength) "BYTEORDER(last)"; - } - - -// Top level PDU -//************************************************************************ -type union PDU_M3UA -{ - M3UA_ERR m3UA_ERR, // Error - M3UA_NOTIFY m3UA_NOTIFY, // Notify - should not come - M3UA_DATA m3UA_DATA, // Payload data - M3UA_DUNA m3UA_DUNA, // Destination Unavailable - M3UA_DAVA m3UA_DAVA, // Destination Available - M3UA_DAUD m3UA_DAUD, // Destination State Audit - M3UA_SCON m3UA_SCON, // Signaling Congestion - M3UA_DUPU m3UA_DUPU, // Destination User Part Unavailable - M3UA_DRST m3UA_DRST, // DRST - should not come - M3UA_ASPUP m3UA_ASPUP, // ASP up - M3UA_ASPDN m3UA_ASPDN, // ASP down - M3UA_BEAT m3UA_BEAT, // Heartbeat - M3UA_BEAT_Ack m3UA_BEAT_Ack, // Heartbeat Ack - M3UA_ASPUP_Ack m3UA_ASPUP_Ack, // ASP up ack - M3UA_ASPDN_Ack m3UA_ASPDN_Ack, // ASP down ack - M3UA_ASPAC m3UA_ASPAC, // ASP Active - M3UA_ASPIA m3UA_ASPIA, // ASP Inactive - M3UA_ASPAC_Ack m3UA_ASPAC_Ack, // ASP Active Ack - M3UA_ASPIA_Ack m3UA_ASPIA_Ack, // ASP Inactive - M3UA_REG_REQ m3UA_REG_REQ, // REG REQ - should not come - M3UA_REG_RSP m3UA_REG_RSP, // REG RSP - should not come - M3UA_DEREG_REQ m3UA_DEREG_REQ, // DEREG REQ - should not come - M3UA_DEREG_RSP m3UA_DEREG_RSP // DEREG RSP - should not come -} with { variant "TAG( - m3UA_ERR, messageClassAndType = '0000'O; //MGMT Class (0), - m3UA_NOTIFY, messageClassAndType = '0001'O; //MGMT Class (0), - m3UA_DATA, messageClassAndType = '0101'O; //Transf msg Class(1), - m3UA_DUNA, messageClassAndType = '0201'O; //SSNM Class(2), - m3UA_DAVA, messageClassAndType = '0202'O; //SSNM Class(2), - m3UA_DAUD, messageClassAndType = '0203'O; //SSNM Class(2), - m3UA_SCON, messageClassAndType = '0204'O; //SSNM Class(2), - m3UA_DUPU, messageClassAndType = '0205'O; //SSNM Class(2), - m3UA_DRST, messageClassAndType = '0206'O; //SSNM Class(2), - m3UA_ASPUP, messageClassAndType = '0301'O; //ASPSM Class(3), - m3UA_ASPDN, messageClassAndType = '0302'O; //ASPSM Class(3), - m3UA_BEAT, messageClassAndType = '0303'O; //ASPSM Class(3), - m3UA_ASPUP_Ack, messageClassAndType = '0304'O; //ASPSM Class(3), - m3UA_ASPDN_Ack, messageClassAndType = '0305'O; //ASPSM Class(3), - m3UA_BEAT_Ack, messageClassAndType = '0306'O; //ASPSM Class(3), - m3UA_ASPAC, messageClassAndType = '0401'O; //ASPTM Class(4), - m3UA_ASPIA, messageClassAndType = '0402'O; //ASPTM Class(4), - m3UA_ASPAC_Ack, messageClassAndType = '0403'O; //ASPTM Class(4), - m3UA_ASPIA_Ack, messageClassAndType = '0404'O; //ASPTM Class(4), - m3UA_REG_REQ, messageClassAndType = '0901'O; //RKM Class(9), - m3UA_REG_RSP, messageClassAndType = '0902'O; //RKM Class(9), - m3UA_DEREG_REQ, messageClassAndType = '0903'O; //RKM Class(9), - m3UA_DEREG_RSP, messageClassAndType = '0904'O; )" //RKM Class(9), - } -} with { encode "RAW"} diff --git a/M3UA_CNL113537/demo/Abstract_Socket.cc b/M3UA_CNL113537/demo/Abstract_Socket.cc deleted file mode 120000 index 6d1b3f35b..000000000 --- a/M3UA_CNL113537/demo/Abstract_Socket.cc +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.cc \ No newline at end of file diff --git a/M3UA_CNL113537/demo/Abstract_Socket.hh b/M3UA_CNL113537/demo/Abstract_Socket.hh deleted file mode 120000 index ecb6c0369..000000000 --- a/M3UA_CNL113537/demo/Abstract_Socket.hh +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.hh \ No newline at end of file diff --git a/M3UA_CNL113537/demo/BICC_EncDec.cc b/M3UA_CNL113537/demo/BICC_EncDec.cc deleted file mode 120000 index f3f7144d2..000000000 --- a/M3UA_CNL113537/demo/BICC_EncDec.cc +++ /dev/null @@ -1 +0,0 @@ -../../../ProtocolModules/BICC_Q.1902.1_CNL113359/src/BICC_EncDec.cc \ No newline at end of file diff --git a/M3UA_CNL113537/demo/BICC_Types.ttcn b/M3UA_CNL113537/demo/BICC_Types.ttcn deleted file mode 120000 index de200f7a4..000000000 --- a/M3UA_CNL113537/demo/BICC_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../ProtocolModules/BICC_Q.1902.1_CNL113359/src/BICC_Types.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/General_Types.ttcn b/M3UA_CNL113537/demo/General_Types.ttcn deleted file mode 120000 index 354ebf3fc..000000000 --- a/M3UA_CNL113537/demo/General_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../ProtocolModules/COMMON/src/General_Types.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/M3UA_Emulation.ttcn b/M3UA_CNL113537/demo/M3UA_Emulation.ttcn deleted file mode 120000 index bf12ab9e9..000000000 --- a/M3UA_CNL113537/demo/M3UA_Emulation.ttcn +++ /dev/null @@ -1 +0,0 @@ -../src/M3UA_Emulation.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn b/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn deleted file mode 100644 index 4c1e86af6..000000000 --- a/M3UA_CNL113537/demo/M3UA_Emulation_Test.ttcn +++ /dev/null @@ -1,152 +0,0 @@ -module M3UA_Emulation_Test -{ - -//import from MTP3asp_PortType all; -import from MTP3asp_Types all; -import from BICC_Types all; -import from M3UA_Emulation all; -import from SCTPasp_PortType all; - -modulepar -{ - SCTP_Association_Address tsp_address := { 0, "", 0, "" }; - // float tsp_serverWait := 5.0; - // boolean tsp_serverTest := false; -} - -type port MTP3asp_PT_Int message -{ - out ASP_MTP3_TRANSFERreq; - in ASP_MTP3_TRANSFERind; -} with {extension "internal"} - -type component BICC_CT -{ - port MTP3asp_PT_Int BICC_MTP3_PORT; -} - -type component MTC_CT -{ - var BICC_CT vlc_BICC_COMPONENT_1; - var M3UA_CT vlc_M3UA_COMPONENT_1; - port SCTPasp_PT SCTP_PORT; - -// var BICC_CT vlc_BICC_COMPONENT_2; -// port MTP3asp_PT M3UA_PORT; -} - -function f_testconfig_bicc(SCTP_Association_Address pl_address) runs on MTC_CT -{ - vlc_BICC_COMPONENT_1 := BICC_CT.create; - vlc_M3UA_COMPONENT_1 := M3UA_CT.create; - connect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT, - vlc_M3UA_COMPONENT_1:MTP3_SP_PORT); - map(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT); - vlc_M3UA_COMPONENT_1.start(f_M3UA_Emulation(pl_address)); -} - -function f_testconfig_end_demo_bicc() runs on MTC_CT -{ - unmap(system:SCTP_PORT, vlc_M3UA_COMPONENT_1:SCTP_PORT); - disconnect(vlc_BICC_COMPONENT_1:BICC_MTP3_PORT, vlc_M3UA_COMPONENT_1:MTP3_SP_PORT); - vlc_M3UA_COMPONENT_1.stop; -} - -template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_BICC := -{ sio := { - ni := '10'B, - prio := ?, - si := '1101'B - }, - opc := ?, - dpc := ?, - sls := ?, - data := ? -} - -function f_init_BICC_bicc() runs on BICC_CT -{ - var PDU_BICC vl_PDU_BICC; - var ASP_MTP3_TRANSFERind vl_ASP_MTP3_TRANSFERind; - var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq; - - vl_PDU_BICC := { - BICC_GRA := { - CIC := '00000000'O, - MType := '00010111'B, - var_part_ptr := 1, - RngSts := - { range := '1F'O, - status := ''O - } - } - } - - vl_ASP_MTP3_TRANSFERreq := { - sio := { - ni := '10'B, - prio := '00'B, - si := '1101'B - }, - opc := 115, - dpc := 300, - sls := 0, - data := enc_PDU_BICC(vl_PDU_BICC) - } - - timer T_Timer := 5.0; - T_Timer.start; - alt { - [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC) - -> value vl_ASP_MTP3_TRANSFERind { - log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); - vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data); - log("received BICC message: ", vl_PDU_BICC); - setverdict(pass); - BICC_MTP3_PORT.send(vl_ASP_MTP3_TRANSFERreq); - T_Timer.stop; - } - [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?) - -> value vl_ASP_MTP3_TRANSFERind { - log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); - repeat; - } - [] BICC_MTP3_PORT.receive { - setverdict(fail); - } - [] T_Timer.timeout { - setverdict(fail); - } - } - - T_Timer.start; - alt { - [] BICC_MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind_BICC) - -> value vl_ASP_MTP3_TRANSFERind { - log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); - vl_PDU_BICC := dec_PDU_BICC(vl_ASP_MTP3_TRANSFERind.data); - log("received BICC message: ", vl_PDU_BICC); - repeat; - } - [] BICC_MTP3_PORT.receive(ASP_MTP3_TRANSFERind : ?) - -> value vl_ASP_MTP3_TRANSFERind { - log("BICC_MTP3_PORT: received message: ", vl_ASP_MTP3_TRANSFERind); - repeat; - } - [] BICC_MTP3_PORT.receive { - } - [] T_Timer.timeout { - } - } - -} - -testcase tc_M3UA_demo_bicc() runs on MTC_CT -{ - f_testconfig_bicc(tsp_address); - vlc_BICC_COMPONENT_1.start(f_init_BICC_bicc()); - vlc_BICC_COMPONENT_1.done; - f_testconfig_end_demo_bicc(); -} - -} diff --git a/M3UA_CNL113537/demo/M3UA_Types.ttcn b/M3UA_CNL113537/demo/M3UA_Types.ttcn deleted file mode 120000 index ca43cb342..000000000 --- a/M3UA_CNL113537/demo/M3UA_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../ProtocolModules/M3UA_CNL113536/src/M3UA_Types.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/MTP3asp_EncDec.cc b/M3UA_CNL113537/demo/MTP3asp_EncDec.cc deleted file mode 120000 index 88f108395..000000000 --- a/M3UA_CNL113537/demo/MTP3asp_EncDec.cc +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_EncDec.cc \ No newline at end of file diff --git a/M3UA_CNL113537/demo/MTP3asp_Types.ttcn b/M3UA_CNL113537/demo/MTP3asp_Types.ttcn deleted file mode 120000 index 9f03c54ed..000000000 --- a/M3UA_CNL113537/demo/MTP3asp_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/Makefile b/M3UA_CNL113537/demo/Makefile deleted file mode 100644 index ffc0aeb09..000000000 --- a/M3UA_CNL113537/demo/Makefile +++ /dev/null @@ -1,920 +0,0 @@ -# This Makefile was generated by the Makefile Generator -# of the TTCN-3 Test Executor version 1.7.pre1 build 7 -# for Gabor Bettesch (ethgbh@mwux018) on Tue May 29 11:06:47 2007 - -# Copyright 2000-2007 Test Competence Center, Ericsson R & D, Hungary -# For trouble reporting use the tool MTTSMS. -# For TR writers guide please visit the web page: http://ttcn.ericsson.se - -# The following make commands are available: -# - make, make all Builds the executable test suite. -# - make archive Archives all source files. -# - make check Checks the semantics of TTCN-3 and ASN.1 modules. -# - make clean Removes all generated files. -# - make compile Translates TTCN-3 and ASN.1 modules to C++. -# - make dep Creates/updates dependency list. -# - make objects Builds the object files without linking the executable. -# - make tags Creates/updates tags file using ctags. - -# WARNING! This Makefile can be used with GNU make only. -# Other versions of make may report syntax errors in it. - -# -# Do NOT touch this line... -# -.PHONY: all archive check clean dep objects - -# -# Set these variables... -# - -# The path of your TTCN-3 Test Executor installation: -# Uncomment this line to override the environment variable. -# TTCN3_DIR = - -# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32) -PLATFORM = LINUX - -# Your C++ compiler: -CXX = g++ - -# Flags for the C++ preprocessor (and makedepend as well): -CPPFLAGS = -D$(PLATFORM) -DTARGET_TEST -I$(TTCN3_DIR)/include -I$(SCTP_DIR)/include - -# Flags for the C++ compiler: -CXXFLAGS = -Wall - -# Flags for the linker: -LDFLAGS = - -# Flags for the TTCN-3 and ASN.1 compiler: -COMPILER_FLAGS = -L - -# Execution mode: (either ttcn3 or ttcn3-parallel) -TTCN3_LIB = ttcn3-parallel - -# The path of your OpenSSL installation: -# If you do not have your own one, leave it unchanged. -OPENSSL_DIR = $(TTCN3_DIR) - -# Directory to store the archived source files: -ARCHIVE_DIR = backup - -SCTP_DIR = /usr/local/lksctp-tools-1.0.6 -# -# You may change these variables. Add your files if necessary... -# - -# TTCN-3 modules of this project: -TTCN3_MODULES = General_Types.ttcn BICC_Types.ttcn M3UA_Emulation.ttcn M3UA_Emulation_Test.ttcn M3UA_Types.ttcn SCTPasp_PortType.ttcn SCTPasp_Types.ttcn MTP3asp_Types.ttcn -#MTP3asp_PortType.ttcn -# ASN.1 modules of this project: -ASN1_MODULES = - -# C++ source & header files generated from the TTCN-3 & ASN.1 modules of -# this project: -GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc) -GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) - -# C/C++ Source & header files of Test Ports, external functions and -# other modules: -USER_SOURCES = Abstract_Socket.cc BICC_EncDec.cc SCTPasp_PT.cc MTP3asp_EncDec.cc -USER_HEADERS = Abstract_Socket.hh SCTPasp_PT.hh -#MTP3asp_PT.hh MTP3asp_PT.cc -# Object files of this project that are needed for the executable test suite: -OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o) - -# Other files of the project (Makefile, configuration files, etc.) -# that will be added to the archived source files: -OTHER_FILES = m3ua_emu.cfg Makefile - -# The name of the executable test suite: -TARGET = M3UA_Emulation_Test - -# -# Do not modify these unless you know what you are doing... -# Platform specific additional libraries: -# -SOLARIS_LIBS = -lsocket -lnsl -SOLARIS8_LIBS = -lsocket -lnsl -LINUX_LIBS = -FREEBSD_LIBS = -WIN32_LIBS = - -# -# Rules for building the executable... -# - -all: $(TARGET) ; - -objects: $(OBJECTS) ; - -$(TARGET): $(OBJECTS) - $(CXX) $(LDFLAGS) -o $@ $^ \ - -L$(TTCN3_DIR)/lib -L$(SCTP_DIR)/lib -l$(TTCN3_LIB) \ - -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) - -.cc.o .c.o: - $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $< - -$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile - @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi - -check: $(TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) $^ - -compile: $(TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $^ - $? - touch $@ - -browserdata.dat: $(TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler -B -s $(COMPILER_FLAGS) $^ - -tags: $(TTCN3_MODULES) $(ASN1_MODULES) \ -$(USER_HEADERS) $(USER_SOURCES) - $(TTCN3_DIR)/bin/ctags_ttcn3 --line-directives=yes $^ - -clean: - -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ - $(GENERATED_SOURCES) compile \ - browserdata.dat tags *.log - -dep: $(GENERATED_SOURCES) $(USER_SOURCES) - makedepend $(CPPFLAGS) $^ - -archive: - mkdir -p $(ARCHIVE_DIR) - tar -cvhf - $(TTCN3_MODULES) $(ASN1_MODULES) \ - $(USER_HEADERS) $(USER_SOURCES) $(OTHER_FILES) \ - | gzip >$(ARCHIVE_DIR)/`basename $(TARGET) .exe`-`date '+%y%m%d-%H%M'`.tgz - -# -# Add your rules here if necessary... -# - -# DO NOT DELETE - -General_Types.o: General_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -General_Types.o: /usr/include/string.h /usr/include/features.h -General_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -General_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -General_Types.o: /usr/include/stdio.h /usr/include/bits/types.h -General_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h -General_Types.o: /usr/include/_G_config.h /usr/include/wchar.h -General_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h -General_Types.o: /usr/include/bits/stdio_lim.h -General_Types.o: /usr/include/bits/sys_errlist.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -General_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h -General_Types.o: /usr/include/time.h /usr/include/endian.h -General_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h -General_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -General_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -General_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -General_Types.o: /usr/include/sys/time.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -General_Types.o: /usr/include/regex.h -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -General_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -BICC_Types.o: BICC_Types.hh General_Types.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -BICC_Types.o: /usr/include/string.h /usr/include/features.h -BICC_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -BICC_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -BICC_Types.o: /usr/include/stdio.h /usr/include/bits/types.h -BICC_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h -BICC_Types.o: /usr/include/_G_config.h /usr/include/wchar.h -BICC_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h -BICC_Types.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h -BICC_Types.o: /usr/include/sys/types.h /usr/include/time.h -BICC_Types.o: /usr/include/endian.h /usr/include/bits/endian.h -BICC_Types.o: /usr/include/sys/select.h /usr/include/bits/select.h -BICC_Types.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -BICC_Types.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h -BICC_Types.o: /usr/include/alloca.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -BICC_Types.o: /usr/include/sys/time.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -BICC_Types.o: /usr/include/regex.h -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -BICC_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -M3UA_Emulation.o: M3UA_Emulation.hh M3UA_Types.hh General_Types.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -M3UA_Emulation.o: /usr/include/string.h /usr/include/features.h -M3UA_Emulation.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -M3UA_Emulation.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -M3UA_Emulation.o: /usr/include/stdio.h /usr/include/bits/types.h -M3UA_Emulation.o: /usr/include/bits/typesizes.h /usr/include/libio.h -M3UA_Emulation.o: /usr/include/_G_config.h /usr/include/wchar.h -M3UA_Emulation.o: /usr/include/bits/wchar.h /usr/include/gconv.h -M3UA_Emulation.o: /usr/include/bits/stdio_lim.h -M3UA_Emulation.o: /usr/include/bits/sys_errlist.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -M3UA_Emulation.o: /usr/include/stdlib.h /usr/include/sys/types.h -M3UA_Emulation.o: /usr/include/time.h /usr/include/endian.h -M3UA_Emulation.o: /usr/include/bits/endian.h /usr/include/sys/select.h -M3UA_Emulation.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -M3UA_Emulation.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -M3UA_Emulation.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -M3UA_Emulation.o: /usr/include/sys/time.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -M3UA_Emulation.o: /usr/include/regex.h -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -M3UA_Emulation.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -M3UA_Emulation.o: SCTPasp_PortType.hh SCTPasp_Types.hh SCTPasp_PT.hh -M3UA_Emulation.o: /usr/include/sys/socket.h /usr/include/sys/uio.h -M3UA_Emulation.o: /usr/include/bits/uio.h /usr/include/bits/socket.h -M3UA_Emulation.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h -M3UA_Emulation.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h -M3UA_Emulation.o: /usr/include/bits/posix2_lim.h /usr/include/bits/sockaddr.h -M3UA_Emulation.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h -M3UA_Emulation.o: /usr/include/netinet/in.h /usr/include/stdint.h -M3UA_Emulation.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h -M3UA_Emulation.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h -M3UA_Emulation.o: /usr/include/linux/types.h /usr/include/linux/posix_types.h -M3UA_Emulation.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h -M3UA_Emulation.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h -M3UA_Emulation.o: MTP3asp_Types.hh -M3UA_Emulation_Test.o: M3UA_Emulation_Test.hh BICC_Types.hh General_Types.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -M3UA_Emulation_Test.o: /usr/include/string.h /usr/include/features.h -M3UA_Emulation_Test.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -M3UA_Emulation_Test.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -M3UA_Emulation_Test.o: /usr/include/stdio.h /usr/include/bits/types.h -M3UA_Emulation_Test.o: /usr/include/bits/typesizes.h /usr/include/libio.h -M3UA_Emulation_Test.o: /usr/include/_G_config.h /usr/include/wchar.h -M3UA_Emulation_Test.o: /usr/include/bits/wchar.h /usr/include/gconv.h -M3UA_Emulation_Test.o: /usr/include/bits/stdio_lim.h -M3UA_Emulation_Test.o: /usr/include/bits/sys_errlist.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -M3UA_Emulation_Test.o: /usr/include/stdlib.h /usr/include/sys/types.h -M3UA_Emulation_Test.o: /usr/include/time.h /usr/include/endian.h -M3UA_Emulation_Test.o: /usr/include/bits/endian.h /usr/include/sys/select.h -M3UA_Emulation_Test.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -M3UA_Emulation_Test.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -M3UA_Emulation_Test.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -M3UA_Emulation_Test.o: /usr/include/sys/time.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -M3UA_Emulation_Test.o: /usr/include/regex.h -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -M3UA_Emulation_Test.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -M3UA_Emulation_Test.o: M3UA_Emulation.hh M3UA_Types.hh SCTPasp_PortType.hh -M3UA_Emulation_Test.o: SCTPasp_Types.hh SCTPasp_PT.hh -M3UA_Emulation_Test.o: /usr/include/sys/socket.h /usr/include/sys/uio.h -M3UA_Emulation_Test.o: /usr/include/bits/uio.h /usr/include/bits/socket.h -M3UA_Emulation_Test.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h -M3UA_Emulation_Test.o: /usr/include/bits/local_lim.h -M3UA_Emulation_Test.o: /usr/include/linux/limits.h -M3UA_Emulation_Test.o: /usr/include/bits/posix2_lim.h -M3UA_Emulation_Test.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h -M3UA_Emulation_Test.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h -M3UA_Emulation_Test.o: /usr/include/stdint.h /usr/include/bits/in.h -M3UA_Emulation_Test.o: /usr/include/bits/byteswap.h -M3UA_Emulation_Test.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h -M3UA_Emulation_Test.o: /usr/include/linux/types.h -M3UA_Emulation_Test.o: /usr/include/linux/posix_types.h -M3UA_Emulation_Test.o: /usr/include/linux/stddef.h -M3UA_Emulation_Test.o: /usr/include/linux/compiler.h -M3UA_Emulation_Test.o: /usr/include/asm/posix_types.h -M3UA_Emulation_Test.o: /usr/include/asm/types.h MTP3asp_Types.hh -M3UA_Types.o: M3UA_Types.hh General_Types.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -M3UA_Types.o: /usr/include/string.h /usr/include/features.h -M3UA_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -M3UA_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -M3UA_Types.o: /usr/include/stdio.h /usr/include/bits/types.h -M3UA_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h -M3UA_Types.o: /usr/include/_G_config.h /usr/include/wchar.h -M3UA_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h -M3UA_Types.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h -M3UA_Types.o: /usr/include/sys/types.h /usr/include/time.h -M3UA_Types.o: /usr/include/endian.h /usr/include/bits/endian.h -M3UA_Types.o: /usr/include/sys/select.h /usr/include/bits/select.h -M3UA_Types.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -M3UA_Types.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h -M3UA_Types.o: /usr/include/alloca.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -M3UA_Types.o: /usr/include/sys/time.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -M3UA_Types.o: /usr/include/regex.h -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -M3UA_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -SCTPasp_PortType.o: SCTPasp_PortType.hh SCTPasp_Types.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -SCTPasp_PortType.o: /usr/include/string.h /usr/include/features.h -SCTPasp_PortType.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -SCTPasp_PortType.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -SCTPasp_PortType.o: /usr/include/stdio.h /usr/include/bits/types.h -SCTPasp_PortType.o: /usr/include/bits/typesizes.h /usr/include/libio.h -SCTPasp_PortType.o: /usr/include/_G_config.h /usr/include/wchar.h -SCTPasp_PortType.o: /usr/include/bits/wchar.h /usr/include/gconv.h -SCTPasp_PortType.o: /usr/include/bits/stdio_lim.h -SCTPasp_PortType.o: /usr/include/bits/sys_errlist.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -SCTPasp_PortType.o: /usr/include/stdlib.h /usr/include/sys/types.h -SCTPasp_PortType.o: /usr/include/time.h /usr/include/endian.h -SCTPasp_PortType.o: /usr/include/bits/endian.h /usr/include/sys/select.h -SCTPasp_PortType.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -SCTPasp_PortType.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -SCTPasp_PortType.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -SCTPasp_PortType.o: /usr/include/sys/time.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -SCTPasp_PortType.o: /usr/include/regex.h -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -SCTPasp_PortType.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh SCTPasp_PT.hh -SCTPasp_PortType.o: /usr/include/sys/socket.h /usr/include/sys/uio.h -SCTPasp_PortType.o: /usr/include/bits/uio.h /usr/include/bits/socket.h -SCTPasp_PortType.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h -SCTPasp_PortType.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h -SCTPasp_PortType.o: /usr/include/bits/posix2_lim.h -SCTPasp_PortType.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h -SCTPasp_PortType.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h -SCTPasp_PortType.o: /usr/include/stdint.h /usr/include/bits/in.h -SCTPasp_PortType.o: /usr/include/bits/byteswap.h -SCTPasp_PortType.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h -SCTPasp_PortType.o: /usr/include/linux/types.h -SCTPasp_PortType.o: /usr/include/linux/posix_types.h -SCTPasp_PortType.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h -SCTPasp_PortType.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h -SCTPasp_Types.o: SCTPasp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -SCTPasp_Types.o: /usr/include/string.h /usr/include/features.h -SCTPasp_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -SCTPasp_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -SCTPasp_Types.o: /usr/include/stdio.h /usr/include/bits/types.h -SCTPasp_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h -SCTPasp_Types.o: /usr/include/_G_config.h /usr/include/wchar.h -SCTPasp_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h -SCTPasp_Types.o: /usr/include/bits/stdio_lim.h -SCTPasp_Types.o: /usr/include/bits/sys_errlist.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -SCTPasp_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h -SCTPasp_Types.o: /usr/include/time.h /usr/include/endian.h -SCTPasp_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h -SCTPasp_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -SCTPasp_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -SCTPasp_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -SCTPasp_Types.o: /usr/include/sys/time.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -SCTPasp_Types.o: /usr/include/regex.h -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -SCTPasp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -MTP3asp_Types.o: MTP3asp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -MTP3asp_Types.o: /usr/include/string.h /usr/include/features.h -MTP3asp_Types.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -MTP3asp_Types.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -MTP3asp_Types.o: /usr/include/stdio.h /usr/include/bits/types.h -MTP3asp_Types.o: /usr/include/bits/typesizes.h /usr/include/libio.h -MTP3asp_Types.o: /usr/include/_G_config.h /usr/include/wchar.h -MTP3asp_Types.o: /usr/include/bits/wchar.h /usr/include/gconv.h -MTP3asp_Types.o: /usr/include/bits/stdio_lim.h -MTP3asp_Types.o: /usr/include/bits/sys_errlist.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -MTP3asp_Types.o: /usr/include/stdlib.h /usr/include/sys/types.h -MTP3asp_Types.o: /usr/include/time.h /usr/include/endian.h -MTP3asp_Types.o: /usr/include/bits/endian.h /usr/include/sys/select.h -MTP3asp_Types.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -MTP3asp_Types.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -MTP3asp_Types.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -MTP3asp_Types.o: /usr/include/sys/time.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -MTP3asp_Types.o: /usr/include/regex.h -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -MTP3asp_Types.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -Abstract_Socket.o: Abstract_Socket.hh /usr/include/sys/socket.h -Abstract_Socket.o: /usr/include/features.h /usr/include/sys/cdefs.h -Abstract_Socket.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h -Abstract_Socket.o: /usr/include/gnu/stubs-32.h /usr/include/sys/uio.h -Abstract_Socket.o: /usr/include/sys/types.h /usr/include/bits/types.h -Abstract_Socket.o: /usr/include/bits/typesizes.h /usr/include/time.h -Abstract_Socket.o: /usr/include/endian.h /usr/include/bits/endian.h -Abstract_Socket.o: /usr/include/sys/select.h /usr/include/bits/select.h -Abstract_Socket.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -Abstract_Socket.o: /usr/include/sys/sysmacros.h -Abstract_Socket.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/uio.h -Abstract_Socket.o: /usr/include/bits/socket.h /usr/include/limits.h -Abstract_Socket.o: /usr/include/bits/posix1_lim.h -Abstract_Socket.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h -Abstract_Socket.o: /usr/include/bits/posix2_lim.h -Abstract_Socket.o: /usr/include/bits/sockaddr.h /usr/include/asm/socket.h -Abstract_Socket.o: /usr/include/asm/sockios.h /usr/include/netinet/in.h -Abstract_Socket.o: /usr/include/stdint.h /usr/include/bits/wchar.h -Abstract_Socket.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -Abstract_Socket.o: /usr/include/string.h /usr/include/stdio.h -Abstract_Socket.o: /usr/include/libio.h /usr/include/_G_config.h -Abstract_Socket.o: /usr/include/wchar.h /usr/include/gconv.h -Abstract_Socket.o: /usr/include/bits/stdio_lim.h -Abstract_Socket.o: /usr/include/bits/sys_errlist.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -Abstract_Socket.o: /usr/include/stdlib.h /usr/include/alloca.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -Abstract_Socket.o: /usr/include/sys/time.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -Abstract_Socket.o: /usr/include/regex.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -Abstract_Socket.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h -Abstract_Socket.o: /usr/include/bits/confname.h /usr/include/getopt.h -Abstract_Socket.o: /usr/include/strings.h /usr/include/errno.h -Abstract_Socket.o: /usr/include/bits/errno.h /usr/include/linux/errno.h -Abstract_Socket.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h -Abstract_Socket.o: /usr/include/asm-generic/errno-base.h /usr/include/netdb.h -Abstract_Socket.o: /usr/include/rpc/netdb.h /usr/include/bits/netdb.h -Abstract_Socket.o: /usr/include/sys/stat.h /usr/include/bits/stat.h -Abstract_Socket.o: /usr/include/netinet/tcp.h /usr/include/arpa/inet.h -Abstract_Socket.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h -Abstract_Socket.o: /usr/local/TTCNv3-1.7.pl0/include/memory.h -BICC_EncDec.o: BICC_Types.hh General_Types.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -BICC_EncDec.o: /usr/include/string.h /usr/include/features.h -BICC_EncDec.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -BICC_EncDec.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -BICC_EncDec.o: /usr/include/stdio.h /usr/include/bits/types.h -BICC_EncDec.o: /usr/include/bits/typesizes.h /usr/include/libio.h -BICC_EncDec.o: /usr/include/_G_config.h /usr/include/wchar.h -BICC_EncDec.o: /usr/include/bits/wchar.h /usr/include/gconv.h -BICC_EncDec.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h -BICC_EncDec.o: /usr/include/sys/types.h /usr/include/time.h -BICC_EncDec.o: /usr/include/endian.h /usr/include/bits/endian.h -BICC_EncDec.o: /usr/include/sys/select.h /usr/include/bits/select.h -BICC_EncDec.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -BICC_EncDec.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h -BICC_EncDec.o: /usr/include/alloca.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -BICC_EncDec.o: /usr/include/sys/time.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -BICC_EncDec.o: /usr/include/regex.h -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -BICC_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -SCTPasp_PT.o: SCTPasp_PT.hh SCTPasp_PortType.hh SCTPasp_Types.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -SCTPasp_PT.o: /usr/include/string.h /usr/include/features.h -SCTPasp_PT.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -SCTPasp_PT.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -SCTPasp_PT.o: /usr/include/stdio.h /usr/include/bits/types.h -SCTPasp_PT.o: /usr/include/bits/typesizes.h /usr/include/libio.h -SCTPasp_PT.o: /usr/include/_G_config.h /usr/include/wchar.h -SCTPasp_PT.o: /usr/include/bits/wchar.h /usr/include/gconv.h -SCTPasp_PT.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh /usr/include/stdlib.h -SCTPasp_PT.o: /usr/include/sys/types.h /usr/include/time.h -SCTPasp_PT.o: /usr/include/endian.h /usr/include/bits/endian.h -SCTPasp_PT.o: /usr/include/sys/select.h /usr/include/bits/select.h -SCTPasp_PT.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -SCTPasp_PT.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h -SCTPasp_PT.o: /usr/include/alloca.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -SCTPasp_PT.o: /usr/include/sys/time.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -SCTPasp_PT.o: /usr/include/regex.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh -SCTPasp_PT.o: /usr/include/sys/socket.h /usr/include/sys/uio.h -SCTPasp_PT.o: /usr/include/bits/uio.h /usr/include/bits/socket.h -SCTPasp_PT.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h -SCTPasp_PT.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h -SCTPasp_PT.o: /usr/include/bits/posix2_lim.h /usr/include/bits/sockaddr.h -SCTPasp_PT.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h -SCTPasp_PT.o: /usr/include/netinet/in.h /usr/include/stdint.h -SCTPasp_PT.o: /usr/include/bits/in.h /usr/include/bits/byteswap.h -SCTPasp_PT.o: /usr/local/lksctp-tools-1.0.6/include/netinet/sctp.h -SCTPasp_PT.o: /usr/include/linux/types.h /usr/include/linux/posix_types.h -SCTPasp_PT.o: /usr/include/linux/stddef.h /usr/include/linux/compiler.h -SCTPasp_PT.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h -SCTPasp_PT.o: /usr/include/arpa/inet.h /usr/include/unistd.h -SCTPasp_PT.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h -SCTPasp_PT.o: /usr/include/getopt.h /usr/include/netdb.h -SCTPasp_PT.o: /usr/include/rpc/netdb.h /usr/include/bits/netdb.h -SCTPasp_PT.o: /usr/local/TTCNv3-1.7.pl0/include/memory.h /usr/include/fcntl.h -SCTPasp_PT.o: /usr/include/bits/fcntl.h /usr/include/errno.h -SCTPasp_PT.o: /usr/include/bits/errno.h /usr/include/linux/errno.h -SCTPasp_PT.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h -SCTPasp_PT.o: /usr/include/asm-generic/errno-base.h -MTP3asp_EncDec.o: MTP3asp_Types.hh /usr/local/TTCNv3-1.7.pl0/include/TTCN3.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/version.h -MTP3asp_EncDec.o: /usr/include/string.h /usr/include/features.h -MTP3asp_EncDec.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h -MTP3asp_EncDec.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h -MTP3asp_EncDec.o: /usr/include/stdio.h /usr/include/bits/types.h -MTP3asp_EncDec.o: /usr/include/bits/typesizes.h /usr/include/libio.h -MTP3asp_EncDec.o: /usr/include/_G_config.h /usr/include/wchar.h -MTP3asp_EncDec.o: /usr/include/bits/wchar.h /usr/include/gconv.h -MTP3asp_EncDec.o: /usr/include/bits/stdio_lim.h -MTP3asp_EncDec.o: /usr/include/bits/sys_errlist.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Basetype.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Types.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Encdec.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Template.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Integer.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Optional.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/BER.hh -MTP3asp_EncDec.o: /usr/include/stdlib.h /usr/include/sys/types.h -MTP3asp_EncDec.o: /usr/include/time.h /usr/include/endian.h -MTP3asp_EncDec.o: /usr/include/bits/endian.h /usr/include/sys/select.h -MTP3asp_EncDec.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -MTP3asp_EncDec.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h -MTP3asp_EncDec.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Logger.hh -MTP3asp_EncDec.o: /usr/include/sys/time.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Textbuf.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Error.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Parameters.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Float.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Boolean.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Null.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Objid.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Verdicttype.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Component.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Bitstring.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/RAW.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Hexstring.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Octetstring.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_Any.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Charstring.hh -MTP3asp_EncDec.o: /usr/include/regex.h -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Universal_charstring.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Struct_of.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Array.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_CharacterString.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_External.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/ASN_EmbeddedPDV.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Addfunc.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Timer.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Port.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Module_list.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Snapshot.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Default.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/Runtime.hh -MTP3asp_EncDec.o: /usr/local/TTCNv3-1.7.pl0/include/TEXT.hh diff --git a/M3UA_CNL113537/demo/SCTPasp_PT.cc b/M3UA_CNL113537/demo/SCTPasp_PT.cc deleted file mode 120000 index 2b931e952..000000000 --- a/M3UA_CNL113537/demo/SCTPasp_PT.cc +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PT.cc \ No newline at end of file diff --git a/M3UA_CNL113537/demo/SCTPasp_PT.hh b/M3UA_CNL113537/demo/SCTPasp_PT.hh deleted file mode 120000 index e37473f5a..000000000 --- a/M3UA_CNL113537/demo/SCTPasp_PT.hh +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PT.hh \ No newline at end of file diff --git a/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn b/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn deleted file mode 120000 index 4394e347f..000000000 --- a/M3UA_CNL113537/demo/SCTPasp_PortType.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/SCTPasp_Types.ttcn b/M3UA_CNL113537/demo/SCTPasp_Types.ttcn deleted file mode 120000 index 71876a06e..000000000 --- a/M3UA_CNL113537/demo/SCTPasp_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn \ No newline at end of file diff --git a/M3UA_CNL113537/demo/m3ua_emu.cfg b/M3UA_CNL113537/demo/m3ua_emu.cfg deleted file mode 100644 index 9533515d1..000000000 --- a/M3UA_CNL113537/demo/m3ua_emu.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[LOGGING] -LogSourceInfo := Yes -FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -ConsoleMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING - -[EXECUTE] -M3UA_Emulation_Test.tc_M3UA_demo_bicc - -[TESTPORT_PARAMETERS] -system.SCTP_PORT.debug := "yes" - -[MODULE_PARAMETERS] -M3UA_Emulation.tsp_logVerbose := true; -M3UA_Emulation.tsp_M3UA_Server_Mode := false; -M3UA_Emulation_Test.tsp_address := -{ - local_sctp_port := 2905, - local_ip_addr := "10.6.70.19", - remote_sctp_port := 2905, - remote_ip_addr := "159.107.193.33" -} diff --git a/M3UA_CNL113537/src/M3UA_Emulation.ttcn b/M3UA_CNL113537/src/M3UA_Emulation.ttcn deleted file mode 100644 index 7a4a7e9b2..000000000 --- a/M3UA_CNL113537/src/M3UA_Emulation.ttcn +++ /dev/null @@ -1,1307 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2009 // -// // -// 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: M3UA_Emulation.ttcn -// Reference: M3UA Protocol Emulation -// Rev: R1B01 -// Prodnr: CNL 113 537 -// Updated: 2009-01-06 -// Contact: http://ttcn.ericsson.se - -module M3UA_Emulation -{ - -modulepar -{ - boolean tsp_logVerbose := false; - float tsp_Timer := 2.0; // General timer used in M3UA emulation. - float tsp_ASPUP_Resend_Timer := 2.0; - float tsp_ASPAC_Resend_Timer := 2.0; - float tsp_Assoc_Restart_Timer := 60.0; - float tsp_Heartbeat_Timer := 30.0; - integer tsp_SCTP_PayloadProtocolID := 3; // 3 for M3UA. - boolean tsp_Enable_M3UA_Heartbeat := false; // Send SCTP packets periodically. - boolean tsp_SCTP_Server_Mode := false; - boolean tsp_M3UA_Server_Mode := false; -} - -import from General_Types all; -import from M3UA_Types all; -import from SCTPasp_Types all; -import from SCTPasp_PortType all; -import from MTP3asp_Types all; - -type record of ASP_MTP3_TRANSFERreq TRANSFERreq_Buffer; - -type record SCTP_Association_Address -{ - integer local_sctp_port, - charstring local_ip_addr, - integer remote_sctp_port, - charstring remote_ip_addr -} - -// Definition of M3UA_Entity which contains M3UA entity data. -type record M3UA_Entity -{ - M3UA_CommStatus commStatus optional, - integer sCTP_Assoc_ID optional, - SCTP_Association_Address assoc -} - -// Type for status of SCTP communication for an M3UA entity. -type enumerated M3UA_CommStatus -{ - aSP_Down_initial_State (0), - aSP_Down_sCTP_Initialize_Done (1), - aSP_Down_sCTP_Associate_done (2), - aSP_Down_commUP_Received (3), - aSP_Down_ASPUP_Sent (4), - aSP_Inactive (5), - aSP_Inact_ASPAC_Sent (6), - aSP_Active (7) // aSPAC_Ack_Received -} - -// We need an internal port to communicate with the MTP3 side. -// internal in name -type port MTP3asp_SP_PT_Int message -{ - in ASP_MTP3_TRANSFERreq; - out ASP_MTP3_TRANSFERind; - // out ASP_MTP3_PAUSE; - // out ASP_MTP3_RESUME; - // out ASP_MTP3_STATUS; -} with { - extension "internal" -} - -// M3UA emulation component. -type component M3UA_CT -{ - var M3UA_Entity v_Entity; - var TRANSFERreq_Buffer v_TRANSFERreq_Buffer := {}; - - var ASP_SCTP v_ASP_SCTP; - var ASP_SCTP_SEND_FAILED v_ASP_SCTP_SEND_FAILED; - var ASP_SCTP_RESULT v_ASP_SCTP_RESULT; - var ASP_SCTP_Connected v_ASP_SCTP_Connected; - var ASP_SCTP_ASSOC_CHANGE v_ASP_SCTP_ASSOC_CHANGE; - var ASP_SCTP_SHUTDOWN_EVENT v_ASP_SCTP_SHUTDOWN_EVENT; - - var PDU_M3UA v_PDU_M3UA; - - // Component timers. - timer T_Timer := tsp_Timer; - timer T_ASPUP_resend := tsp_ASPUP_Resend_Timer; - timer T_ASPAC_resend := tsp_ASPAC_Resend_Timer; - timer T_Heartbeat := tsp_Heartbeat_Timer; - timer T_Assoc_restart := tsp_Assoc_Restart_Timer; - - // Port declarations. - port MTP3asp_SP_PT_Int MTP3_SP_PORT; // Port towards MTP3/M3UA. - port SCTPasp_PT SCTP_PORT; // Port towards target through SCTP. -} - -//******************************** -// Start of SCTP related templates -//******************************** -template ASP_SCTP t_S_SCTP_Send - (in template integer pl_associationID, - in template integer pl_streamID, - in template octetstring pl_userData, - in template integer pl_protocolID) := -{ - client_id := pl_associationID, - sinfo_stream := pl_streamID, - sinfo_ppid := pl_protocolID, - data := pl_userData -} - -template ASP_SCTP_SEND_FAILED t_ASP_SCTP_SEND_FAILED - (in template integer pl_streamID) := -{ - client_id := pl_streamID -} - -template ASP_SCTP_Listen t_ASP_SCTP_Listen - (template charstring pl_local_hostname, - template integer pl_local_portnumber) := -{ - local_hostname := pl_local_hostname, - local_portnumber := pl_local_portnumber -} - -template ASP_SCTP_Connected tr_ASP_SCTP_Connected - (template integer pl_client_id, - template charstring pl_local_hostname, - template integer pl_local_portnumber, - template charstring pl_peer_hostname, - template integer pl_peer_portnumber) := -{ - client_id := pl_client_id, - local_hostname := pl_local_hostname, - local_portnumber := pl_local_portnumber, - peer_hostname := pl_peer_hostname, - peer_portnumber := pl_peer_portnumber -} - -template ASP_SCTP_ConnectFrom t_ASP_SCTP_ConnectFrom - (template charstring pl_local_hostname, - template integer pl_local_portnumber, - template charstring pl_peer_hostname, - template integer pl_peer_portnumber) := -{ - local_hostname := pl_local_hostname, - local_portnumber := pl_local_portnumber, - peer_hostname := pl_peer_hostname, - peer_portnumber := pl_peer_portnumber -} - -template ASP_SCTP_RESULT t_ASP_SCTP_RESULT - (template integer pl_client_id, - template boolean pl_error_status, - template charstring pl_error_message) := -{ - client_id := pl_client_id, - error_status := pl_error_status, - error_message := pl_error_message -} - -template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CommunicationUp - (in template integer pl_associationID) := -{ - client_id := pl_associationID, - sac_state := SCTP_COMM_UP -} - -template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CommunicationLost - (in template integer pl_associationID) := -{ - client_id := pl_associationID, - sac_state := SCTP_COMM_LOST -} - -template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_ShutdownComplete - (in template integer pl_associationID) := -{ - client_id := pl_associationID, - sac_state := SCTP_SHUTDOWN_COMP -} - -template ASP_SCTP_SHUTDOWN_EVENT tr_S_SCTP_ShutdownEvent - (in template integer pl_associationID) := -{ - client_id := pl_associationID -} - -template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_Restart - (in template integer pl_associationID) := -{ - client_id := pl_associationID, - sac_state := SCTP_RESTART -} - -template ASP_SCTP_ASSOC_CHANGE tr_S_SCTP_CANT_STR_ASSOC - (in template integer pl_associationID) := -{ - client_id := pl_associationID, - sac_state := SCTP_CANT_STR_ASSOC -} - -template ASP_SCTP tr_S_SCTP_DataArrive - (in template integer pl_associationID, - in template integer pl_streamID, - in template integer pl_protocolID, - in template PDU_SCTP pl_data) := -{ - client_id := pl_associationID, - sinfo_stream := pl_streamID, - sinfo_ppid := pl_protocolID, - data := pl_data -} - -template ASP_SCTP_Close t_ASP_SCTP_Close - (in template integer pl_associationID) := -{ - client_id := pl_associationID -} -//****************************** -// End of SCTP related templates -//****************************** - -//***************************** -// Start of M3UA PDU templates. -//***************************** -template PDU_M3UA t_PDU_M3UA_ASPUP - (in template M3UA_ASP_Identifier pl_aSP_Identifier, - in template M3UA_Info_String pl_info_String) := -{ - m3UA_ASPUP := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0301'O, - messageLength := 0, - messageParameters := { - aSP_Identifier := pl_aSP_Identifier, - info_String := pl_info_String - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPUP_Ack := -{ - m3UA_ASPUP_Ack := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0304'O, - messageLength := 0, - messageParameters := { - info_String := omit - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPDN := -{ - m3UA_ASPDN := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0302'O, - messageLength := 0, - messageParameters := { - info_String := omit - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPDN_Ack := -{ - m3UA_ASPDN_Ack := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0305'O, - messageLength := 0, - messageParameters := { - info_String := omit - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPAC - (in template M3UA_Traffic_Mode_Type pl_traffic_Mode_Type, - in template M3UA_Routing_Context pl_routing_Context, - in template M3UA_Info_String pl_info_String) := -{ - m3UA_ASPAC := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0401'O, - messageLength := 0, - messageParameters := { - traffic_Mode_Type := pl_traffic_Mode_Type, - routing_Context := pl_routing_Context, - info_String := pl_info_String - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPAC_Ack - (in template M3UA_Traffic_Mode_Type pl_traffic_mode_type, - in template M3UA_Routing_Context pl_routing_Context) := -{ - m3UA_ASPAC_Ack := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0403'O, - messageLength := 0, - messageParameters := { - traffic_Mode_Type := pl_traffic_mode_type, - routing_Context := pl_routing_Context, - info_String := omit - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPIA - (in template M3UA_Routing_Context pl_routing_Context, - in template M3UA_Info_String pl_info_String) := -{ - m3UA_ASPIA := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0402'O, - messageLength := 0, - messageParameters := { - routing_Context := pl_routing_Context, - info_String := pl_info_String - } - } -} - -template PDU_M3UA t_PDU_M3UA_ASPIA_Ack - (in template M3UA_Routing_Context pl_routing_Context) := -{ - m3UA_ASPIA_Ack := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0404'O, - messageLength := 0, - messageParameters := { - routing_Context := pl_routing_Context, - info_String := omit - } - } -} - -template PDU_M3UA t_PDU_M3UA_Heartbeat - (in template M3UA_Heartbeat_Data pl_heartbeat_Data) := -{ - m3UA_BEAT := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0303'O, - messageLength := 0, - messageParameters := { - heartbeat_Data := pl_heartbeat_Data - } - } -} - -template PDU_M3UA t_PDU_M3UA_Beat_Ack - (in template M3UA_Heartbeat_Data pl_heartbeat_Data) := -{ - m3UA_BEAT_Ack := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0306'O, - messageLength := 0, - messageParameters := { - heartbeat_Data := pl_heartbeat_Data - } - } -} - -template PDU_M3UA t_PDU_M3UA_DATA - (in template M3UA_Network_Appearance pl_network_Appearance, - in template M3UA_Routing_Context pl_routing_Context, - in template M3UA_Protocol_Data pl_protocol_Data, - in template M3UA_Correlation_ID pl_correlation_ID) := -{ - m3UA_DATA := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0101'O, - messageLength := 0, - messageParameters := { - network_Appearance := pl_network_Appearance, - routing_Context := pl_routing_Context, - protocol_Data := pl_protocol_Data, - correlation_ID := pl_correlation_ID - } - } -} - -template PDU_M3UA t_PDU_M3UA_DAVA - (in template M3UA_Network_Appearance pl_network_Appearance, - in template M3UA_Routing_Context pl_routing_Context, - in template M3UA_Affected_Point_Codes pl_affected_Point_Codes, - in template M3UA_Info_String pl_info_String) := -{ - m3UA_DAVA := { - version := '01'O, - reserved := '00'O, - messageClassAndType := '0202'O, - messageLength := 0, - messageParameters := { - network_Appearance := pl_network_Appearance, - routing_Context := pl_routing_Context, - affected_Point_Codes := pl_affected_Point_Codes, - info_String := pl_info_String - } - } -} -//************************** -// End of M3UA PDU templates -//************************** - -//********************************** -// Start of M3UA parameter templates -//********************************** -template M3UA_Protocol_Data t_M3UA_Protocol_Data - (template OCT4 pl_oPC, - template OCT4 pl_dPC, - template OCT1 pl_sI, - template OCT1 pl_nI, - template OCT1 pl_mP, - template OCT1 pl_sLS, - template octetstring pl_userProtocolData) := -{ - tag := '0210'O, - lengthInd := 0, - oPC := pl_oPC, - dPC := pl_dPC, - sI := pl_sI, - nI := pl_nI, - mP := pl_mP, - sLS := pl_sLS, - userProtocolData := pl_userProtocolData -} -//******************************** -// End of M3UA parameter templates -//******************************** - -//*********************************** -// Dynamic part of the M3UA emulation -//*********************************** - -function f_M3UA_Emulation(SCTP_Association_Address pl_Boot) runs on M3UA_CT -{ - // Initialize parameters from the test case. - v_Entity.assoc := pl_Boot; - v_Entity.commStatus := aSP_Down_initial_State; - - // At this point, we assume that the ports are already connected and mapped - // properly by the user. - log("*************************************************"); - log("M3UA emulation initiated, the test can be started"); - log("*************************************************"); - - f_Initialize_SCTP(); - - // Start the main function in an infinte loop. - f_M3UA_ScanEvents(); -} - -// Initialize the SCTP layer with parameters read from the configuration file. -// We have only a single association. -function f_Initialize_SCTP() runs on M3UA_CT -{ - v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done; - if (tsp_SCTP_Server_Mode) { - // Send out a LISTEN message. The communication status doesn't change - // here. - SCTP_PORT.send - (t_ASP_SCTP_Listen(v_Entity.assoc.local_ip_addr, - v_Entity.assoc.local_sctp_port)); - } - else { - // Send ConnectFrom sequentially, wait for RESULT messages. - f_Associate(); - T_Assoc_restart.start; - } - - if (tsp_SCTP_PayloadProtocolID == 3) { - if (not tsp_M3UA_Server_Mode) { - T_ASPUP_resend.start; - T_ASPAC_resend.start; - } - if (tsp_Enable_M3UA_Heartbeat) { - T_Heartbeat.start; - } - } -} - -// Associate SCTP connection for a M3UA entity. -function f_Associate() runs on M3UA_CT -{ - SCTP_PORT.send(t_ASP_SCTP_ConnectFrom - (v_Entity.assoc.local_ip_addr, - v_Entity.assoc.local_sctp_port, - v_Entity.assoc.remote_ip_addr, - v_Entity.assoc.remote_sctp_port)); - - T_Timer.start; - alt { - [] SCTP_PORT.receive(t_ASP_SCTP_RESULT(*, ?, *)) -> value v_ASP_SCTP_RESULT { - if (v_ASP_SCTP_RESULT.error_status) { - log("Connect failed: ", v_ASP_SCTP_RESULT.error_message); - } - else { - v_Entity.sCTP_Assoc_ID := v_ASP_SCTP_RESULT.client_id; - v_Entity.commStatus := aSP_Down_sCTP_Associate_done; - log("SCTP_ConnectResult -> connection established from: ", - v_Entity.assoc.local_ip_addr, ":", v_Entity.assoc.local_sctp_port, - " to server: ", v_Entity.assoc.remote_ip_addr, ":", - v_Entity.assoc.remote_sctp_port, " association #", - v_Entity.sCTP_Assoc_ID); - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to ", - v_Entity.commStatus); - } - } - T_Timer.stop; - } - [] T_Timer.timeout { - log("----------------------------------------------"); - log("No response received to t_ASP_SCTP_ConnectFrom"); - log("----------------------------------------------"); - setverdict(fail); - // mtc.stop; - } - } -} - -// Starts M3UA emulation execution. -function f_M3UA_ScanEvents() runs on M3UA_CT -{ - var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq; - - alt { - [] MTP3_SP_PORT.receive(ASP_MTP3_TRANSFERreq : ?) - -> value vl_ASP_MTP3_TRANSFERreq { - f_Send_MTP3_TRANSFERreq(vl_ASP_MTP3_TRANSFERreq); - repeat; - } - [] as_SCTP_CommunicationUp() - [] as_SCTP_DataArrive() - [] as_SCTP_Connected() - [] as_Unexpected_SCTP_Events() - [] as_handleM3UA_timers() - [] as_handleSCTP_timers() - } -} - -function f_Send_MTP3_TRANSFERreq(ASP_MTP3_TRANSFERreq pl_ASP_MTP3_TRANSFERreq) - runs on M3UA_CT -{ - if (v_Entity.commStatus == aSP_Active) { - if (tsp_SCTP_PayloadProtocolID == 3) { // M3UA - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 1, - enc_PDU_M3UA - (valueof - (t_PDU_M3UA_DATA - (omit, - omit, - t_M3UA_Protocol_Data - (int2oct(pl_ASP_MTP3_TRANSFERreq.opc, 4), // OPC - int2oct(pl_ASP_MTP3_TRANSFERreq.dpc, 4), // DPC - bit2oct('0000'B & pl_ASP_MTP3_TRANSFERreq.sio.si), // SIO - bit2oct('000000'B & pl_ASP_MTP3_TRANSFERreq.sio.ni), - bit2oct('000000'B & pl_ASP_MTP3_TRANSFERreq.sio.prio), - int2oct(pl_ASP_MTP3_TRANSFERreq.sls, 1), // SLS - pl_ASP_MTP3_TRANSFERreq.data), - omit))), - tsp_SCTP_PayloadProtocolID)); - } - else { // Non-M3UA - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 1, - pl_ASP_MTP3_TRANSFERreq.data, - tsp_SCTP_PayloadProtocolID)); - } - if (tsp_logVerbose) { - log("MTP3_SP_PORT: ASP_MTP3_TRANSFERreq received -> message sent " & - "via SCTP"); - } - } - else { - // If the SCTP association is not yet running, we have to buffer the data - // messages arrived from the MTP3 side. Sending of buffered data messages - // should occure when the SCTP association is up and before sending the - // data message in reply for a new ASP_MTP3_TRANSFERreq data message. The - // buffer should be checked before sending. - v_TRANSFERreq_Buffer[sizeof(v_TRANSFERreq_Buffer)] := - pl_ASP_MTP3_TRANSFERreq; - if (tsp_logVerbose) { - log("MTP3_SP_PORT: ASP_MTP3_TRANSFERreq received in an inactive state " & - "-> message was buffered"); - } - } -} - -// Handle communication up messages of users which performed associate earlier. -// We have only one association. -altstep as_SCTP_CommunicationUp() runs on M3UA_CT -{ - [] SCTP_PORT.receive(tr_S_SCTP_CommunicationUp(?)) - -> value v_ASP_SCTP_ASSOC_CHANGE { - if (v_Entity.sCTP_Assoc_ID == v_ASP_SCTP_ASSOC_CHANGE.client_id) { - if (v_Entity.commStatus == aSP_Down_sCTP_Associate_done) { - v_Entity.commStatus := aSP_Down_commUP_Received; - if (tsp_SCTP_PayloadProtocolID != 3) { // Non-M3UA - v_Entity.commStatus := aSP_Active; - var integer v_i; - for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) { - log("Sending buffered message #", v_i); - f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]); - } - v_TRANSFERreq_Buffer := {}; - // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {}); - } - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - if ((not tsp_M3UA_Server_Mode) and - (tsp_SCTP_PayloadProtocolID == 3)) { // M3UA - f_ASPUP_Sending(); - } - } - else { - if (tsp_logVerbose) { - log("SCTP_CommunicationUp received in wrong state (i.e. not after " & - "SCTP_Associate is done) in state: ", v_Entity.commStatus); - } - } - } - else { - if (tsp_logVerbose) { - log("Association does not exists, received in CommunicationUp"); - } - } - repeat; - } -} - -// This altstep handles the data received from SCTP. -altstep as_SCTP_DataArrive() runs on M3UA_CT -{ - [] SCTP_PORT.receive(tr_S_SCTP_DataArrive - (?, // associationID - ?, // streamID - ?, // protocolID - ? // data - )) -> value v_ASP_SCTP { - // Checking the identifier for the association is not necessary, because we - // have only only one association. - if (f_Assoc_Exists(v_ASP_SCTP.client_id)) { - if (tsp_logVerbose) { - log("Message received on association #", v_Entity.sCTP_Assoc_ID); - } - if (tsp_SCTP_PayloadProtocolID == 3) { // M3UA - v_PDU_M3UA := dec_PDU_M3UA(v_ASP_SCTP.data); - f_handle_M3UA_msg(v_PDU_M3UA); - } - else { // Non-M3UA - f_handle_nonM3UA_msg(v_ASP_SCTP.data); - } - } - else{ - log("Message received on unknown association #", v_Entity.sCTP_Assoc_ID, - " -> closing connection"); - SCTP_PORT.send(t_ASP_SCTP_Close(v_Entity.sCTP_Assoc_ID)); - log("SCTP connection closed"); - } - repeat; - } -} - -// Handle the SCTP connected messages. It is sent from the SCTP side and it -// signals, that we're on the right track to create the association. This is -// for server mode. -altstep as_SCTP_Connected() runs on M3UA_CT -{ - [tsp_SCTP_Server_Mode] SCTP_PORT.receive(tr_ASP_SCTP_Connected(?, ?, ?, ?, ?)) - -> value v_ASP_SCTP_Connected { - // Message from the configured endpoint. - if ((v_ASP_SCTP_Connected.local_portnumber == - v_Entity.assoc.local_sctp_port) and - (v_ASP_SCTP_Connected.local_hostname == - v_Entity.assoc.local_ip_addr) and - (v_ASP_SCTP_Connected.peer_portnumber == - v_Entity.assoc.remote_sctp_port) and - (v_ASP_SCTP_Connected.peer_hostname == - v_Entity.assoc.remote_ip_addr)) { - v_Entity.sCTP_Assoc_ID := v_ASP_SCTP_Connected.client_id; - v_Entity.commStatus := aSP_Down_sCTP_Associate_done; - log("ASP_SCTP_Connected -> accepted connection from client: ", - v_ASP_SCTP_Connected.peer_hostname, ":", - v_ASP_SCTP_Connected.peer_portnumber, " on server: ", - v_ASP_SCTP_Connected.local_hostname, ":", - v_ASP_SCTP_Connected.local_portnumber, " with association #", - v_Entity.sCTP_Assoc_ID); - } - else { - log("ASP_SCTP_Connected -> connection from unknown client: ", - v_ASP_SCTP_Connected.peer_hostname, ":", - v_ASP_SCTP_Connected.peer_portnumber); - } - repeat; - } -} - -// Handle error messages of users. -altstep as_Unexpected_SCTP_Events() runs on M3UA_CT -{ - // Handle communications lost message. State of user with given index jumps - // back to initial state and stays there. That user will not be able to - // communicate anymore. - [] SCTP_PORT.receive(tr_S_SCTP_CommunicationLost(?)) - -> value v_ASP_SCTP_ASSOC_CHANGE { - if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) { - if (v_Entity.commStatus == aSP_Active) { - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - } - v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done; - v_Entity.sCTP_Assoc_ID := omit; - if (tsp_logVerbose) { - log("SCTP_CommunicationLost received"); - log("Association #", v_Entity.sCTP_Assoc_ID, " cleared, state " & - "changed to: ", v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("Association does not exist, received in CommunicationLost"); - } - } - repeat; - } - [] SCTP_PORT.receive(tr_S_SCTP_ShutdownComplete(?)) - -> value v_ASP_SCTP_ASSOC_CHANGE { - if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) { - if (v_Entity.commStatus == aSP_Active) { - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - } - v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done; - if (tsp_logVerbose) { - log("SCTP_ShutdownComplete received"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("Association does not exist, received in ShutdownComplete"); - } - } - repeat; - } - [] SCTP_PORT.receive(tr_S_SCTP_ShutdownEvent(?)) - -> value v_ASP_SCTP_SHUTDOWN_EVENT { - if (f_Assoc_Exists(v_ASP_SCTP_SHUTDOWN_EVENT.client_id)) { - if (v_Entity.commStatus == aSP_Active) { - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - } - v_Entity.commStatus := aSP_Down_sCTP_Initialize_Done; - if (tsp_logVerbose) { - log("SCTP_ShutdownEvent received"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("Association does not exist, received in ShutdownEvent"); - } - } - repeat; - } - [] SCTP_PORT.receive(tr_ASP_SCTP_Connected(?, ?, ?, ?, ?)) - -> value v_ASP_SCTP_Connected { - log("Unexpected ASP_SCTP_Connected"); - repeat; - } - [] SCTP_PORT.receive(tr_S_SCTP_Restart(?)) -> value v_ASP_SCTP_ASSOC_CHANGE { - if (f_Assoc_Exists(v_ASP_SCTP_ASSOC_CHANGE.client_id)) { - log("SCTP_Restart received"); - v_Entity.commStatus := aSP_Down_commUP_Received; - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("Association does not exist, received in SCTP_Restart"); - } - } - repeat; - } - [] SCTP_PORT.receive(t_ASP_SCTP_SEND_FAILED(?)) - -> value v_ASP_SCTP_SEND_FAILED { - log("SCTP_Send failed for association #", v_Entity.sCTP_Assoc_ID); - if (f_Assoc_Exists(v_ASP_SCTP_SEND_FAILED.client_id)) { - // Daemon sends an error status message here. - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - } - else { - log("Send error received for association that doesn't exist"); - } - repeat; - } - [] SCTP_PORT.receive(tr_S_SCTP_CANT_STR_ASSOC(?)) { - repeat; - } - [] SCTP_PORT.receive { - repeat; - } -} - -// After reception of SCTP_CommunicationUp M3UA ASPUP/ASPAC is resent by the -// entity if it didn't receive ASPUP_Ack/ASPAC_Ack. -altstep as_handleM3UA_timers() runs on M3UA_CT -{ - [] T_ASPUP_resend.timeout { - if ((v_Entity.commStatus == aSP_Down_commUP_Received) or - (v_Entity.commStatus == aSP_Down_ASPUP_Sent)) { - // Try to send ASPUP again. - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP(omit, omit))), - tsp_SCTP_PayloadProtocolID)); - v_Entity.commStatus := aSP_Down_ASPUP_Sent; - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - T_ASPUP_resend.start; - repeat; - } - - [] T_ASPAC_resend.timeout { - if ((v_Entity.commStatus == aSP_Inactive) or - (v_Entity.commStatus == aSP_Inact_ASPAC_Sent)) { - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPAC(omit, omit, omit))), - tsp_SCTP_PayloadProtocolID)); - v_Entity.commStatus := aSP_Inact_ASPAC_Sent; - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - T_ASPAC_resend.start; - repeat; - } - - [tsp_Enable_M3UA_Heartbeat] T_Heartbeat.timeout { - if (v_Entity.commStatus == aSP_Active) { - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_Heartbeat(omit))), - tsp_SCTP_PayloadProtocolID)); - if (tsp_logVerbose) { - log("Heartbeat sent to association #", v_Entity.sCTP_Assoc_ID); - } - } - T_Heartbeat.start; - repeat; - } -} - -// Handles SCTP timer events. In server mode we don't associate. -altstep as_handleSCTP_timers() runs on M3UA_CT -{ - [not tsp_SCTP_Server_Mode] T_Assoc_restart.timeout { - if (v_Entity.commStatus == aSP_Down_sCTP_Initialize_Done) { - f_Associate(); - } - T_Assoc_restart.start; - repeat; - } -} - -// After reception of SCTP CommunicationUp messages M3UA ASPUP is sent by -// every entity and the M3UA ASPUP_Ack is received by every entity. -function f_ASPUP_Sending() runs on M3UA_CT -{ - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, // streamID - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP(omit, omit))), - tsp_SCTP_PayloadProtocolID)); - v_Entity.commStatus := aSP_Down_ASPUP_Sent; - if (tsp_logVerbose) { - log("M3UA_ASPUP sent"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } -} - - -// Test if an association with assocID exists or not. We have only one -// association at the moment, we just check if the given assocID is the same, -// that is associated with our single entity. If we would have more entities -// in a table, the index of it should be returned instead of a boolean value. -function f_Assoc_Exists(integer pl_assocID) runs on M3UA_CT return boolean -{ - if (v_Entity.sCTP_Assoc_ID == pl_assocID) { - return true; - } - else { - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " not found"); - } - } - return false; -} - -function f_handle_M3UA_msg(PDU_M3UA pl_PDU_M3UA) runs on M3UA_CT -{ - if (ischosen(pl_PDU_M3UA.m3UA_DATA)) { - if (v_Entity.commStatus == aSP_Active) { - // Send ASP_MTP3_TRANSFERind message. - MTP3_SP_PORT.send - (valueof - (tr_ASP_MTP3_TRANSFERind_sio - (substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.nI), 6, 2), - substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.mP), 6, 2), - substr(oct2bit(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.sI), 4, 4), - oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.oPC), - oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.dPC), - oct2int(pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.sLS), - pl_PDU_M3UA.m3UA_DATA.messageParameters.protocol_Data.userProtocolData))); - if (tsp_logVerbose) { - log("MTP3_SP_PORT: Data received -> TRANSFERind sent"); - } - } - else { - // Buffering indication messages? - if (tsp_logVerbose) { - log("MTP3_SP_PORT: Data received, no user connected -> discard"); - } - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_BEAT)) { - if (v_Entity.commStatus == aSP_Active) { - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA - (valueof - (t_PDU_M3UA_Beat_Ack - (pl_PDU_M3UA.m3UA_BEAT.messageParameters.heartbeat_Data))), - tsp_SCTP_PayloadProtocolID)); - if (tsp_logVerbose) { - log("M3UA_BEAT received -> M3UA_BEAT_Ack sent"); - } - } - else { - if (tsp_logVerbose) { - log("M3UA_BEAT received in wrong state"); - } - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_BEAT_Ack)) { - if (tsp_logVerbose) { - log("Received M3UA_BEAT_Ack -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_ERR)) { - if (tsp_logVerbose) { - log("Received M3UA_ERR -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_NOTIFY)) { - if (tsp_logVerbose) { - log("Received M3UA_NOTIFY -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DUNA)) { - if (tsp_logVerbose) { - log("Received M3UA_DUNA -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DAVA)) { - if (tsp_logVerbose) { - log("Received M3UA_DAVA -> discard"); - } - } - // In server mode ASP_M3UA_DAUD messages can be received. In response the - // server must send ASP_M3UA_DAVA messages. It's not checked if we're - // servers or not. - else if (ischosen(pl_PDU_M3UA.m3UA_DAUD)) { - if ((v_Entity.commStatus == aSP_Inactive) or - (v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or - (v_Entity.commStatus == aSP_Active)) { - // Send ASP_M3UA_DAVA message. - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA - (valueof - (t_PDU_M3UA_DAVA - (pl_PDU_M3UA.m3UA_DAUD.messageParameters.network_Appearance, - pl_PDU_M3UA.m3UA_DAUD.messageParameters.routing_Context, - pl_PDU_M3UA.m3UA_DAUD.messageParameters.affected_Point_Codes, - pl_PDU_M3UA.m3UA_DAUD.messageParameters.info_String))), - tsp_SCTP_PayloadProtocolID)); - if (tsp_logVerbose) { - log("M3UA_DAUD received -> DAVA sent"); - } - } - else { - if (tsp_logVerbose) { - log("M3UA_DAUD received in wrong state"); - } - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_SCON)) { - if (tsp_logVerbose) { - log("Received M3UA_SCON -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DUPU)) { - if (tsp_logVerbose) { - log("Received M3UA_DUPU -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DRST)) { - if (tsp_logVerbose) { - log("Received M3UA_DRST -> discard"); - } - } - // In server mode we can receive M3UA_ASPUP messages. The answer will be a - // M3UA_ASPUP_Ack message to the client. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPUP)) { - if (((v_Entity.commStatus == aSP_Down_commUP_Received) or - (v_Entity.commStatus == aSP_Down_ASPUP_Sent)) and - tsp_M3UA_Server_Mode) { - v_Entity.commStatus := aSP_Inactive; - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPUP_Ack)), - tsp_SCTP_PayloadProtocolID)); - if (tsp_logVerbose) { - log("M3UA_ASPUP received -> M3UA_ASPUP_Ack sent"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("M3UA_ASPUP received in wrong state or the emulation is not in " & - "M3UA server mode"); - } - } - } - // Receives a M3UA_ASPDN message and sends a M3UA_ASPDN_Ack message in - // response. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPDN)) { - if ((v_Entity.commStatus == aSP_Inactive) or - (v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or - (v_Entity.commStatus == aSP_Active)) { - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPDN_Ack)), - tsp_SCTP_PayloadProtocolID)); - if (v_Entity.commStatus == aSP_Active) { - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - } - v_Entity.commStatus := aSP_Down_commUP_Received; - if (tsp_logVerbose) { - log("M3UA_ASPDN received -> ASPDN_Ack sent"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("ASPDN received in wrong state or the emulation is not in M3UA " & - "server mode"); - } - } - } - // The M3UA client receives M3UA_ASPUP_Ack messages from the server. In - // response of a M3UA_ASPUP message sent by the client. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPUP_Ack)) { - if (((v_Entity.commStatus == aSP_Down_ASPUP_Sent) or - (v_Entity.commStatus == aSP_Inactive)) and - not tsp_M3UA_Server_Mode) { - v_Entity.commStatus := aSP_Inactive; - if (tsp_logVerbose) { - log("M3UA_ASPUP_Ack received -> send M3UA_ASPAC"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA(valueof(t_PDU_M3UA_ASPAC(omit, omit, omit))), - tsp_SCTP_PayloadProtocolID)); - // The state changes again after sending the M3UA_ASPAC message. - v_Entity.commStatus := aSP_Inact_ASPAC_Sent; - if (tsp_logVerbose) { - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("M3UA_ASPUP_Ack received in wrong state or the emulation is not " & - "in M3UA client mode"); - } - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_ASPDN_Ack)) { - if (tsp_logVerbose) { - log("Received M3UA_ASPDN_Ack -> discard"); - } - } - // M3UA_ASPAC messages are received on the server side. The server sends a - // M3UA_ASPAC_Ack message back to the client. This step makes the - // association active on both sides. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPAC)) { - if (((v_Entity.commStatus == aSP_Inactive) or - (v_Entity.commStatus == aSP_Inact_ASPAC_Sent)) and - tsp_M3UA_Server_Mode) { - v_Entity.commStatus := aSP_Active; - if (tsp_logVerbose) { - log("M3UA_ASPAC received -> M3UA_ASPAC_Ack sent"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - var integer v_i; - for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) { - log("Sending buffered message #", v_i); - f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]); - } - v_TRANSFERreq_Buffer := {}; - // Send M3UA_ASPAC_Ack. - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA - (valueof - (t_PDU_M3UA_ASPAC_Ack - (pl_PDU_M3UA.m3UA_ASPAC.messageParameters.traffic_Mode_Type, - pl_PDU_M3UA.m3UA_ASPAC.messageParameters.routing_Context))), - tsp_SCTP_PayloadProtocolID)); - // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {}); - } - else { - if (tsp_logVerbose) { - log("M3UA_ASPAC received in wrong state or the emulation is not in " & - "M3UA server mode"); - } - } - } - // The client receives M3UA_ASPAC_Ack messages from the server. The - // association will be activated. The buffered messages should be send here. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPAC_Ack)) { - if (((v_Entity.commStatus == aSP_Inact_ASPAC_Sent) or - (v_Entity.commStatus == aSP_Active)) and - not tsp_M3UA_Server_Mode) { - // MTP3_SP_PORT.send(ASP_MTP3_RESUME : {}); - v_Entity.commStatus := aSP_Active; - if (tsp_logVerbose) { - log("ASPAC_Ack received for association #", v_Entity.sCTP_Assoc_ID); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - var integer v_i; - for (v_i := 0; v_i < sizeof(v_TRANSFERreq_Buffer); v_i := v_i + 1) { - log("Sending buffered message #", v_i); - f_Send_MTP3_TRANSFERreq(v_TRANSFERreq_Buffer[v_i]); - } - v_TRANSFERreq_Buffer := {}; - } - else { - if (tsp_logVerbose) { - log("M3UA_ASPAC_Ack received in wrong state on association #", - v_Entity.sCTP_Assoc_ID, " or the emulation is not in M3UA " & - "client mode"); - } - } - } - // Receives a M3UA_ASPIA message and sends back a M3UA_ASPIA_Ack message in - // response. - else if (ischosen(pl_PDU_M3UA.m3UA_ASPIA)) { - if (v_Entity.commStatus == aSP_Active) { - SCTP_PORT.send - (t_S_SCTP_Send - (v_Entity.sCTP_Assoc_ID, - 0, - enc_PDU_M3UA - (valueof - (t_PDU_M3UA_ASPIA_Ack - (pl_PDU_M3UA.m3UA_ASPIA.messageParameters.routing_Context))), - tsp_SCTP_PayloadProtocolID)); - // MTP3_SP_PORT.send(ASP_MTP3_PAUSE : {}); - v_Entity.commStatus := aSP_Inactive; - if (tsp_logVerbose) { - log("M3UA_ASPIA received -> M3UA_ASPIA_Ack sent"); - log("Association #", v_Entity.sCTP_Assoc_ID, " state changed to: ", - v_Entity.commStatus); - } - } - else { - if (tsp_logVerbose) { - log("M3UA_ASPIA received in wrong state or the emulation is not " & - "running in M3UA server mode"); - } - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_ASPIA_Ack)) { - if (tsp_logVerbose) { - log("Received M3UA_ASPIA_Ack -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_REG_REQ)) { - if (tsp_logVerbose) { - log("Received M3UA_REG_REQ -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_REG_RSP)) { - if (tsp_logVerbose) { - log("Received M3UA_REG_RSP -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DEREG_REQ)) { - if (tsp_logVerbose) { - log("Received M3UA_DEREG_REQ -> discard"); - } - } - else if (ischosen(pl_PDU_M3UA.m3UA_DEREG_RSP)) { - if (tsp_logVerbose) { - log("Received M3UA_DEREG_RSP -> discard"); - } - } -} - -function f_handle_nonM3UA_msg(octetstring pl_PDU) runs on M3UA_CT -{ - if (v_Entity.commStatus == aSP_Active) { - // Send TRANSFERind message. - MTP3_SP_PORT.send(valueof - (tr_ASP_MTP3_TRANSFERind_sio - ('00'B, - '00'B, - '0000'B, - 0, - 0, - 0, - pl_PDU))); - if (tsp_logVerbose) { - log("Non-M3UA DATA received -> TRANSFERind sent"); - } - } - else { - if (tsp_logVerbose) { - log("DATA received, but no user connected -> discard"); - } - } -} - -} diff --git a/MTP3asp_CNL113337/MTP3asp_CNL113337.tpd b/MTP3asp_CNL113337/MTP3asp_CNL113337.tpd deleted file mode 100644 index bc2b89eec..000000000 --- a/MTP3asp_CNL113337/MTP3asp_CNL113337.tpd +++ /dev/null @@ -1,89 +0,0 @@ - - - - MTP3asp_CNL113337 - - - - - - - - - - - - - - - - - - TARGET_TEST - - - - - true - true - true - bin/MTP3asp_CNL113337 - - TARGET_TEST - - Level 3 - Creating object files with dependency update - - - bin - - - - - - - true - true - true - bin/MTP3asp_CNL113337 - - TARGET_TEST - - Level 3 - Creating object files with dependency update - - - bin - - - - - - - true - true - true - bin/MTP3asp_CNL113337 - Level 3 - Creating object files with dependency update - - - bin - - - - - diff --git a/MTP3asp_CNL113337/demo/MTP3asp_PT.cc b/MTP3asp_CNL113337/demo/MTP3asp_PT.cc deleted file mode 100644 index 37bab8f04..000000000 --- a/MTP3asp_CNL113337/demo/MTP3asp_PT.cc +++ /dev/null @@ -1,2952 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2012 // -// // -// 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: MTP3asp_PT.cc -// Description: Implementation of port MTP3asp_PT -// This test port is written to connect TTCN-3 to SEA according -// to specification ITU-T SS7 MTP3, ANSI, TCC, IETF, MPT -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2012-05-24 -// Contact: http://ttcn.ericsson.se - -// IMPORTANT MODIFICATION: -// mtp3_ttc uses ALWAYS 16 bits long SPCs, regardless of mtp3_ni sio - -#include "MTP3asp_PT.hh" - -#include "MTP3asp_Types.hh" -#include "MTP3asp_PortType.hh" - -#include -#include -#include -#include -#include -#include -#include - - -// Constans for M3UA, see rfc 3332 and 2/1056-FCPW 101 86/P-1 -// Constants for decoding M3UA common headers -#define M3UA_VER_OFFS 0 -#define M3UA_CLS_OFFS 2 -#define M3UA_TYP_OFFS 3 -#define M3UA_LGT_OFFS 4 -#define M3UA_MSG_OFFS 8 -#define M3UA_MSG_LENGTH_LENGTH 4 - -// Constants for M3UA protocol -//Msg classes -#define M3UA_MSG_CLS_MGMT 0x00 -#define M3UA_MSG_CLS_TRNSFM 0x01 -#define M3UA_MSG_CLS_SSNM 0x02 -#define M3UA_MSG_CLS_ASPSM 0x03 -#define M3UA_MSG_CLS_ASPTM 0x04 -#define M3UA_MSG_CLS_RKM 0x09 -//Msg types -#define M3UA_MSG_TYP_MGMT_ERR 0x00 -#define M3UA_MSG_TYP_MGMT_NTFY 0x01 - -#define M3UA_MSG_TYP_TRSNFM_DATA 0x01 - -#define M3UA_MSG_TYP_SSNM_DUNA 0x01 -#define M3UA_MSG_TYP_SSNM_DAVA 0x02 -#define M3UA_MSG_TYP_SSNM_DAUD 0x03 -#define M3UA_MSG_TYP_SSNM_SCON 0x04 -#define M3UA_MSG_TYP_SSNM_DUPU 0x05 -#define M3UA_MSG_TYP_SSNM_DRST 0x06 - -#define M3UA_MSG_TYP_ASPSM_ASPUP 0x01 -#define M3UA_MSG_TYP_ASPSM_ASPDN 0x02 -#define M3UA_MSG_TYP_ASPSM_BEAT 0x03 -#define M3UA_MSG_TYP_ASPSM_ASPUPAck 0x04 -#define M3UA_MSG_TYP_ASPSM_ASPDNAck 0x05 -#define M3UA_MSG_TYP_ASPSM_BEATAck 0x06 - -#define M3UA_MSG_TYP_ASPTM_ASPAC 0x01 -#define M3UA_MSG_TYP_ASPTM_ASPIA 0x02 -#define M3UA_MSG_TYP_ASPTM_ASPACAck 0x03 -#define M3UA_MSG_TYP_ASPTM_ASPIAAck 0x04 - -#define M3UA_MSG_TYP_RKM_REGREQ 0x01 -#define M3UA_MSG_TYP_RKM_REGRSP 0x02 -#define M3UA_MSG_TYP_RKM_DEREGREQ 0x03 -#define M3UA_MSG_TYP_RKM_DEREGRESP 0x04 - -//parameters -//common for all adaptation layer -#define PAR_PREFIX_COMMON 0x00 -#define PAR_INFO_STR 0x04 -#define PAR_ROUTING_CTX 0x06 -#define PAR_DIAG_INFO 0x07 -#define PAR_HEART_BEAT 0x09 -#define PAR_TRAFFMODE_T 0x0b -#define PAR_ERROR_CODE 0x0c -#define PAR_STATUS 0x0d -#define PAR_ASP_ID 0x11 -#define PAR_AFFECTED_PC 0x12 -#define PAR_CORREL_ID 0x13 - -//M3UA specific -#define PAR_PREFIX_M3UA 0x02 -#define PAR_NETW_APP 0x00 -#define PAR_USR_O_CAUSE 0x04 -#define PAR_CNGST_IND 0x05 -#define PAR_CNCRD_IND 0x06 -#define PAR_ROUTING_KEY 0x07 -#define PAR_REG_RSLT 0x08 -#define PAR_DEREG_RSLT 0x09 -#define PAR_LOC_RK_ID 0x0a -#define PAR_DPC 0x0b -#define PAR_SI 0x0c -#define PAR_OPC_LIST 0x0e -#define PAR_CIRC_RNG 0x0f -#define PAR_PROT_DATA 0x10 -#define PAR_REG_STAT 0x12 -#define PAR_DEREG_STAT 0x13 - -// error codes: -#define PAR_ERRC_IVER 0x01 -#define PAR_ERRC_UNSMC 0x03 -#define PAR_ERRC_UNSMT 0x04 -#define PAR_ERRC_UNTMT 0x05 -#define PAR_ERRC_UNEM 0x06 -#define PAR_ERRC_PERR 0x07 -#define PAR_ERRC_ISI 0x09 -#define PAR_ERRC_RMB 0x0D -#define PAR_ERRC_ASPIDR 0x0E -#define PAR_ERRC_IASPID 0x0F -#define PAR_ERRC_IPARV 0x11 -#define PAR_ERRC_PARFE 0x12 -#define PAR_ERRC_UPAR 0x13 -#define PAR_ERRC_DSU 0x14 -#define PAR_ERRC_INA 0x15 -#define PAR_ERRC_MP 0x16 -#define PAR_ERRC_IRC 0x19 -#define PAR_ERRC_NCFAS 0x1A - - -// -------------------------- -// Basic Test Port functions -// -------------------------- -using namespace MTP3asp__Types; -namespace MTP3asp__PortType { - -//external functions -//########################################################## - -//f__MTP3__SEA__connect (for MTP3asp_PT) -BOOLEAN f__MTP3__SEA__connect(MTP3asp__PT& portRef, - const CHARSTRING& Hostname,const INTEGER& Port,const CHARSTRING& EntityName,const BOOLEAN& Http) -{ - return f__MTP3__SEA__connect__extern(portRef,Hostname,Port,EntityName,Http); -} -//------------ - -//f__MTP3__SEA__disconnect (for MTP3asp_PT) -BOOLEAN f__MTP3__SEA__disconnect(MTP3asp__PT& portRef) -{ - return f__MTP3__SEA__disconnect__extern(portRef); -} -//------------ - -//f__MTP3__SEA__connect__extern -BOOLEAN f__MTP3__SEA__connect__extern(MTP3asp__PT_PROVIDER& portRef, - const CHARSTRING& Hostname,const INTEGER& Port,const CHARSTRING& EntityName,const BOOLEAN& Http) -{ -#ifndef TARGET_TEST - if (portRef.dynamicConnection && (!(portRef.connectionUp))) - { - delete [] portRef.hostname; - int len = strlen(Hostname); - portRef.hostname = new char[len + 1]; - memcpy(portRef.hostname, Hostname, len + 1); - - portRef.httpport = Port; - - delete [] portRef.entityname; - len = strlen(EntityName); - portRef.entityname = new char[len + 1]; - memcpy(portRef.entityname, EntityName, len + 1); - - if(Http) - portRef.MTP3_open_channel(TRUE); - else - portRef.MTP3_open_channel(FALSE); - - if(portRef.wait_for_open()) - { - portRef.user_connect(); - portRef.connectionUp = TRUE; - return TRUE; - } - } - else -#endif - portRef.log("Dynamic connection feature is not active or already connected."); - return FALSE; -} -//------------ - -//f__MTP3__SEA__disconnect__extern -BOOLEAN f__MTP3__SEA__disconnect__extern(MTP3asp__PT_PROVIDER& portRef) -{ -#ifndef TARGET_TEST - if (portRef.connectionUp) - { - portRef.MTP3_close_connection(); - portRef.connectionUp = FALSE; - return TRUE; - } -#endif - return FALSE; -} -//------------ - -// Test Port constructor -MTP3asp__PT_PROVIDER::MTP3asp__PT_PROVIDER(const char *par_port_name) - : PORT(par_port_name) -{ - MTP_fd=-1; - httpport=-1; - hostname=NULL; - destinationname = NULL; - dynamicConnection = FALSE; - - const char *str="b303d76a-266c-11d4-b8f5-08002090d3da"; - int len = strlen(str); - iid_string= new char[len + 1]; - memcpy(iid_string, str, len + 1); - - entityname=NULL; - Filter=Loop=-1; - Sut_Pc=Tester_Pc=-1; - Ni_is_set = FALSE; - MTPServiceType = MTP3itu; - M3UA_version = 1; - M3UAState = AssocDown; // unnecessary... - mtp3_ni=0; -#ifndef TARGET_TEST - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; -#endif - forward_pause = FALSE; - forward_resume = FALSE; - forward_status = FALSE; -} -//------------ - -// Test Port destructor -MTP3asp__PT_PROVIDER::~MTP3asp__PT_PROVIDER() -{ - delete [] hostname; - delete [] entityname; - delete [] iid_string; -} -//------------ - -// set_parameter -void MTP3asp__PT_PROVIDER::set_parameter(const char *parameter_name, - const char *parameter_value) -{ - log("set_parameter: %s = %s",parameter_name,parameter_value); - if (!strcmp(parameter_name,"Hostname")) - { - delete [] hostname; - int len = strlen(parameter_value); - hostname = new char[len + 1]; - memcpy(hostname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name, "HttpPort")) - { - httpport = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"EntityName")) - { - delete [] entityname; - int len = strlen(parameter_value); - entityname= new char[len + 1]; - memcpy(entityname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name,"DestinationName")) - { - delete [] destinationname; - int len = strlen(parameter_value); - destinationname= new char[len + 1]; - memcpy(destinationname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name,"Filter")) - { - if (!strcmp(parameter_value,"ON")) Filter = MTP3_ON; - else Filter = MTP3_OFF; - } - else if (!strcmp(parameter_name,"Loop")) - { - if (!strcmp(parameter_value,"ON")) Loop = MTP3_ON; - else Loop = MTP3_OFF; - } - else if (!strcmp(parameter_name,"NI")) - { - Ni_is_set = TRUE; - mtp3_ni = atoi(parameter_value); - debuglog("Network indicator is set to %i",mtp3_ni); - } - else if (!strcmp(parameter_name,"SUT_Pc")) - { - Sut_Pc = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"TESTER_Pc")) - { - Tester_Pc = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"M3UA_version")) - { - M3UA_version = atoi(parameter_value); - debuglog("%d",M3UA_version); - } -#ifndef TARGET_TEST - else if (!strcmp(parameter_name,"DynamicConnection")) - { - if (!strcasecmp(parameter_value,"ON")) - { - dynamicConnection = TRUE; - } - } -#endif - else if (!strcmp(parameter_name,"MTP3ServiceType")) - { - if (!strcmp(parameter_value,"TargetM3UA")) - { -#ifndef TARGET_TEST - error("TargetM3UA not supported, since TARGET_TEST not in Makefile"); -#else - log("MTP3ServiceType is set to TargetM3UA"); - user_map_p = &MTP3asp__PT_PROVIDER::Target_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::Target_user_unmap; - MTPServiceType = TargetM3UA; -#endif - } - else if (!strcmp(parameter_value,"TargetSTC")) - { -#ifndef TARGET_TEST - error("TargetSTC not supported, since TARGET_TEST not in Makefile"); -#else - log("MTP3ServiceType is set to TargetSTC"); - user_map_p = &MTP3asp__PT_PROVIDER::TargetSTC_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::Target_user_unmap; //Same as by Target M3UA - MTPServiceType = TargetSTC; -#endif - } -#ifndef TARGET_TEST - else if (!strcmp(parameter_value,"M3UA")) - { //M3UA - log("MTP3ServiceType is set to M3UA"); - interpreter = &MTP3asp__PT_PROVIDER::M3UA_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::M3UA_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::M3UA_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::M3UA_user_unmap; - MTPServiceType = M3UA; - } - else if (!strcmp(parameter_value,"MTP3itu")) - { - log("MTP3ServiceType is set to MTP3itu"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3itu; - } - else if ( !strcmp(parameter_value,"MTP3ansi")) - { - log("MTP3ServiceType is set to MTP3ansi"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3ansi; - } - else if ( !strcmp(parameter_value,"MTP3ttc")) - { - log("MTP3ServiceType is set to MTP3ttc"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3ttc; - } - else if ( !strcmp(parameter_value,"MTP3mpt")) - { - log("MTP3ServiceType is set to MTP3mpt"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3mpt; - } - else if ( !strcmp(parameter_value,"MTP3bttc")) - { - log("MTP3ServiceType is set to MTP3bttc"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3bttc; - } - else if ( !strcmp(parameter_value,"MTP3iup")) - { - log("MTP3ServiceType is set to MTP3iup"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3iup; - } - else if ( !strcmp(parameter_value,"STC")) - { - log("MTP3ServiceType is set to STC"); - interpreter = &MTP3asp__PT_PROVIDER::STC_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::STC_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::STC_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::STC_user_unmap; - MTPServiceType = STC; - } -#endif - else - { - log("Unsupported MTP3ServiceType: %s, falling back to MTP3itu", - parameter_value); - } - } - else if(strcasecmp(parameter_name, "forward_pause") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_pause = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_pause = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else if(strcasecmp(parameter_name, "forward_resume") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_resume = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_resume = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else if(strcasecmp(parameter_name, "forward_status") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_status = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_status = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else -#ifdef TARGET_TEST - if(!parameter_set(parameter_name ,parameter_value)) //TCP parameters -#endif - log("Unsupported parameter: %s", parameter_name); -} -//------------ - -// User map -void MTP3asp__PT_PROVIDER::user_map(const char *system_port) -{ - if (user_map_p == NULL) - error("Parameter MTP3ServiceType should be set to TargetM3UA in TARGET_TEST mode!"); - - (this->*user_map_p)(system_port); -} -//------------ - -// User unmap -void MTP3asp__PT_PROVIDER::user_unmap(const char *system_port) -{ - (this->*user_unmap_p)(system_port); -} -//------------ - -#ifndef TARGET_TEST -// User connect -void MTP3asp__PT_PROVIDER::user_connect() -{ - (this->*user_connect_p)(); -} -//------------ -#endif - -//User start -void MTP3asp__PT_PROVIDER::user_start() -{ debuglog("user start ordered"); -} -//------------ - -//User stop -void MTP3asp__PT_PROVIDER::user_stop() -{ debuglog("User stop ordered"); -} -//------------ - -//Event Handler -void MTP3asp__PT_PROVIDER::Handle_Fd_Event(int fd, - boolean is_readable, boolean is_writable, boolean is_error) -{ - if (MTPServiceType == TargetM3UA ) - { -#ifdef TARGET_TEST - //In case of target Abstract Socket handles the received message - Handle_Socket_Event(fd, is_readable, is_writable, is_error); -#endif - } -#ifndef TARGET_TEST - else - { - int result; - - result = MPH_ProcessConnection(myConnection); - - if (result <= 0) - { - MPH_CloseConnection(myConnection); - if (result == 0) log("Connection closed by peer."); - else log("Error in incoming message."); - } - } -#endif -} - -void MTP3asp__PT_PROVIDER::Handle_Timeout(double time_since_last_call) -{ -#ifdef TARGET_TEST - Handle_Timeout_Event(time_since_last_call); -#endif -} -//------------ - -//Outgoing send -void MTP3asp__PT_PROVIDER::outgoing_send(const ASP__MTP3__TRANSFERreq& send_par) -{ - MTP3__Field__sio sio_field = send_par.sio(); -#ifndef TARGET_TEST - int si=bit2int(sio_field.si()); -#endif - - OCTETSTRING sio_oct = bit2oct(sio_field.ni()+sio_field.prio()+sio_field.si()); - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - - //Message sending by testing on Target - if (MTPServiceType == TargetM3UA) - { -#ifdef TARGET_TEST - OCTETSTRING tcpData = int2oct(1,1); //Message type - tcpData = tcpData + int2oct(send_par.data().lengthof()+15,4); //Length - tcpData = tcpData + sio_oct; - tcpData = tcpData + int2oct(send_par.opc(),4); - tcpData = tcpData + int2oct(send_par.dpc(),4); - tcpData = tcpData + int2oct(send_par.sls(),1); - tcpData = tcpData + send_par.data(); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Transfer Req message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); -#endif - return; - } - //Message sending by testing on Target - if (MTPServiceType == TargetSTC) - { -#ifdef TARGET_TEST - OCTETSTRING tcpData = int2oct(1,1); //Message type - tcpData = tcpData + int2oct(send_par.data().lengthof()+15,4); //Length - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + send_par.data(); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Transfer Req (STC) message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); -#endif - return; - } -#ifndef TARGET_TEST - if (dynamicConnection &&(!connectionUp)) - { - warn("Connection was not activated via function f_M3UA_SEA_connect."); - return; - } - - unsigned int offset; - int MSU_length = send_par.data().lengthof(); - int M3UA_par_length; - int length; - int labellen; // sio+routinglabel length - - switch ( MTPServiceType) - { - case STC: - length = MSU_length; - memcpy(buffer, send_par.data(), send_par.data().lengthof()); - break; - case MTP3iup: - if(si==4) - { - offset = 0; - labellen=6; //ITU-T:sio(1byte) + standard telephony label(5byte) - length = MSU_length+labellen; - buffer[0] = *((const unsigned char*)sio_oct); - SetPointCodesIUP(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - } - else - { - offset = 0; - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - } - break; - case MTP3itu: - offset = 0; - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3ansi: - offset = 0; - labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3ttc: - offset = 0; - //if (mtp3_ni==0){ labellen=5;} - //else { - labellen=6; - //} //TTC: sio(1byte) +routing label(6byte) see ... - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3bttc: - offset = 0; - buffer[offset] = *((const unsigned char*)bttc_oct); - offset += 1; - labellen=7; //routing label(7byte) - length = 1 + MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3mpt: - offset = 0; - if (mtp3_ni==2) - { labellen=8;} //MPT national: sio(1byte) +routing label(7byte) - else - { labellen=5;} //MPT international: sio(1byte) +routing label(4byte) - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, - send_par.data(), send_par.data().lengthof()); - break; - case M3UA : - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 test port debug: Message to be encoded is: {"); - send_par.data().log(); - TTCN_Logger::log_event(" "); - if( M3UAState != AssocActive ) - { - TTCN_Logger::log_event(" M3UAState is not ready to send data. Its state code: %d",AssocActive); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - return; - } - //calculating lengths - M3UA_par_length = MSU_length + 16; // ProtocolData parameter - // header length=16 <== see f - TTCN_Logger::log_event(", Adjusted M3UA_par_length to %d to support 16 octets M3UA param header",M3UA_par_length); - length = 8 + M3UA_par_length; //msg length = header+par - TTCN_Logger::log_event(", M3UA MSU_length is %d ==> there should be %d padding octets", MSU_length, 4-(MSU_length%4)); - if (MSU_length%4) { //should be padded to be multiple of 4 octets - length += 4 - (MSU_length%4); //padding shall be counted in msg - //length, but not in par_length - } - TTCN_Logger::log_event(", Set msg length (which includes 8 octets M3UA hdr) to %d ",length); - - //filling the first part of the buffer - //common msg hdr ====================================== - buffer[0] = M3UA_version; - buffer[1] = 0x00; //spare - buffer[2] = M3UA_MSG_CLS_TRNSFM; // msg class - buffer[3] = M3UA_MSG_TYP_TRSNFM_DATA; // msg type - encode_32b_int(buffer+4, length); //msg length, 4 bytes - //ProtocolData parameter header========================= - //tag - buffer[M3UA_MSG_OFFS] = PAR_PREFIX_M3UA; //par. tag 1st octet - buffer[M3UA_MSG_OFFS+1] = PAR_PROT_DATA; // par tag 2nd octet - //length, NOTE: should not contain the padding bytes! - encode_16b_int(buffer+M3UA_MSG_OFFS+2,M3UA_par_length); - //OPC,DPC - encode_32b_int(buffer+M3UA_MSG_OFFS+4,send_par.opc()); - encode_32b_int(buffer+M3UA_MSG_OFFS+8,send_par.dpc()); - //SI, NI, MP, SLS - buffer[M3UA_MSG_OFFS+12] = bit2int(sio_field.si()); // SI LSb aligned - buffer[M3UA_MSG_OFFS+13] = bit2int(sio_field.ni()); // NI LSb aligned - buffer[M3UA_MSG_OFFS+14] = bit2int(sio_field.prio()); //MP LSb - //aligned - buffer[M3UA_MSG_OFFS+15] = 0xFF & send_par.sls(); //SLS - // finally the MTP3 MSU itself.... - offset = M3UA_MSG_OFFS + 16; - TTCN_Logger::log_event(", buffer offset is now set to %d", offset); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - //append MTP3 MSU - memcpy(buffer + offset, send_par.data(), send_par.data().lengthof()); - - //padding - for (int ii = 0; ii< (MSU_length%4); ++ii) buffer[offset+MSU_length+ii]= 0x00; - break; - default: - error("Invalid MTP3ServiceType setting!"); - } - if (TTCN_Logger::log_this_event(TTCN_DEBUG)) - { - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("The encoded buffer is: {"); - OCTETSTRING(length, buffer).log(); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - } - send_msg(buffer, length); -#endif -} -//------------ - -void MTP3asp__PT_PROVIDER::log(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::warn(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_WARNING); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::debuglog(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::error(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_ERROR); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); - TTCN_error("Fatal error in MTP3 Test Port %s.", get_name()); -} -//------------ - -void MTP3asp__PT_PROVIDER::close_log_event() -{ - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); -} -//------------ - - -#ifndef TARGET_TEST -// -------------------------------------------- -// Functions and definitions for test with SEA -// -------------------------------------------- - -// Functions of MPH toolkit -// --------------------------- -void connectCallback(CONNECTION* con, int channel, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Opening channel succeeded " - "(channel number is %u)", channel); - ((MTP3asp__PT_PROVIDER *)clientData)->set_channel(channel); - if(((MTP3asp__PT_PROVIDER *)clientData)->dynamicConnection) - ((MTP3asp__PT_PROVIDER *)clientData)->conn_state = 1; -} - -void messageCallback(CONNECTION* con, int channel, int length, - unsigned char *msg, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Incoming message from channel: %d",channel); - ((MTP3asp__PT_PROVIDER *)clientData)->doInterpret(msg,length,channel,con); -} - -void closeCallback(CONNECTION* con, int channel, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Closed channel: %d", channel); -} - -void errorCallback(CONNECTION* con, char *name, char *errorMessage, - void *clientData) -{ - if(((MTP3asp__PT_PROVIDER *)clientData)->dynamicConnection) - { - ((MTP3asp__PT_PROVIDER *)clientData)->log("Opening channel %s failed: %s", name, errorMessage); - ((MTP3asp__PT_PROVIDER *)clientData)->conn_state = 2; - } - else - ((MTP3asp__PT_PROVIDER *)clientData)->error("Opening channel %s failed: %s", - name, errorMessage); -} -//------------ - -//MTP3_open_channel -void MTP3asp__PT_PROVIDER::MTP3_open_channel(boolean http) -{ - int result; - int Mphport; - char *perrorString; - if( Loop == MTP3_ON ) - { - MTP_fd=-1; - myConnection = NULL; - log("MTP3_open_channel finished for LOOP"); - return; - } - - if(http) - { - Mphport = MPH_GetMphPort(hostname,httpport,&perrorString); - } - else - { - Mphport = httpport; - } - - if (Mphport == -1) - error("GetMphPort failed: %s", *perrorString); - - result = MPH_StringToIid(iid_string, &iid); - if (result == -1) - error("Converting %s to MPH_IID failed.", iid_string); - - myConnection = MPH_OpenConnection(hostname, Mphport); - if (myConnection == NULL) - error("Opening connection to %s:%d failed.", hostname, Mphport); - - MPH_OpenChannel(myConnection, - entityname, - &iid, - connectCallback, - messageCallback, - closeCallback, - errorCallback, - this); - - MTP_fd = MPH_GetConnectionFd(myConnection); - if (MTP_fd != -1) - Handler_Add_Fd_Read(MTP_fd); - else - error("Incorrect file descriptor: %d.", MTP_fd); -} -//------------ - -// MTP3_close_connection -void MTP3asp__PT_PROVIDER::MTP3_close_connection() -{ - MPH_CloseConnection(myConnection); - Handler_Remove_Fd_Read(MTP_fd); - close( MTP_fd ); - //Uninstall_Handler(); // Unnecessary if only socket MTP_fd is in use -} -//------------ - -// wait_for_open -boolean MTP3asp__PT_PROVIDER::wait_for_open() -{ - conn_state = 0; - while(conn_state==0) - { - pollfd pollFd = { MTP_fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) { - log("MPH channel opening time out"); - return FALSE; - } - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) { - log("MPH channel opening error (%d)", (nEvents < 0) ? errno : 0); - return FALSE; - } - Handle_Fd_Event(MTP_fd, TRUE, FALSE, FALSE); - } - if(conn_state == 1) //connectCallback received - { - conn_state = 0; - return TRUE; - } - else //errorCallback received - { - conn_state = 0; - return FALSE; - } -} -//------------ - -//send msg -void MTP3asp__PT_PROVIDER::send_msg(unsigned char *outbuff, int length) -{ - OCTETSTRING buff(length,outbuff); - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3/M3UA Test Port (%s): {", get_name()); - TTCN_Logger::log_event("outgoing buffer= "); - buff.log(); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - if (Loop == MTP3_ON) - { - log("Message looped back"); - doInterpret(outbuff, length, channel, myConnection); - } else - { - MPH_SendMessage(myConnection,channel,length,outbuff); - log("Message sent on channel %d", channel); - } -} -//------------ - -//Check TestPortVariables -void MTP3asp__PT_PROVIDER::Check_TestPort_Variables() -{ - if(!dynamicConnection) - { - if (httpport==-1) error("Parameter HttpPort is not set."); - if (hostname==NULL) error("Parameter Hostname is not set."); - if (entityname==NULL) error("Parameter EntityName is not set."); - } - if (Filter==-1) error("Parameter Filter is not set."); - if (Loop==-1) error("Parameter Loop is not set."); - if (Sut_Pc==-1) error("Parameter SUT_Pc is not set."); - if (Tester_Pc==-1) error("Parameter TESTER_Pc is not set."); - if (!Ni_is_set) error("Parameter NI is not set."); -} -//------------ - -// ------------------------------------------------- -// STC Functions and definitions for test with SEA -// ------------------------------------------------- -void MTP3asp__PT_PROVIDER::Check_TestPort_Variables_STC() -{ - if(!dynamicConnection) - { - if (httpport==-1) error("Parameter HttpPort is not set."); - if (hostname==NULL) error("Parameter Hostname is not set."); - if (entityname==NULL) error("Parameter EntityName is not set."); - } -} -//------------ - -//STC user map -void MTP3asp__PT_PROVIDER::STC_user_map(const char *system_port) -{ - debuglog("Function STC_user_map started"); - Check_TestPort_Variables_STC(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - STC_user_connect(); - } -} -//------------ - -//STC user connect -void MTP3asp__PT_PROVIDER::STC_user_connect() -{ -} - -//STC user unmap -void MTP3asp__PT_PROVIDER::STC_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} -//------------ - -//STC interpreter -void MTP3asp__PT_PROVIDER::STC_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { - log("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { - log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { - log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - recv_sio.ni()= int2bit(0,2); - recv_sio.prio()= int2bit(0,2); - recv_sio.si()= int2bit(0,4); - recv_msg.sio() = recv_sio; - recv_msg.sls() = 0; - recv_msg.opc() = 0; - recv_msg.dpc() = 0; - recv_msg.data() = OCTETSTRING(length, &inbuffer[0]); - incoming_message( recv_msg ); -} - -// ------------------------------------------------- -// MTP3 Functions and definitions for test with SEA -// ------------------------------------------------- - -// SLTM messages for MTP3 -// ----------------------- -unsigned char ttcn_in_sltm[] = { - 'T','T','C','N','-','3',' ','E','x','e','c','u','t','o','r'}; - -const int sizeof_ttcn_in_sltm=15; - -// ITU: -unsigned char sltm_msg_itu[] = -{ - 0x1, //SIO /'test & maint' see Q.704 /14.2.1 => 0x81 suggested !!! - 0x0, 0x0, 0x0, 0x0, //4 bytes for label (dpc, opc,sls) - 0x11, //Heading code ITU, see Q.707/5.4 - 0xF0, //spare+Length of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_itu=7+15; - -// ANSI: -unsigned char sltm_msg_ansi[]= -{ - 0xB1, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, // 7 bytes for label - 0x11, // Heading Code ANSI T1.111.7-2001 - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_ansi=10+15; - -// TTC: -unsigned char sltm_msg_ttc_national[]= -{ - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0, // 6 bytes for label TO BE CONT!!! - 0x11, // Heading Code - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_ttc_national=9+15; - -// BTTC: -unsigned char sltm_msg_bttc_national[]= -{ - 0x0, // extra octet, ignored - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0, // 6 bytes for label TO BE CONT!!! - 0x23, // Heading Code - 'T', 'T' -}; -const int sizeof_sltm_msg_bttc_national=1+8+2; - -// MPT: -unsigned char sltm_msg_mpt_national[]= -{ - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, // 7 bytes for label - 0x11, // Heading Code - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_mpt_national=10+15; -//------------ - - -// coder functions for MTP3 -// ------------------------- -// unsigned int<-> unsigned char array -// Integer encode/decode functions that will encode/decode from/to -// Result: Least Significant Byte first (in lowest address) = LSB = Little Endian -void MTP3asp__PT_PROVIDER::encode_56bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; - from >>= 8; - to[5] = from & 0xFF; - from >>= 8; - to[6] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_56bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32)| - ((ull) from[5] << 40)| - ((ull) from[6] << 48); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_48bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; - from >>= 8; - to[5] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_48bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32)| - ((ull) from[5] << 40); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_40bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_40bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_32bLSB_int(unsigned char *to, unsigned int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_32bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8) | (from[2] << 16) | (from[3] << 24); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_24bLSB_int(unsigned char *to, int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_24bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8) | (from[2] << 16); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_16bLSB_int(unsigned char *to, int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_16bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8); -} -//------------ - -//MTP3 user map -void MTP3asp__PT_PROVIDER::MTP3_user_map(const char *system_port) -{ - debuglog("Function MTP3_user_map started"); - Check_TestPort_Variables(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - MTP3_user_connect(); - } - debuglog("Function MTP3_user_map finished"); -} -//------------ - -//MTP3 user connect -void MTP3asp__PT_PROVIDER::MTP3_user_connect() -{ - // Sending out an SLTM message: - unsigned char * sltm_msg; - unsigned int offset = 0; - int sizeof_msg; - switch( MTPServiceType) - { - case MTP3itu: - case MTP3iup: - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - break; - case MTP3ansi: - sltm_msg=sltm_msg_ansi; - sizeof_msg=sizeof_sltm_ansi; - break; - case MTP3ttc: - /* if (mtp3_ni == 0){ - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - } - else { - */ - sltm_msg=sltm_msg_ttc_national; - sizeof_msg=sizeof_sltm_msg_ttc_national; - // } - break; - case MTP3bttc: - sltm_msg=sltm_msg_bttc_national; - sizeof_msg=sizeof_sltm_msg_bttc_national; - offset = 1; - break; - case MTP3mpt: - if (mtp3_ni == 2) - { - sltm_msg = sltm_msg_mpt_national; - sizeof_msg = sizeof_sltm_msg_mpt_national; - } else - { - sltm_msg = sltm_msg_itu; - sizeof_msg = sizeof_sltm_msg_itu; - } - break; - default: - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - break; - } - stored_bttc_octet = 0; - unsigned char sio = ((unsigned char) mtp3_ni) << 6; - - if (Ni_is_set) - { sltm_msg[0+offset] = sio | 0x1; } - else - { sltm_msg[0+offset] = 0x1; };//SIO /'test & maint' see Q.704 /14.2.1 => 0x81 suggested !!! - - SetPointCodes(0, Tester_Pc, Sut_Pc, sltm_msg + 1 +offset); // common for ITU, ANSI and TTC - log("MTP3/SLTM message sending..."); - send_msg(sltm_msg, sizeof_msg); -} -//MTP3 user unmap -void MTP3asp__PT_PROVIDER::MTP3_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} - -//MTP3 interpreter -void MTP3asp__PT_PROVIDER::MTP3_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { - log("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { - log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { - log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - unsigned int offset = 0; - if ( MTPServiceType==MTP3bttc ) - { - stored_bttc_octet = inbuffer[0]; - offset = 1; - } - int labellen; // sio+routinglabel length - int rec_ni = (inbuffer[offset]) >> 6; //network indicator - if (rec_ni != mtp3_ni) - error("Received NI is different from sent NI."); - - unsigned char sio = inbuffer[offset]; - unsigned int si = sio&0x0F; - - if ( MTPServiceType==MTP3itu ) - { labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - } - else if ( MTPServiceType==MTP3iup ) - { - if(si==4) - labellen=6; //ITU-T:sio(1byte) + standard telephony label(5byte) - else - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - } - else if ( MTPServiceType==MTP3ansi ) - { labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - } - else if (MTPServiceType==MTP3ttc) - { labellen=6; //new (2004-03-02): 6= sio(1byte)+ routing label(5bytes) - } - else if (MTPServiceType==MTP3mpt) - { - if ( mtp3_ni == 2) - {labellen=8;} //MPT national: sio(1byte) +routing label(7byte) - else - {labellen=5;} //MPT international: sio(1byte) +routing label(4byte) - } - else if (MTPServiceType==MTP3bttc) - { labellen=7; //7= sio(1byte)+ routing label(6bytes) - } - else - { log("incorrect MTPServiceType - programming error-> packet dropped"); - return; - } - - // checking SIO field (first incoming byte) - management or test message - switch (si) - { - case 0: processing_MTP3_management_msg(inbuffer+offset,length-offset); - return; - case 1: //MTP3itu - case 2: processing_MTP3_test_msg(inbuffer+offset,length-offset); //MTP3ansi - return; - default: - break; - } - - // filling up TTCN structure - if ((Loop==MTP3_ON) || (!Filter) || (Filter&&Check_PcMatch(Sut_Pc,Tester_Pc,&inbuffer[offset+1]))) - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - BITSTRING sio_bit = oct2bit(OCTETSTRING(1,inbuffer+offset)); - recv_sio.ni()= substr(sio_bit,0,2); - recv_sio.prio()= substr(sio_bit,2,2); - recv_sio.si()= substr(sio_bit,4,4); - recv_msg.sio() = recv_sio; - unsigned int sls,opc,dpc; - if ( (MTPServiceType==MTP3iup) && (si==4) ) - GetPointCodesIUP(sls,opc,dpc,&inbuffer[1]); - else - GetPointCodes(sls,opc,dpc,&inbuffer[offset+1]); - recv_msg.sls() = sls; - recv_msg.opc() = opc; - recv_msg.dpc() = dpc; - int len; - len= length-labellen-offset; //len= length-labellen; - recv_msg.data() = OCTETSTRING(len, &inbuffer[offset+labellen]); - incoming_message( recv_msg ); - } - else - { log("The rooting label (OPC, DPC) not matched with the filter setting -> packet dropped."); - return; - } -} - -void MTP3asp__PT_PROVIDER::processing_MTP3_management_msg(unsigned char* inbuff,int len) -{ - int outlen=0; - int labellen; // sio+routinglabel length - int chm_addlen; // (Changeback) additional length = Heading Code + SLC+ (changeback codes) - int mim_addlen; // (MIM) -"- - unsigned int offset = 0; - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - - if ( MTPServiceType==MTP3itu || MTPServiceType==MTP3iup) - { labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - chm_addlen = 2; - mim_addlen = 1; - } - else if ( MTPServiceType==MTP3ansi ) - { labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T.1.111.4 - chm_addlen = 3; - mim_addlen = 2; - } - else if (MTPServiceType==MTP3ttc) - { //if ( mtp3_ni == 0 ) { labellen=5;} //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - //else { - labellen=6; - //} //sio(1byte)+ routing label(6bytes) see 3/15517-FAY 112 011/2 or jt-q704. - } - else if (MTPServiceType==MTP3mpt) - { if ( mtp3_ni == 2 ) { labellen=8; } - else { labellen=5; } - chm_addlen = 2; - mim_addlen = 1; - } - else if (MTPServiceType==MTP3bttc) - { labellen=7;//sio(1byte)+routing label(6bytes) see 3/15517-FAY 112 011/2 or jt-q704 - offset = 1; - } - else - { log("incorrect MTPServiceType- programming error-> packet dropped"); - return; - } - - if (MTPServiceType==MTP3bttc) - { - buffer[0]=*((const unsigned char*)bttc_oct); //additional stored octet in front - buffer[1]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[2],&inbuff[1],len)) - { log("incorrect incoming management message -> packet dropped."); - return; - } - } - else - { - buffer[0]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[1],&inbuff[1],len)) - { log("incorrect incoming management message -> packet dropped."); - return; - } - } - - // Changeover & changeback(CHM) see ITU: Q.704/15.4.1 ANSI: T.1.111.4/15.2-4 - if (inbuff[labellen]==0x51) //CBD - { - outlen=labellen+chm_addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x61; // Heading Code <- CBA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],len-labellen-1); - outlen = len; - } - } - else if (inbuff[labellen]==0x16) //MIM H0=6=Mgmt inhibit msg, H1=1=LIN - { - outlen=labellen+mim_addlen; - if (len packet dropped."); - return; - } - else - { - buffer[offset + labellen]= 0x56; // LIN -> LID ; LID = link inhibit denied - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); //SLC+spare+... - outlen = len; - } - } - else if (inbuff[labellen]==0x17 && (MTPServiceType==MTP3iup)) - { - if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - return; - } - -/* else if (inbuff[labellen]==0x17 && (MTPServiceType==MTP3iup)) //TRM H0=7, H1=1 : TRA - { - outlen=labellen+1; - if (len packet dropped."); - return; - } - else - { - outlen = len; - } - }*/ - else - { log("This management message type is not supported -> packet dropped."); - return; - } - - // send message - log("function processing_MTP3_management_msg sends a msg"); - send_msg(buffer, outlen+offset); -} - -// processing MTP3 test msg -// Signalling link test message handling according to Q.707 (ITU) and T1.111.7-2001 (ANSI) -void MTP3asp__PT_PROVIDER::processing_MTP3_test_msg(unsigned char* inbuff,int len) -{ - int outlen=0; - int labellen; // sio+routinglabel length - int addlen; //Heading Code+length indicator - //unsigned int ni; //network indicator - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - unsigned int offset = 0; - if ( MTPServiceType==MTP3itu || MTPServiceType==MTP3iup) - { - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - addlen = 2; //HC(1 byte)+length ind(1 byte) see Q.707/5.8 - } - else if ( MTPServiceType==MTP3ansi ) - { - labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - addlen = 2; //HC(1byte) +(length ind+SLC(1byte)) see T1.111.7-2001/5 - } - else if (MTPServiceType==MTP3ttc) - { - /* if (mtp3_ni == 0) { - debuglog("processing_MTP3_test_msg/TTC (Japanese) international"); - labellen=5; //TTC (Japanese) international - addlen=2; - } else { - */ - labellen=6; // previously 7 - // TTC national [ 56bits=sio(1byte)+routing label ] - // r.label= dpc(2bytes)+opc(2bytes)+sls(4bit)+12bits (?) - addlen=2; - //} - } - else if (MTPServiceType==MTP3mpt) - { - if (mtp3_ni == 2) - { labellen=8; //MPT national - addlen=2; - } - else - { labellen=5; // MPT international - addlen=2; - } - } - else if (MTPServiceType==MTP3bttc) - { - labellen=7; - addlen=2; - offset = 1; - } - else - { log("incorrect MTPServiceType - programming error-> packet dropped"); - return; - } - - if (MTPServiceType==MTP3bttc) - { - buffer[0]=*((const unsigned char*)bttc_oct); //additional stored octet in front - buffer[1]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[2],&inbuff[1],len)) - { - log("incorrect incoming test message -> packet dropped."); - return; - } - } - else - { - buffer[0]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[1],&inbuff[1],len)) - { - log("incorrect incoming test message -> packet dropped."); - return; - } - } - - // Test message handling: SLTM->SLTA, SRT->SRA, SLTA->TRA, others only logged - debuglog("\n==>Test message handling: msg type:%x\n", inbuff[labellen] ); // temporary - switch( inbuff[labellen] ) - { - case 0x11: //SLTM - log("MTP3/SLTM message received"); - outlen=labellen+addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x21; // SLTA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); - outlen = len; - } - break; - case 0x21: //SLTA - if(!strncmp((const char *)(inbuff+labellen+addlen),(const char *)ttcn_in_sltm,sizeof_ttcn_in_sltm)) - { - log("MTP3/SLTA message received for SLTM sent by Test Port-> TRA message sent"); - buffer[offset]--; - buffer[offset + labellen]= 0x17; // TRA - outlen = labellen+1; - return; -// if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - } - else - { - log("MTP3/SLTA message received -> packet dropped"); - return; - } - break; - case 0x23: // TTC (Japanese) SRT (Signalling Routing Test signal) - log("MTP3ttc/SRT message received"); - outlen=labellen+addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x84; // TTC (Japanese) SRA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); - outlen = len; - } - break; - case 0x84: // TTC (Japanese) SRA (Signalling Routing test Ack signal) - log("MTP3ttc/SRA message received -> packet dropped"); - return; - default: - log("This management message type is not supported -> packet dropped "); - return; - } - - // send message - log("function processing_MTP3_test_msg sends a message"); - send_msg( buffer,outlen+offset); -} - -// Point Code Manipulation (Get/Set/Change) -// ------------------------------------------------- -void MTP3asp__PT_PROVIDER::GetPointCodes(unsigned int &sls,unsigned int &opc,unsigned int &dpc, unsigned char* msg) -{ - unsigned int label; - sls=0; opc=0; dpc=0; - unsigned long long int Label; - - switch( MTPServiceType) - { - case MTP3itu: - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3itu"); - break; - case MTP3iup: - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3iup"); - break; - case MTP3ansi: - Label=decode_56bLSB_int(msg); - sls = (Label >> 48) & 0xFF; //sls = (Label&0x00FF000000000000)>>48; - opc = (Label >> 24) & 0xFFFFFF;//opc = (Label&0x0000FFFFFF000000)>>24; - dpc = Label & 0xFFFFFF; //dpc = (Label&0x0000000000FFFFFF); - debuglog("Function GetPointCodes called for service type MTP3ansi"); - break; - case MTP3ttc: - /* - if( mtp3_ni == 0) - { - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; - debuglog("Function GetPointCodes called for service type MTP3ttc/international"); - } else - {*/ - Label=decode_48bLSB_int(msg); //0x010203040506 - sls = (Label>>32)&0xF; // sls = (Label&0x000F00000000)>>32; // only 4 bits!!! - opc = (Label>>16)&0xFFFF;//opc = (Label&0x0000FFFF0000)>>16; - dpc = Label&0xFFFF; //dpc = (Label&0x00000000FFFF); - debuglog("Function GetPointCodes called for service type MTP3ttc/national"); - //} - break; - case MTP3bttc: - Label=decode_48bLSB_int(msg); - sls = (Label>>32)&0xF; // sls = (Label&0x000F00000000)>>32; // only 4 bits!!! - opc = (Label>>16)&0xFFFF;//opc = (Label&0x0000FFFF0000)>>16; - dpc = Label&0xFFFF; //dpc = (Label&0x00000000FFFF); - debuglog("Function GetPointCodes called for service type MTP3bttc/national"); - break; - case MTP3mpt: - if( mtp3_ni == 2) - { - Label=decode_56bLSB_int(msg); - sls = (Label >> 48) & 0xFF; //sls = (Label&0x00FF000000000000)>>48; - opc = (Label >> 24) & 0xFFFFFF;//opc = (Label&0x0000FFFFFF000000)>>24; - dpc = Label & 0xFFFFFF; //dpc = (Label&0x0000000000FFFFFF); - debuglog("Function GetPointCodes called for service type MTP3mpt(nat)"); - } - else - { - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3mpt(int)"); - } - break; - default: - break; - } - debuglog("sls:%u opc:%u, dpc:%u",sls,opc,dpc); -} -//------------ - -void MTP3asp__PT_PROVIDER::GetPointCodesIUP(unsigned int &cic,unsigned int &opc,unsigned int &dpc, unsigned char* msg) -{ - debuglog("Function GetPointCodesIUP called"); - cic=0; opc=0; dpc=0; - unsigned long long int Label; - Label=decode_40bLSB_int(msg); //0x0102030405 - cic = (Label>>28)&0xFFF; //cic = (label&0xFFF0000000)>>28; - opc = (Label>>14)&0x3FFF; //opc = (label&0x000FFFC000)>>14; - dpc = Label&0x3FFF; //dpc = (label&0x0000003FFF); - debuglog("cic:%u opc:%u, dpc:%u",cic,opc,dpc); -} - -void MTP3asp__PT_PROVIDER::SetPointCodes(unsigned int sls,unsigned int opc,unsigned int dpc, unsigned char* msg) -{ - unsigned long long int Sls,Opc,Dpc; - - switch( MTPServiceType) - { - case MTP3itu: - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3itu"); - break; - case MTP3iup: - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3iup"); - break; - case MTP3ansi: - Sls=sls; Opc=opc; Dpc=dpc; - encode_56bLSB_int( msg, ((Sls<<48)|(Opc<<24)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3ansi"); - break; - case MTP3ttc: - /* if ( mtp3_ni == 0 ){ - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3ttc/international"); - } else { - */ - Sls=sls; Opc=opc; Dpc=dpc; - encode_48bLSB_int( msg, ((Sls<<32)|(Opc<<16)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3ttc/national"); - //} - break; - case MTP3bttc: - Sls=sls; Opc=opc; Dpc=dpc; - encode_48bLSB_int( msg, ((Sls<<32)|(Opc<<16)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3bttc/national"); - break; - case MTP3mpt: - if ( mtp3_ni == 2 ) - { Sls=sls; Opc=opc; Dpc=dpc; - encode_56bLSB_int( msg, ((Sls<<48)|(Opc<<24)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3mpt(nat)"); - } - else - { encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3mpt(int)"); - } - break; - default: - break; - } -} -//------------ - -void MTP3asp__PT_PROVIDER::SetPointCodesIUP(unsigned int cic,unsigned int opc,unsigned int dpc, unsigned char* msg) -{ - unsigned long long int Cic,Opc,Dpc; - Cic=cic; Opc=opc; Dpc=dpc; - debuglog("Function SetPointCodesIUP called"); - encode_40bLSB_int( msg, ((Cic<<28)|(Opc<<14)|Dpc )); -} - -//Changes the Point codes: dpc<->opc ie. destination <->orig -// inbuff starts from dpc i.e doesn't contain sio !!!! -int MTP3asp__PT_PROVIDER::ChangePointCodes(unsigned char* outbuff, unsigned char *inbuff, int len) -{ - switch( MTPServiceType) - { - case MTP3itu: - case MTP3iup: - if (len<5) - { warn("MTP3itu:len<5. Too short message!"); return 0; }; - break; - case MTP3ansi: - if (len<9 ) return 0; - break; - case MTP3ttc: - //if ( mtp3_ni == 0 && len<5) - //{ warn("MTP3ttc:len<5. Too short message!"); return 0; } - //else - if (len<6) - { warn("MTP3ttc:len<6. Too short message!"); return 0; } - break; - case MTP3bttc: - if (len<7) - { warn("MTP3bttc:len<7. Too short message!"); return 0; } - break; - case MTP3mpt: - if ( mtp3_ni == 2 && len<8) - { warn("MTP3mpt:len<8. Too short message!"); return 0; } - else if (len<5) - { warn("MTP3mpt:len<5. Too short message!"); return 0; } - break; - default: - warn("Unknown MTPServiceType!!!"); - break; - } - unsigned int sls,opc,dpc; - GetPointCodes(sls,opc,dpc,inbuff); - SetPointCodes(sls,dpc,opc,outbuff); - return 1; -} -//------------ - -int MTP3asp__PT_PROVIDER::Check_PcMatch(unsigned int opc, unsigned int dpc, unsigned char *buff) -{ - unsigned int temp_opc,temp_dpc,temp_sls; - - GetPointCodes(temp_sls,temp_opc,temp_dpc,buff); - if ( (temp_opc == opc) && (temp_dpc == dpc) ) return 1; - return 0; -} -//------------ - - -// ------------------------------------------------- -// M3UA Functions and definitions for test with SEA -// ------------------------------------------------- - -// Structures for M3UA -static unsigned char aspup_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class: ASPSM - M3UA_MSG_TYP_ASPSM_ASPUP, //Msg type: ASPUP - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets - // ,PAR_PREFIX_COMMON, //optional Info string tag, in included, then msg - // PAR_INFO_STR //msg length should be +20, that is 28=0x1c - // 0x00,0x0f, // length: "TTCN-3 Executor" is 15 chars - // 'T', 'T', 'C', 'N', - // '-', '3', ' ', 'E', - // 'x', 'e', 'c', 'u', - // 't', 'o', 'r', 0x00 //las octet is padding -}; -const int sizeof_aspup_msg = 8; - -static unsigned char aspupack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class: ASPSM - M3UA_MSG_TYP_ASPSM_ASPUPAck, //Msg type: ASPUP - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspupack_msg = 8; - -static unsigned char aspac_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPAC, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspac_msg = 8; - -// ASP Active Acknowledge msg: -static unsigned char aspac_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPACAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspac_ack_msg = 8; - -static unsigned char aspia_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPIAAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspia_ack_msg = 8; - -// ASP DOWN Acknowledge msg: -static unsigned char aspdn_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class - M3UA_MSG_TYP_ASPSM_ASPDNAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspdn_ack_msg = 8; - -//ASP Destination Available msg: -static unsigned char dava_1apc_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - //or updated doc 2/1056-FCPW 101 86/P-1 - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_SSNM, //Msg class - M3UA_MSG_TYP_SSNM_DAVA, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x10, // length ends, 16 octets - //Affected point code - PAR_PREFIX_COMMON, - PAR_AFFECTED_PC, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // point code placeholder begins - 0x00, // - 0x00, // - 0x00 // point code placeholder ends -}; -const int sizeof_dava_1apc_msg = 16; - -static unsigned char duna_1apc_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_SSNM, //Msg class - M3UA_MSG_TYP_SSNM_DUNA, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x10, // length ends, 16 octets - //Affected point code - PAR_PREFIX_COMMON, - PAR_AFFECTED_PC, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // point code placeholder begins - 0x00, // - 0x00, // - 0x00 // point code placeholder ends -}; -const int sizeof_duna_1apc_msg = 16; - -static unsigned char error_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_MGMT, //Msg class - M3UA_MSG_TYP_MGMT_ERR, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x18, // length ends, 16+8 octets - // Error code field: - PAR_PREFIX_COMMON, - PAR_ERROR_CODE, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // error code placeholder begins (M3UA_MSG_OFFS+4) - 0x00, // - 0x00, // - 0x00, // error code placeholder ends - // additional field: - 0x00, // M3UA_MSG_OFFS+8 - 0x00, // Routing context or Network Appearanance or APC or DI = error_code_id - 0x00, // par length begins (2 octets) - 0x08, // length ends, 8 octets - 0x00, // value placeholder begins M3UA_MSG_OFFS+12 - 0x00, // - 0x00, // - 0x00 // value place holder ends -}; -const int sizeof_error_msg = 24; - -void MTP3asp__PT_PROVIDER::M3UA_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} -//------------ - -void MTP3asp__PT_PROVIDER::M3UA_user_map(const char *system_port) -{ - M3UAState = AssocDown; - Check_TestPort_Variables(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - M3UA_user_connect(); - } -} -//------------ - -void MTP3asp__PT_PROVIDER::M3UA_user_connect() -{ - M3UAState = AssocEstabl; - // Sending out an ASPUP message - log("Message ASPUP will be sent"); - send_msg(aspup_msg, sizeof_aspup_msg); - // NOTE: the ASPUPAck will be handled by M3UA_interpreter, which - // also will take care of sending ASPAC upon receiving the ASPUPAck -} -//------------ - -// M3UA_interpreter -void MTP3asp__PT_PROVIDER::M3UA_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { warn("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - // version checking - if ( inbuffer[M3UA_VER_OFFS] != M3UA_version ) - { warn("Incompatible M3UA protocol version in header -> packet dropped"); - return; - } - - //length checking - unsigned int indicated_length = decode_32b_int(inbuffer + M3UA_LGT_OFFS ); - if ( indicated_length != (unsigned)length) - warn("Length in common header (%d) mismatches received buffer length (%d)," - "Assuming that it is because of the omission of final parameter padding" - "in indicated length",indicated_length, length); - - // checking MSG class - int unprocessed_chars = 0; - switch (inbuffer[M3UA_CLS_OFFS]) - { - case M3UA_MSG_CLS_MGMT: - unprocessed_chars = processing_M3UA_MGMT_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_TRNSFM : - unprocessed_chars = processing_M3UA_Transfer_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_SSNM : - unprocessed_chars = processing_M3UA_SSNM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_ASPSM : - unprocessed_chars = processing_M3UA_ASPSM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_ASPTM : - unprocessed_chars = processing_M3UA_ASPTM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_RKM : - unprocessed_chars = processing_M3UA_RKM_msg(inbuffer, length); - break; - default: - unprocessed_chars = processing_M3UA_unsupported_msg_class(inbuffer, length); - break; - } - debuglog("%d chars remained unprocessed (might be due to padding)", unprocessed_chars); -} -//------------ - -//processing M3UA MGMT msg -int MTP3asp__PT_PROVIDER::processing_M3UA_MGMT_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_MGMT_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: Mgmt, "); - switch (inbuffer[M3UA_TYP_OFFS])//msg type - { - case M3UA_MSG_TYP_MGMT_ERR: - TTCN_Logger::log_event("type: ERROR-> ignored"); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - case M3UA_MSG_TYP_MGMT_NTFY: - TTCN_Logger::log_event("type: NOTIFY -> ignored"); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - default: - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class MGMT -> packet dropped.", inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - } - return length - offset; -} -//------------ - -//processing M3UA SSNM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_SSNM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_SSNM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: SSNM, "); - int offset = M3UA_MSG_OFFS; //pointer for processing - - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_SSNM_DAUD: - while (offset <= length-8 ) //processing potential params - { - switch (inbuffer[offset++]) //1st octet of tag - { - case PAR_PREFIX_COMMON: - TTCN_Logger::log_event (" DAUD: COMMON parameter "); - switch (inbuffer[offset++]) //2nd octet of COMMON tag - { - case PAR_ROUTING_CTX: - TTCN_Logger::log_event ("Routing Context (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - case PAR_INFO_STR: - TTCN_Logger::log_event ("Info String (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - case PAR_AFFECTED_PC: - TTCN_Logger::log_event ("Affected Point Code -> will send DUNA/DAVA, "); - TTCN_Logger::log_event("will ignore remainder parameters after APC}"); - TTCN_Logger::end_event(); - Send_DAVA_DUNA_to_APCinDAUD(Tester_Pc, inbuffer, offset); - return length-offset; - default: - TTCN_Logger::log_event ("invalid COMMON param tag:0x%02x%02x-> skipped", PAR_PREFIX_COMMON, inbuffer[offset-1]); - send_M3UA_error_msg( PAR_ERRC_PARFE, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - break; - } - break; - case PAR_PREFIX_M3UA: - TTCN_Logger::log_event ("DAUD: M3UA parameter: "); - switch (inbuffer[offset++]) //2nd octet of M3UA tag - { - case PAR_NETW_APP: - TTCN_Logger::log_event ("Network Appearance (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - default: - TTCN_Logger::log_event ("invalid M3UA param tag:0x%02x%02x-> skipped", - PAR_PREFIX_M3UA, inbuffer[offset-1]); - send_M3UA_error_msg( PAR_ERRC_PARFE, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - } - break; - default: //1st octet of tag - TTCN_Logger::log_event ("invalid 1st octet param tag:0x%02x in DATA (packet dropped)",inbuffer[offset-1]); - close_log_event(); - return length -offset; - break; - } - } - break; - case M3UA_MSG_TYP_SSNM_DAVA: // Destination Available // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DAVA -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DUNA: // Destination Unavailable // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DUNA -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_SCON: // Signalling Congestion // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_SCON -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DUPU: //Destinationn User Part Unavailable // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DUPU -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DRST: //Destination Restricted // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DRST -> ignored"); - close_log_event(); - break; - default: //msg type - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("Unsupported M3UA msg type -> packet dropped."); - close_log_event(); - break; - } - return length - offset; -} -//------------ - -//processing M3UA ASPSM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_ASPSM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_ASPSM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: ASPSM, "); - - int offset = M3UA_MSG_OFFS; //pointer for processing - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_ASPSM_ASPUP: - TTCN_Logger::log_event("type: ASPSM_ASPUP -> ASPUPAck will be sent"); - close_log_event(); - send_msg(aspupack_msg, sizeof_aspupack_msg); - break; - case M3UA_MSG_TYP_ASPSM_ASPDN: - TTCN_Logger::log_event("type: ASPSM_ASPDN -> ASPDNAck will be sent"); - close_log_event(); - send_msg(aspdn_ack_msg, sizeof_aspdn_ack_msg); - break; - case M3UA_MSG_TYP_ASPSM_BEAT: - TTCN_Logger::log_event("type: ASPSM_BEAT -> ASPSM_BEATAck will be sent"); - close_log_event(); - //Sending back the packet as acknowledge: - inbuffer[M3UA_TYP_OFFS]= M3UA_MSG_TYP_ASPSM_BEATAck; - send_msg(inbuffer, length); - break; - case M3UA_MSG_TYP_ASPSM_ASPUPAck: - TTCN_Logger::log_event("type: ASPSM_ASPUPAck -> ASPAC will be sent"); - M3UAState = AssocInac; - TTCN_Logger::log_event(" M3UAState's been changed to AssocInac"); - close_log_event(); - send_msg(aspac_msg, sizeof_aspac_msg ); - break; - case M3UA_MSG_TYP_ASPSM_ASPDNAck: - M3UAState = AssocDown; - TTCN_Logger::log_event(" M3UAState's been changed to AssocDown"); - TTCN_Logger::log_event("type: ASPSM_ASPDNAck -> nothing will be sent"); - close_log_event(); - break; - case M3UA_MSG_TYP_ASPSM_BEATAck: - TTCN_Logger::log_event("type: ASPSM_BEATAck -> nothing will be sent"); - close_log_event(); - break; - default: - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class ASPSM-> packet dropped.", (unsigned char)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - return length - offset; -} -//------------ - -//processing M3UA ASPTM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_ASPTM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_ASPTM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: ASPTM, "); - - int offset = M3UA_MSG_OFFS; //pointer for processing - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_ASPTM_ASPAC: //ASP Active - M3UAState = AssocActive; - TTCN_Logger::log_event("type: ASPTM_ASPAC -> ASPACAck will be sent"); - close_log_event(); - send_msg(aspac_ack_msg, sizeof_aspac_ack_msg); - break; - case M3UA_MSG_TYP_ASPTM_ASPIA: //ASP InActive - TTCN_Logger::log_event("type: ASPTM_ASPIA -> ASPIAAck will be sent"); - close_log_event(); - send_msg(aspia_ack_msg, sizeof_aspia_ack_msg); - break; - case M3UA_MSG_TYP_ASPTM_ASPACAck: - M3UAState = AssocActive; - TTCN_Logger::log_event("type: ASPTM_ASPACAck -> nothing will be sent"); - TTCN_Logger::log_event("M3UAState's been changed to AssocActive."); - close_log_event(); - break; - case M3UA_MSG_TYP_ASPTM_ASPIAAck: - TTCN_Logger::log_event("type: ASPTM_ASPIAAck -> nothing will be sent"); - close_log_event(); - break; - default: - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class ASPSM-> packet dropped.", (unsigned char)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - return length - offset; -} -//------------ - -//processing M3UA RKM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_RKM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_RKM_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - warn("Unsupported M3UA msg class M3UA_RKM -> packet dropped."); - return length - offset; -} -//------------ - -//processing M3UA unsupported msg class -int MTP3asp__PT_PROVIDER::processing_M3UA_unsupported_msg_class(unsigned char* inbuffer,int length) -{ - warn("Unsupported M3UA msg class -> packet dropped."); - send_M3UA_error_msg( PAR_ERRC_UNSMC, inbuffer[M3UA_CLS_OFFS] ); - int offset = M3UA_MSG_OFFS; //pointer for processing - return length - offset; -} -//------------ - -// processing_M3UA_Transfer_msg - called if the msg class is "Transfer" i.e M3UA_MSG_CLS_TRNSFM: -int MTP3asp__PT_PROVIDER::processing_M3UA_Transfer_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_M3UA_Transfer_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - unsigned int recv_opc, recv_dpc,recv_si, recv_ni, recv_mp,recv_sls =0; - int param_length = 0; - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: DataTrnsf, "); - - switch (inbuffer[M3UA_TYP_OFFS]) //msg type - { - case M3UA_MSG_TYP_TRSNFM_DATA: - TTCN_Logger::log_event("msg type DATA, "); - while (offset <= length-8) //processing potential params - { - switch (inbuffer[offset++]) //1st octet of tag. Offset already incremented after the 'case' ! - { - case PAR_PREFIX_COMMON: - TTCN_Logger::log_event (" DATA: COMMON parameter, "); - switch (inbuffer[offset++]) //2nd octet of tag - { - case PAR_ROUTING_CTX: - TTCN_Logger::log_event ("Routing Context (unsupported par) -> skipped), "); - // Send back an error msg - skip_par_after_tag(inbuffer, offset); - break; - case PAR_CORREL_ID: - TTCN_Logger::log_event ("Correlation ID (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - default: - TTCN_Logger::log_event ("invalid COMMON param tag:0x%02x%02x -> skipped", PAR_PREFIX_COMMON, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - break; - } - case PAR_PREFIX_M3UA: - TTCN_Logger::log_event ("DATA: M3UA parameter: "); - switch (inbuffer[offset++]) //2nd octet of M3UA tag - { - case PAR_PROT_DATA: - //--------------------------------------------- - TTCN_Logger::log_event ("Protocol Data"); - // retrieving length - param_length = decode_16b_int(inbuffer+offset); offset+=2; - TTCN_Logger::log_event(", DATA: Length of Protocol Data parameter is %d",param_length); - // retrieving M3UA protocol data paremeter opc, dpc, si, ni, mp, - // sls - recv_opc = decode_32b_int(inbuffer+offset); offset +=4; - recv_dpc = decode_32b_int(inbuffer+offset); offset +=4; - recv_si = (unsigned int)(inbuffer[offset++]); - recv_ni = (unsigned int)(inbuffer[offset++]); - recv_mp = (unsigned int)(inbuffer[offset++]); - recv_sls = (unsigned int)(inbuffer[offset++]); - TTCN_Logger::log_event(", DATA: decoded Protocol Data parameter:"); - // filling up TTCN structure - if ((Loop==MTP3_ON) || - (!Filter) || - (Filter && - (recv_opc == (unsigned)Sut_Pc) && (recv_dpc == (unsigned)Tester_Pc) && - (recv_ni == (unsigned)mtp3_ni) - )) - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - recv_sio.ni()= int2bit(recv_ni,2); - recv_sio.prio()= int2bit(recv_mp,2); - recv_sio.si()= int2bit(recv_si,4); - recv_msg.sio() = recv_sio; - recv_msg.sls() = recv_sls; - recv_msg.opc()= recv_opc; - recv_msg.dpc() = recv_dpc;; - recv_msg.data() = OCTETSTRING(param_length-16, // 16 octet paramheader + 5 routing label - &inbuffer[offset]); - recv_msg.log(); - close_log_event(); - incoming_message ( recv_msg ); - offset += param_length-16; - return length - offset; - } - else - { - close_log_event(); - log("Either the received M3UA(OPC, DPC, SI) fields, or the embedded MTP3 rooting label (OPC, DPC) not matched with the filter setting -> packet dropped."); - return length - offset; - } - break; - default: - TTCN_Logger::log_event ("invalid M3UA param tag:0x%02x%02x-> skipped", PAR_PREFIX_M3UA, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - } - break; - default: - TTCN_Logger::log_event ("invalid 1st octet param tag:0x%02x in DATA (packet dropped)",inbuffer[offset-1]); - close_log_event(); - return length -offset; - break; - } - }// Checking parameter tag (offset packet dropped", - (unsigned int)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - - return length -offset; -} - -// Set M3UA SingleAPC - Stores field Single Affected Point Code -void MTP3asp__PT_PROVIDER::Set_M3UA_SingleAPC(unsigned int pc, unsigned char* apc_par) -{ - //setting par type to APC - apc_par[0] = PAR_PREFIX_COMMON; - apc_par[1] = PAR_AFFECTED_PC; - //setting the length to 4+4 = 8 - apc_par[2] = 0x00; - apc_par[3] = 0x08; - //setting the mask - apc_par[4] = 0x00; - //setting the pc - encode_24b_int(apc_par+5,pc); -} - -// Send DAVA DUNA to APCinDAUD -void MTP3asp__PT_PROVIDER::Send_DAVA_DUNA_to_APCinDAUD(unsigned int dava_sep, unsigned char* inbuffer, int & offset) -{ - unsigned int length = decode_16b_int(inbuffer+offset); - offset +=2; - unsigned int current_pc; - - //checking the length - if ((length < 8) || (length%4)) - { warn("Invalid length in APC parameter -> not processed"); - return; - } - - for (unsigned int i = 4 ; i < length; i += 4) - { - if (inbuffer[offset++] == 0x00) // mask===>single pc - { - current_pc = decode_24b_int(inbuffer+offset); - offset +=3; - if (dava_sep == current_pc) //dava - { Set_M3UA_SingleAPC(dava_sep, dava_1apc_msg+M3UA_MSG_OFFS); - log("DAVA will be sent for pc=%d", dava_sep); - send_msg(dava_1apc_msg, sizeof_dava_1apc_msg); - } - else //duna - { Set_M3UA_SingleAPC(current_pc, duna_1apc_msg+M3UA_MSG_OFFS); - log("DUNA will be sent for pc=%d", current_pc); - send_msg(duna_1apc_msg, sizeof_duna_1apc_msg); - } - } - else //masked pc - { warn("Unsupported masking (mask=0x%02x) for PC=%d in APC parameter -> ignored", - inbuffer[offset-1], current_pc); - } - } - return; -} - -// send M3UA error msg -// send an eror msg with error_code. Additional parameter matches to the error code: -void MTP3asp__PT_PROVIDER::send_M3UA_error_msg(unsigned int error_code, unsigned int add_par ) -{ - encode_16b_int( error_msg+M3UA_MSG_OFFS+4, error_code); - encode_16b_int( error_msg+M3UA_MSG_OFFS+8, add_par); - send_msg(error_msg, sizeof_error_msg ); -}; - -// Coder functions for M3UA: int -> unsigned char array -//------------------------------------------------------ -// Result:Less significant byte in highest address -// Most Significant Byte first (in lowest address) = MSB = Big Endian = Network Byte Order -void MTP3asp__PT_PROVIDER::encode_32b_int(unsigned char *to, unsigned int from) -{ - to[3] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_32b_int(const unsigned char *from) -{ - return from[3] | (from[2] << 8) | (from[1] << 16) | (from[0] << 24); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_24b_int(unsigned char *to, unsigned int from) -{ - to[2] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_24b_int(const unsigned char *from) -{ - return from[2] | (from[1] << 8) | (from[0] << 16); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_16b_int(unsigned char *to, int from) -{ - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_16b_int(const unsigned char *from) -{ - return from[1] | (from[0] << 8); -} -//------------ - -//skip par after tag -void MTP3asp__PT_PROVIDER::skip_par_after_tag(unsigned char* inbuffer, int &offset) -{ - offset += decode_16b_int(inbuffer+offset)-2; //the length contains - //the param hdr. itself - if (offset%4) offset += 4-(offset%4); //skipping padding -} -//------------ -#endif - - - -#ifdef TARGET_TEST -// -------------------------- -// Functions for Target testing -// -------------------------- -// In case of target this function handles the received message -void MTP3asp__PT_PROVIDER::message_incoming(const unsigned char* msg, int messageLength, int) -{ - OCTETSTRING rcvData = OCTETSTRING(messageLength, msg); - - int msgType = oct2int(substr(rcvData,0,1)); - switch (msgType) - { - case 0: //TRANSFERind message received - if(Tcp_is_up) //Registration was already performed - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - BITSTRING sio_bit = oct2bit(substr(rcvData,5,1)); - recv_sio.ni()= substr(sio_bit,0,2); - recv_sio.prio()= substr(sio_bit,2,2); - recv_sio.si()= substr(sio_bit,4,4); - recv_msg.sio() = recv_sio; - recv_msg.opc() = oct2int(substr(rcvData,6,4)); - recv_msg.dpc() = oct2int(substr(rcvData,10,4)); - recv_msg.sls() = oct2int(substr(rcvData,14,1)); - recv_msg.data() = substr(rcvData,15,rcvData.lengthof()-15); - if (Tcp_is_up == 1) //No unregistration ongoing - incoming_message(recv_msg); - else //Unregistration ongoing - log("Received ASP_MTP3_TRANSFERind is ignored since unregistration is started."); - } - else - error("Message was received before successful registration in M3UA server."); - break; - - case 4: //Status message received - { - int status = oct2int(substr(rcvData,5,1)); - if(Tcp_is_up == 2) // Unregistration ongoing - { - const char * rcvDat = oct2str(rcvData); - log("Message \"%s\" received. Status = %i", rcvDat, status); - if (status == 2) - { - log("Unregistration performed."); - Tcp_is_up = 0; - } - else if (status == 3) - error("Unsuccessful unregistration."); - else if (status == 5) { - if(forward_status) { - incoming_message(ASP__MTP3__STATUS(NULL_VALUE)); - } - else { - warn("Invalid STATUS message received from M3UA server with status code=%d.", status); - } - } - } - else if(Tcp_is_up == 1) // Active state - { - if (status == 5) { - if(forward_status) { - incoming_message(ASP__MTP3__STATUS(NULL_VALUE)); - } - } - else { - warn("Invalid STATUS message received from M3UA server with status code=%d.", status); - } - } - else // Registration ongoing - { - const char * rcvDat = oct2str(rcvData); - log("Message \"%s\" received. Status = %i", rcvDat, status); - if (status == 0) - { - log("Registration performed."); - Tcp_is_up = 1; - } - else { - error("Unsuccessful registration."); - } - } - } - break; - case 5: - { - if(forward_pause) incoming_message(ASP__MTP3__PAUSE(NULL_VALUE)); - } - break; - case 6: - { - if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - } - break; - - - default: //Unexpected message received - warn("Invalid message received from M3UA server."); - } -} - -void MTP3asp__PT_PROVIDER::Check_Target_TestPort_Variables() -{ - if (Sut_Pc==-1) error("Parameter SUT_Pc is not set."); - if (Tester_Pc==-1) error("Parameter TESTER_Pc is not set."); - if (!Ni_is_set) error("Parameter NI is not set."); - if (M3UA_version==0) error("Parameter M3UA_version cannot be set to 0 in TargetM3UA mode."); - -//packet header - header_descr = new PacketHeaderDescr( 1, 4, PacketHeaderDescr::Header_MSB); -} - -void MTP3asp__PT_PROVIDER::Check_Target_TestPort_Variables_STC() -{ - if( destinationname == NULL) error("Parameter DestinationName is not set in TargetSTC mode."); - - header_descr = new PacketHeaderDescr( 1, 4, PacketHeaderDescr::Header_MSB); -} - -void MTP3asp__PT_PROVIDER::Target_user_map(const char *system_port) -{ - Tcp_is_up = 0; - Check_Target_TestPort_Variables(); - map_user(); - - OCTETSTRING tcpData = int2oct(2,1); //Message type - if( destinationname == NULL) - tcpData = tcpData + int2oct(char2oct(system_port).lengthof()+15,4); //Length - else - tcpData = tcpData + int2oct(char2oct(destinationname).lengthof()+15,4); - tcpData = tcpData + int2oct(mtp3_ni,1); - tcpData = tcpData + int2oct(Sut_Pc,4); - tcpData = tcpData + int2oct(Tester_Pc,4); - tcpData = tcpData + int2oct(M3UA_version,1); - if( destinationname == NULL) - tcpData = tcpData + char2oct(system_port); - else - tcpData = tcpData + char2oct(destinationname); - - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Registration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for REGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for REGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); -} - -void MTP3asp__PT_PROVIDER::TargetSTC_user_map(const char *system_port) -{ - Tcp_is_up = 0; - Check_Target_TestPort_Variables_STC(); - map_user(); - - OCTETSTRING tcpData = int2oct(2,1); //Message type - tcpData = tcpData + int2oct(char2oct(destinationname).lengthof()+15,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + char2oct(destinationname); - - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Registration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for REGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for REGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); -} - -void MTP3asp__PT_PROVIDER::Target_user_unmap(const char *system_port) -{ - OCTETSTRING tcpData = int2oct(3,1); //Message type - tcpData = tcpData + int2oct(6,4); //Length - tcpData = tcpData + int2oct(0,1); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Unregistration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - Tcp_is_up = 2; //Unregistration ongoing - - while (Tcp_is_up == 2) - { - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for UNREGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for UNREGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); - } - unmap_user(); -} -#endif -} diff --git a/MTP3asp_CNL113337/demo/MTP3asp_PT.hh b/MTP3asp_CNL113337/demo/MTP3asp_PT.hh deleted file mode 100644 index 340f24ffa..000000000 --- a/MTP3asp_CNL113337/demo/MTP3asp_PT.hh +++ /dev/null @@ -1,249 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2009 // -// // -// 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: MTP3asp_PT.hh -// Description: Implementation of port MTP3asp_PT -// This test port is written to connect ttcn to SEA -// according to specification ITU-T SS7 MTP3, ANSI, TCC, MPT, IETF, -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2009-04-03 -// Contact: http://ttcn.ericsson.se - - -#ifndef MTP3asp_PT_HH -#define MTP3asp_PT_HH - -#include - -#ifdef TARGET_TEST -#include "Abstract_Socket.hh" -#endif - -#ifndef TARGET_TEST -#include "mphclib.h" -#endif - - -#define MAXSIZE 1532 //+32 needed for M3UA -#define MTP3_ON 1 -#define MTP3_OFF 0 -namespace MTP3asp__Types { - class ASP__MTP3__TRANSFERind; - class ASP__MTP3__PAUSE; - class ASP__MTP3__RESUME; - class ASP__MTP3__STATUS; - class ASP__MTP3__TRANSFERreq; -} -namespace MTP3asp__PortType { - -class MTP3asp__PT_PROVIDER : public PORT -#ifdef TARGET_TEST - , public Abstract_Socket -#endif - { -protected: - // pointer to member: user_map/unmap methods - typedef void (MTP3asp__PT_PROVIDER::*usermap_t)(const char *system_port); - // pointer to member: user_connect methods - typedef void (MTP3asp__PT_PROVIDER::*userconnect_t)(); - // pointer to member: interpreter methods -#ifndef TARGET_TEST - typedef void (MTP3asp__PT_PROVIDER::*interpreter_t)(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - - void M3UA_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void M3UA_user_map(const char *system_port); - void M3UA_user_connect(); - void M3UA_user_unmap(const char *system_port); - void MTP3_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void MTP3_user_map(const char *system_port); // common for MTP3 ITU and MTP3 ANSI - void MTP3_user_connect(); - void MTP3_user_unmap(const char *system_port);// common for MTP3 ITU and MTP3 ANSI - void STC_user_connect(); - void STC_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void STC_user_map(const char *system_port); - void STC_user_unmap(const char *system_port); -#endif -#ifdef TARGET_TEST - //Map and unmap for target - void Target_user_map(const char *system_port); - void Target_user_unmap(const char *system_port); - void TargetSTC_user_map(const char *system_port); -#endif - -public: - MTP3asp__PT_PROVIDER(const char *par_port_name=NULL); - ~MTP3asp__PT_PROVIDER(); - - typedef enum { MTP3itu, MTP3ansi, MTP3ttc, MTP3mpt, M3UA, TargetM3UA, MTP3bttc,MTP3iup, STC, TargetSTC } MTPServiceType_t ; - - MTPServiceType_t MTPServiceType ; // ctor default is MTP3itu - void set_parameter(const char *parameter_name, const char *parameter_value); - void error(const char *msg, ...); - void log(const char *msg, ...); -#ifndef TARGET_TEST - void user_connect(); - - void set_channel(int chnl) {channel=chnl;}; - void MTP3_open_channel(boolean http); - void MTP3_close_connection(); - - boolean wait_for_open(); - int conn_state; - - interpreter_t interpreter; // pointer to interpreter members, ctor default is MTP3_ITU_interpreter - void doInterpret(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) - { (this->*interpreter)(inbuffer,length,from_channel, con); } -#endif - //parameter handling - boolean dynamicConnection, connectionUp; - char *hostname; - int httpport; - char *entityname; - int MTP_fd; - -protected: - void user_map(const char *system_port); - void user_unmap(const char *system_port); - - void debuglog(const char *msg, ...); - void warn(const char *msg, ...); - void close_log_event(); - - usermap_t user_map_p ; // pointer to user_map members, default is MTP3itu - usermap_t user_unmap_p; // pointer to user_unmap members, default is MTP3itu - userconnect_t user_connect_p; - - void user_start(); - void user_stop(); - - void outgoing_send(const MTP3asp__Types::ASP__MTP3__TRANSFERreq& send_par); - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__TRANSFERind& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__PAUSE& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__RESUME& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__STATUS& incoming_par) = 0; -#ifndef TARGET_TEST - void encode_56bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_56bLSB_int(const unsigned char *from); - void encode_48bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_48bLSB_int(const unsigned char *from); - void encode_40bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_40bLSB_int(const unsigned char *from); - void encode_32bLSB_int(unsigned char *to, unsigned int from); - unsigned int decode_32bLSB_int(const unsigned char *from); - void encode_24bLSB_int(unsigned char *to, int from); - unsigned int decode_24bLSB_int(const unsigned char *from); - void encode_16bLSB_int(unsigned char *to, int from); - unsigned int decode_16bLSB_int(const unsigned char *from); - void encode_32b_int(unsigned char *to, unsigned int from); - unsigned int decode_32b_int(const unsigned char *from); - void encode_24b_int(unsigned char *to, unsigned int from); - unsigned int decode_24b_int(const unsigned char *from); - void encode_16b_int(unsigned char *to, int from); - unsigned int decode_16b_int(const unsigned char *from); - void skip_par_after_tag(unsigned char* inbuffer, int &offset); - - void GetPointCodes(unsigned int &sls,unsigned int &opc,unsigned int &dpc, unsigned char* msg); - void GetPointCodesIUP(unsigned int &cic,unsigned int &opc,unsigned int &dpc, unsigned char* msg); - void SetPointCodes(unsigned int sls, unsigned int opc, unsigned int dpc, unsigned char* msg); - void SetPointCodesIUP(unsigned int cic, unsigned int opc, unsigned int dpc, unsigned char* msg); - int ChangePointCodes(unsigned char* outbuff, unsigned char *inbuff, int len); - void Set_M3UA_SingleAPC(unsigned int pc, unsigned char* apc_par); //for ITU and ANSI - bool Check_M3UA_SingleITUAPC(unsigned int pc, unsigned char* apc_par); - void Send_DAVA_DUNA_to_APCinDAUD(unsigned int dava_sep, unsigned char* inbuffer, int &offset ); - void processing_MTP3_management_msg(unsigned char* inbuff,int len); - void processing_MTP3_test_msg(unsigned char* inbuff,int len); - int processing_M3UA_MGMT_msg(unsigned char* inbuff,int len); - int processing_M3UA_Transfer_msg(unsigned char* inbuff,int len); - int processing_M3UA_SSNM_msg(unsigned char* inbuff,int len); - int processing_M3UA_ASPSM_msg(unsigned char* inbuff,int len); - int processing_M3UA_ASPTM_msg(unsigned char* inbuff,int len); - int processing_M3UA_RKM_msg(unsigned char* inbuff,int len); - int processing_M3UA_unsupported_msg_class(unsigned char* inbuff,int len); - int Check_PcMatch(unsigned int opc, unsigned int dpc, unsigned char *buff); - void send_msg(unsigned char *outbuff, int length); - void send_M3UA_error_msg(unsigned int error_code, unsigned int add_par ); - void Check_TestPort_Variables(); - void Check_TestPort_Variables_STC(); -#endif -#ifdef TARGET_TEST - void Check_Target_TestPort_Variables(); - void Check_Target_TestPort_Variables_STC(); - - //Functions for abstract socket handling - void message_incoming(const unsigned char*, int length, int client_id = -1); - void Add_Fd_Read_Handler(int fd) { Handler_Add_Fd_Read(fd); } - void Add_Fd_Write_Handler(int fd) { Handler_Add_Fd_Write(fd); } - void Remove_Fd_Read_Handler(int fd) { Handler_Remove_Fd_Read(fd); } - void Remove_Fd_Write_Handler(int fd) { Handler_Remove_Fd_Write(fd); } - void Remove_Fd_All_Handlers(int fd) { Handler_Remove_Fd(fd); } - void Handler_Uninstall() { Uninstall_Handler(); } - void Timer_Set_Handler(double call_interval, boolean is_timeout = TRUE, - boolean call_anyway = TRUE, boolean is_periodic = TRUE) { - Handler_Set_Timer(call_interval, is_timeout, call_anyway, is_periodic); - } - const char* local_address_name() { return "localIPAddr";} - const char* local_port_name() { return "localPort";} - const char* remote_address_name(){ return "M3UAtarget_TCP_IPAddr";} - const char* remote_port_name() { return "M3UAtarget_TCP_Port";} - const char* halt_on_connection_reset_name(){ return "halt_on_connection_reset";} - const char* server_mode_name() { return "client_mode";} - const char* socket_debugging_name(){ return "socket_debugging";} - const char* nagling_name() { return "nagling";} - const char* server_backlog_name(){ return "server_backlog";} - const PacketHeaderDescr* Get_Header_Descriptor() const {return header_descr;} -#endif - -private: - void Handle_Fd_Event(int fd, boolean is_readable, boolean is_writable, boolean is_error); - void Handle_Timeout(double time_since_last_call); - - unsigned char M3UA_version; - int channel; - unsigned char buffer[MAXSIZE]; - char *destinationname; - char *iid_string; - boolean Ni_is_set; - int Loop,Filter,Sut_Pc,Tester_Pc; - typedef enum { AssocDown, AssocEstabl, AssocInac, AssocActive} M3UAStateType_t; - M3UAStateType_t M3UAState; - int mtp3_ni; // network indicator in case of MTP3 - int stored_bttc_octet; // used for storage of an additional first byte in MTP3bttc - -#ifndef TARGET_TEST - MPH_IID iid; - CONNECTION *myConnection; -#endif - bool forward_resume, forward_pause, forward_status; -#ifdef TARGET_TEST - int Tcp_is_up; - PacketHeaderDescr *header_descr; - bool is_packet_hdr_length_offset, is_packet_hdr_nr_bytes_in_length, - is_packet_hdr_byte_order; - int packet_hdr_length_offset, packet_hdr_nr_bytes_in_length; - PacketHeaderDescr::HeaderByteOrder packet_hdr_byte_order; -#endif -}; - -extern BOOLEAN f__MTP3__SEA__connect__extern - (MTP3asp__PT_PROVIDER& portRef, const CHARSTRING& Hostname, - const INTEGER& Port, const CHARSTRING& EntityName,const BOOLEAN& Http); - -extern BOOLEAN f__MTP3__SEA__disconnect__extern - (MTP3asp__PT_PROVIDER& portRef); - -} -#endif diff --git a/MTP3asp_CNL113337/demo/MTP3asp_PortType.ttcn b/MTP3asp_CNL113337/demo/MTP3asp_PortType.ttcn deleted file mode 100644 index 86b7a83e7..000000000 --- a/MTP3asp_CNL113337/demo/MTP3asp_PortType.ttcn +++ /dev/null @@ -1,61 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// 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: MTP3asp_PortType.ttcn -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2008-02-07 -// Contact: http://ttcn.ericsson.se - -module MTP3asp_PortType -{ - - import from MTP3asp_Types all; -// ************************************************************************* -// * MTP3 port type definitions * -// ************************************************************************* - - // MTP3 port type used by the component up to the MTP3 SAP - // (eg. any component connected to the MTP3 test port) - type port MTP3asp_PT message - { - in ASP_MTP3_TRANSFERind; - in ASP_MTP3_PAUSE; - in ASP_MTP3_RESUME; - in ASP_MTP3_STATUS; - out ASP_MTP3_TRANSFERreq; - } with {extension "provider"} - - // MTP3 port type used by the component up to the MTP3 SAP - // (e.g. the distribution component) - type port MTP3asp_SP_PT message - { - in ASP_MTP3_TRANSFERreq; - out ASP_MTP3_TRANSFERind; - } - with {extension "internal"} - -//Connecting functions -//---------------------------- -external function f_MTP3_SEA_connect - ( inout MTP3asp_PT portRef, - in charstring Hostname, - in integer Port, - in charstring EntityName, - in boolean Http //or MPH Port is provided - )return boolean; - -external function f_MTP3_SEA_disconnect - ( inout MTP3asp_PT portRef - )return boolean; - -}//eof module diff --git a/MTP3asp_CNL113337/demo/MTP3asp_Types.ttcn b/MTP3asp_CNL113337/demo/MTP3asp_Types.ttcn deleted file mode 100644 index e96f42016..000000000 --- a/MTP3asp_CNL113337/demo/MTP3asp_Types.ttcn +++ /dev/null @@ -1,324 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2006 // -// // -// 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: MTP3asp_Types.ttcn -// Description: CCSS7 Message Transfer Part primitive (ASP) definitions -// according to specification ITU-T SS7 MTP3, -// Reference: ITU-T Recommendation Q.704, RFC3332, ANSI T.1.111.1-2001, TCC -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2007-09-17 -// Contact: http://ttcn.ericsson.se -// -module MTP3asp_Types.objid - { - itu_t(0) identified_organization (4) etsi(0) reserved(127) - etsi_identified_organization(0) ericsson(5) testing (0) - generic(0) mtp3(0) v96(3) aspDefinitions(3) patchNo(0) - } - -{//start of the module - -// ************************************************************************* -// External encoding/decoding functions -// ************************************************************************* - -external function enc_MTP3_to_M3UAserver_msg (in MTP3_to_M3UAserver_msg pdu) - return octetstring - with { extension "prototype(convert)" - extension "encode(RAW)" - }; - -external function dec_MTP3_to_M3UAserver_msg(in octetstring stream) - return MTP3_to_M3UAserver_msg - with { extension "prototype(convert)" - extension "decode(RAW)" - }; - - -// ************************************************************************* -// * Type Definitions Part * -// ************************************************************************* -group Types -{ - group MessageTypes - { - group ASPs - { - //*********************************************************************** - //* ASP type definitions * - //* Note, that ASP types shall be TTCN-3 definitions to allow * - //* the use of anytype in the data field * - //*********************************************************************** - - type record MTP3_Field_sio - { - bitstring ni length(2), - bitstring prio length(2), - bitstring si length(4) - } with { variant "FIELDORDER(msb)"; - }; - - type record ASP_MTP3_TRANSFERind - { - MTP3_Field_sio sio, - integer opc, - integer dpc, - integer sls, - octetstring data - } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (sls) "FIELDLENGTH(8)" - }; - - type record ASP_MTP3_PAUSE {}; - - type record ASP_MTP3_RESUME {}; - - type record ASP_MTP3_STATUS {}; - - type record ASP_MTP3_TRANSFERreq - { - MTP3_Field_sio sio, - integer opc, - integer dpc, - integer sls, - octetstring data - } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (sls) "FIELDLENGTH(8)" - }; - }//end group ASPs - - //*********************************************************************** - //* Type definition of the message which is sent between MTP3 test port * - //* and SCTP server over TCP. * - //*********************************************************************** - group MTP3_SCTPserver - { - type record ASP_REGISTER_M3UA - { - integer ni (0..3), - integer sut_pc, - integer tester_pc, - integer m3ua_version, - charstring entity - } with { variant (ni) "FIELDLENGTH(8)"; - variant (sut_pc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (tester_pc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (m3ua_version) "FIELDLENGTH(8)" - }; - - - // Possible values: - // MTP3_to_SCTPserver_data/status: - const integer reg_ok_status := 0; - const integer reg_error_status := 1; - const integer unreg_ok_status := 2; - const integer unreg_error_status := 3; - - const integer send_error_status := 5; - const integer kill_status := 255; - - // MTP3_to_SCTPserver_data/pause: - const integer SCTP_COMLOST_pause := 0; - const integer M3UA_ASPDN_pause := 1; - const integer M3UA_ASPIA_pause := 2; - - // MTP3_to_SCTPserver_data/resume: - const integer ok_resume := 0; - - type union MTP3_to_SCTPserver_data - { - ASP_MTP3_TRANSFERind transfer_ind, - ASP_MTP3_TRANSFERreq transfer_req, - ASP_REGISTER_M3UA register, - integer unregister (0..255), - integer status (0..255), - integer pause (0..255), - integer resume (0..255) - } - - // MTP3_to_M3UAserver_msg/msgType: - const integer transfer_ind_msgType := 0; - const integer transfer_req_msgType := 1; - const integer register_msgType := 2; - const integer unregister_msgType := 3; - const integer status_msgType := 4; - const integer pause_msgType := 5; - const integer resume_msgType := 6; - - type record MTP3_to_M3UAserver_msg - { - integer msgType (0..255), - integer msgLength, - MTP3_to_SCTPserver_data data - } with { variant (data) "CROSSTAG( - transfer_ind, msgType = transfer_ind_msgType; - transfer_req, msgType = transfer_req_msgType; - register, msgType = register_msgType; - unregister, msgType = unregister_msgType; - status, msgType = status_msgType; - pause, msgType = pause_msgType; - resume, msgType = resume_msgType )"; - variant (msgLength) "FIELDLENGTH(32)"; - variant (msgLength) "LENGTHTO(msgType,msgLength,data)"; - variant (msgLength) "BYTEORDER(last)" - }; - }//end group MTP3_SCTPserver - }//end group Messagetypes -} with {encode "RAW"}//Types - -group Templates -{ - group MessageTemplates - { - group ASPtemplates - { - // ******************************************************************* - // * ASP template definitions * - // ******************************************************************* - - // Base templates - // These general templates can be used as an example or as a base - // template for other templates. - template ASP_MTP3_TRANSFERind t_ASP_MTP3_TRANSFERind - ( - template MTP3_Field_sio pl_SIO, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := pl_SIO, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_sio - ( - template bitstring pl_NI, - template bitstring pl_PRIO, - template bitstring pl_SI, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := - { - ni := pl_NI, - prio := pl_PRIO, - si := pl_SI - }, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind := - { - sio := ?, - opc := ?, - dpc := ?, - sls := ?, - data := ? - } - - template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq - ( - MTP3_Field_sio pl_SIO, - integer pl_OPC, - integer pl_DPC, - integer pl_SLS, - octetstring pl_data - ):= - { - sio := pl_SIO, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq_sio - ( - template bitstring pl_NI, - template bitstring pl_PRIO, - template bitstring pl_SI, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := - { - ni := pl_NI, - prio := pl_PRIO, - si := pl_SI - }, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq := - { - sio := ?, - opc := ?, - dpc := ?, - sls := ?, - data := ? - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_stc := - { - sio := - { - ni := '00'B, - prio := '00'B, - si := '0000'B - }, - opc := 0, - dpc := 0, - sls := 0, - data := ? - } - - template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq_stc - ( template octetstring pl_data ):= - { - sio := - { - ni := '00'B, - prio := '00'B, - si := '0000'B - }, - opc := 0, - dpc := 0, - sls := 0, - data := pl_data - } - - }//end group ASPtemplates - }//end group Messagetemplates -}//end group Templates - -}//end module - - diff --git a/MTP3asp_CNL113337/demo/Makefile b/MTP3asp_CNL113337/demo/Makefile deleted file mode 100644 index 53b19d35b..000000000 --- a/MTP3asp_CNL113337/demo/Makefile +++ /dev/null @@ -1,353 +0,0 @@ -# This Makefile was generated by the compiler -# of the TTCN-3 Test Executor version 1.4.pl3 -# for Attila Balasko (ethbaat@duna199) on Mon Sep 15 15:48:45 2003 - -# Copyright 2000-2003 Conformance Center, Ericsson R & D, Hungary -# Please send bug reports and comments to Szabo.Janos@eth.ericsson.se - -# The following make commands are available: -# - make, make all Builds the executable test suite. -# - make compile Translates TTCN-3 and ASN.1 modules to C++. -# - make clean Removes all generated files. -# - make dep Creates/updates dependency list. -# - make archive Archives all source files. - -# -# Set these variables... -# - -# The path of your TTCN-3 Test Executor installation: -# Uncomment this line to override the environment variable. -# TTCN3_DIR = - -# Your platform: (SOLARIS, LINUX, FREEBSD or WIN32) -PLATFORM = SOLARIS8 - -# Your C++ compiler: -CXX = g++ - -# Flags for the C++ preprocessor (and makedepend as well): -CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(SEA_DIR)/include - -# Flags for the C++ compiler: -CXXFLAGS = -Wall - -# Flags for the linker: -LDFLAGS = - -# Flags for the TTCN-3 and ASN.1 compiler: -COMPILER_FLAGS = -L - -# Execution mode: (either ttcn3 or ttcn3-parallel) -TTCN3_LIB = ttcn3-parallel - -# The path of your OpenSSL installation: -# If you do not have your own one, leave it unchanged. -OPENSSL_DIR = $(TTCN3_DIR) - -# Directory to store the archived source files: -# Note: you can set any directory except ./archive -ARCHIVE_DIR = ./backup - -SEA_DIR = /vobs/ttcn/TCC_Releases/Other/SEA_LATEST -# -# You may change these variables. Add your files if necessary... -# - -# The TTCN-3 modules needed for this project: -TTCN3_MODULES = mtp3test.ttcn MTP3asp_Types.ttcn MTP3asp_PortType.ttcn -# The ASN.1 modules needed for this project: -ASN1_MODULES = - -# C++ source & header files generated by TTCN-3 & ASN.1 compilers: -GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) -GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) -# Source & header files of Test Ports and your other modules: -USER_SOURCES = MTP3asp_PT.cc -USER_HEADERS = MTP3asp_PT.hh - -# All object files needed for the executable test suite: -#OBJECTS = mtp3test.o MTP3_ASPs.o general_typedefs.o MTP3user_porttype.o -OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o) -# The name of the executable test suite: -TARGET = mtp3test - -#The names of the config files (to archive): -TARGET_CONFIGS = mtp3test_MTP3_ansi2.cfg -# -# Do not modify these unless you know what you are doing... -# -SOLARIS_LIBS = -lxnet -LINUX_LIBS = -FREEBSD_LIBS = -WIN32_LIBS = - -# -# Rules for building the executable... -# -all: $(TARGET) ; - -$(TARGET): $(OBJECTS) - $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) \ - -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \ - -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) $(SEA_DIR)/lib/libmphclib.a -lxml2 - -.cc.o .c.o: - $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< - -$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile - @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi - -compile: $(TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $(TTCN3_MODULES) \ - $(ASN1_MODULES) - $? - touch $@ - -clean: - -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ - $(GENERATED_SOURCES) compile *.log - -dep: $(GENERATED_SOURCES) - makedepend $(CPPFLAGS) $(USER_SOURCES) $(GENERATED_SOURCES) - -archive: - mkdir -p $(ARCHIVE_DIR) - tar -cvhf - $(TTCN3_MODULES) $(ASN1_MODULES) \ - $(USER_HEADERS) $(USER_SOURCES) $(TARGET_CONFIGS) Makefile \ - | gzip >$(ARCHIVE_DIR)/$(TARGET)-`date '+%y%m%d-%H%M'`.tgz - -# -# Add your rules here if necessary... -# - -# DO NOT DELETE - -MTP3asp_PT.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -MTP3asp_PT.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -MTP3asp_PT.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -MTP3asp_PT.o: /usr/include/stdio_impl.h /usr/include/stdlib.h -MTP3asp_PT.o: /usr/include/iso/stdlib_iso.h /usr/include/sys/types.h -MTP3asp_PT.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_PT.o: /usr/include/sys/select.h /usr/include/sys/time.h -MTP3asp_PT.o: /usr/include/time.h /usr/include/iso/time_iso.h -MTP3asp_PT.o: /usr/include/netinet/in.h /usr/include/sys/stream.h -MTP3asp_PT.o: /usr/include/sys/vnode.h /usr/include/sys/t_lock.h -MTP3asp_PT.o: /usr/include/sys/machlock.h /usr/include/sys/param.h -MTP3asp_PT.o: /usr/include/sys/unistd.h /usr/include/sys/mutex.h -MTP3asp_PT.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h -MTP3asp_PT.o: /usr/include/sys/condvar.h /usr/include/sys/time_impl.h -MTP3asp_PT.o: /usr/include/sys/cred.h /usr/include/sys/uio.h -MTP3asp_PT.o: /usr/include/sys/resource.h /usr/include/vm/seg_enum.h -MTP3asp_PT.o: /usr/include/sys/poll.h /usr/include/sys/strmdep.h -MTP3asp_PT.o: /usr/include/sys/model.h /usr/include/sys/strft.h -MTP3asp_PT.o: /usr/include/sys/byteorder.h /usr/include/netdb.h -MTP3asp_PT.o: /usr/include/sys/socket.h /usr/include/sys/netconfig.h -MTP3asp_PT.o: /usr/include/sys/un.h /usr/include/net/if_dl.h -MTP3asp_PT.o: /usr/include/sys/wait.h /usr/include/sys/siginfo.h -MTP3asp_PT.o: /usr/include/sys/machsig.h /usr/include/sys/procset.h -MTP3asp_PT.o: /usr/include/unistd.h /usr/include/arpa/inet.h -MTP3asp_PT.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_PT.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_PT.o: MTP3asp_PT.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TTCN3.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/version.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Basetype.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Types.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Encdec.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Template.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Integer.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Optional.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/BER.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Logger.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Textbuf.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Error.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Parameters.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Float.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Boolean.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Null.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Objid.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Verdicttype.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Component.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Bitstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/RAW.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Hexstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Octetstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Any.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Charstring.hh -MTP3asp_PT.o: /usr/include/regex.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Universal_charstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Struct_of.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Array.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_CharacterString.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_External.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_EmbeddedPDV.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Addfunc.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Timer.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Port.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Module_list.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Snapshot.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Default.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Runtime.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TEXT.hh -MTP3asp_PT.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -MTP3asp_PT.o: MTP3asp_Types.hh MTP3asp_PortType.hh -mtp3test.o: mtp3test.hh MTP3asp_PortType.hh MTP3asp_Types.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TTCN3.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/version.h -mtp3test.o: /usr/include/string.h /usr/include/iso/string_iso.h -mtp3test.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -mtp3test.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -mtp3test.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -mtp3test.o: /usr/include/stdio_impl.h -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Basetype.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Types.h -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Encdec.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Template.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Integer.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Optional.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/BER.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Logger.hh -mtp3test.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -mtp3test.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -mtp3test.o: /usr/include/sys/time.h /usr/include/sys/types.h -mtp3test.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -mtp3test.o: /usr/include/sys/select.h /usr/include/time.h -mtp3test.o: /usr/include/iso/time_iso.h -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Textbuf.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Error.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Parameters.h -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Float.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Boolean.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Null.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Objid.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Verdicttype.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Component.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Bitstring.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/RAW.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Hexstring.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Octetstring.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Any.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Charstring.hh -mtp3test.o: /usr/include/regex.h -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Universal_charstring.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Struct_of.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Array.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_CharacterString.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_External.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_EmbeddedPDV.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Addfunc.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Timer.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Port.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Module_list.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Snapshot.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Default.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Runtime.hh -mtp3test.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TEXT.hh -mtp3test.o: MTP3asp_PT.hh -mtp3test.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -MTP3asp_Types.o: MTP3asp_Types.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TTCN3.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/version.h -MTP3asp_Types.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_Types.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -MTP3asp_Types.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -MTP3asp_Types.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -MTP3asp_Types.o: /usr/include/stdio_impl.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Basetype.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Types.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Encdec.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Template.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Integer.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Optional.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/BER.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Logger.hh -MTP3asp_Types.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -MTP3asp_Types.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_Types.o: /usr/include/sys/time.h /usr/include/sys/types.h -MTP3asp_Types.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_Types.o: /usr/include/sys/select.h /usr/include/time.h -MTP3asp_Types.o: /usr/include/iso/time_iso.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Textbuf.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Error.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Parameters.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Float.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Boolean.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Null.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Objid.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Verdicttype.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Component.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Bitstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/RAW.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Hexstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Octetstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Any.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Charstring.hh -MTP3asp_Types.o: /usr/include/regex.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Universal_charstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Struct_of.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Array.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_CharacterString.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_External.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_EmbeddedPDV.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Addfunc.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Timer.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Port.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Module_list.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Snapshot.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Default.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Runtime.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TEXT.hh -MTP3asp_PortType.o: MTP3asp_PortType.hh MTP3asp_Types.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TTCN3.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/version.h -MTP3asp_PortType.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_PortType.o: /usr/include/sys/feature_tests.h -MTP3asp_PortType.o: /usr/include/sys/isa_defs.h /usr/include/stdio.h -MTP3asp_PortType.o: /usr/include/iso/stdio_iso.h /usr/include/sys/va_list.h -MTP3asp_PortType.o: /usr/include/stdio_tag.h /usr/include/stdio_impl.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Basetype.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Types.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Encdec.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Template.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Integer.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Optional.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/BER.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Logger.hh -MTP3asp_PortType.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -MTP3asp_PortType.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_PortType.o: /usr/include/sys/time.h /usr/include/sys/types.h -MTP3asp_PortType.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_PortType.o: /usr/include/sys/select.h /usr/include/time.h -MTP3asp_PortType.o: /usr/include/iso/time_iso.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Textbuf.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Error.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Parameters.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Float.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Boolean.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Null.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Objid.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Verdicttype.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Component.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Bitstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/RAW.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Hexstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Octetstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_Any.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Charstring.hh -MTP3asp_PortType.o: /usr/include/regex.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Universal_charstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Struct_of.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Array.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_CharacterString.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_External.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/ASN_EmbeddedPDV.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Addfunc.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Timer.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Port.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Module_list.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Snapshot.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Default.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/Runtime.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-1.7.pl2-gcc3.4.6/include/TEXT.hh -MTP3asp_PortType.o: MTP3asp_PT.hh -MTP3asp_PortType.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h diff --git a/MTP3asp_CNL113337/demo/mtp3test.ttcn b/MTP3asp_CNL113337/demo/mtp3test.ttcn deleted file mode 100644 index 1c842503a..000000000 --- a/MTP3asp_CNL113337/demo/mtp3test.ttcn +++ /dev/null @@ -1,292 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Copyright Test Competence Center (TCC) ETH 2003 -// -// 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: mtp3test.cc -// Description: basic test for MTP3asp_PT -// Rev: -// Prodnr: CNL 113 337 -// Updated: 2004.06.02 -// Contact: http://ttcn.ericsson.se - - -module mtp3test -{ - -modulepar -{ - //mtp3test specific data: - //OCT1n MTP3_UserPart_SIO; - MTP3_Field_sio MTP3_UserPart_SIO; - integer MTP3_UserPart_OPC, - MTP3_UserPart_DPC, - MTP3_UserPart_SLS -};//modulepar - -import from MTP3asp_Types all; -import from MTP3asp_PortType all; - -/************************************* -* Components -**************************************/ - -/* -**************** 1: 2: ************************ -* MTP3UserPart * <---------> * MTP3/M3UA in MSC * -**************** (MTP3port)************************ -1: MTP3asp_PT MTP3_PCO alias: e.g. CMGW6 - -*/ - -type record of MTP3UserPart_CT CompArray; - -type component MTC_CT -{ - port MTP3asp_PT MTC_PCO; - var MTP3UserPart_CT vc_MTP3UserPart_BSC1A; - var MTP3UserPart_CT vc_MTP3UserPart_BSC1B; - var MTP3UserPart_CT vc_MTP3UserPart_BSC1C; - var MTP3UserPart_CT vc_MTP3UserPart_CMGW3; - var MTP3UserPart_CT vc_MTP3UserPart_CMGW6; - var MTP3UserPart_CT vc_MTP3UserPart_CMGW9; - var MTP3UserPart_CT vc_compArray[6]; -}; - -// Model of MSC: -type component MSC_SCT -{ - port MTP3asp_PT BSC1A; - port MTP3asp_PT BSC1B; - port MTP3asp_PT BSC1C; - port MTP3asp_PT CMGW3; - port MTP3asp_PT CMGW6; - port MTP3asp_PT CMGW9; -}; - -//Model of SS7 MTP3 User Part for Self Test. Only logs the messages -type component MTP3UserPart_CT -{ - var ASP_MTP3_TRANSFERind v_MTP3_TRANSFERind; - var ASP_MTP3_TRANSFERreq v_MTP3_TRANSFERreq; - port MTP3asp_PT MTP3_PCO; - // port ... to the upper layers -} // end component type definition - -/* -function MTC_delay(integer time) runs on MTC_CT { - timer t:=time; - t.start; - setverdict(none); - alt{ []t.timeout {} } - } -*/ - -function mtp3_selftest( ) runs on MTP3UserPart_CT -{ - timer t_Guard := 6.0; - log( "mtp3_selftest started"); - t_Guard.start; - setverdict(none); - alt - { - [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:?) -> value v_MTP3_TRANSFERind - { - log("ASP_MTP3_TRANSFERind: received"); - setverdict(pass); - repeat; - } - [] MTP3_PCO.receive - { - log("Unknown signal received"); - setverdict(pass); - repeat; - } - [] t_Guard.timeout - { log("timeout reached");} - } //alt - log("mtp3_selftest finished"); -} - -function f_init( ) runs on MTC_CT -{ - vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create; - vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create; - vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create; - - map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); - map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); - map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); - map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); - map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); - map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); - - log("tc_3 map is ready"); -} - -function f_start() runs on MTC_CT -{ - vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() ); - vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() ); - vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() ); -} - -function f_terminate() runs on MTC_CT -{ - all component.done; - unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); - unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); - unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); - unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); - unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); - unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); -} - -function mtp3userpart_test( ) runs on MTP3UserPart_CT { - timer t_Guard := 5.0; - log( "mtp3userpart_test started"); - v_MTP3_TRANSFERreq := - { - sio := MTP3_UserPart_SIO, - opc := MTP3_UserPart_OPC, - dpc := MTP3_UserPart_DPC, - sls := 0, - data:= '010203040506070809000102030405060708090000010203040506070809000000'O - }; - MTP3_PCO.send( v_MTP3_TRANSFERreq ); - t_Guard.start; - setverdict(none); - alt - { - [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:? ) -> value v_MTP3_TRANSFERind - { - log("ASP_MTP3_TRANSFERind: received"); - setverdict(pass); - repeat; - } - [] MTP3_PCO.receive - { - log("Unknown signal received"); - setverdict(pass); - repeat; - } - [] t_Guard.timeout - { - //setverdict(inconc); - log("timeout reached"); - } - } //alt - log("mtp3userpart_test finished"); -} - -testcase tc_1() runs on MTC_CT system MSC_SCT -{ - log ("tc_1 started"); - var MTP3UserPart_CT vc_MTP3userpart; - vc_MTP3userpart := MTP3UserPart_CT.create; - map(vc_MTP3userpart:MTP3_PCO, system:CMGW6); - log("map is ready"); - vc_MTP3userpart.start( mtp3_selftest() ); - //MTC_delay(6); - vc_MTP3userpart.done; - unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6); - log ("tc_1 finished"); -} - -// TC2: Testcase sending one simple message "MTP-transfer-req" and waiting -testcase tc_2() runs on MTC_CT system MSC_SCT -{ - log ("tc_2 started"); - var MTP3UserPart_CT vc_MTP3userpart; - vc_MTP3userpart := MTP3UserPart_CT.create; - map(vc_MTP3userpart:MTP3_PCO, system:CMGW6); - log("map is ready"); - vc_MTP3userpart.start( mtp3userpart_test() ); - //MTC_delay(6); - vc_MTP3userpart.done; - unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6); - log ("tc_2 finished"); -} - -testcase tc_3() runs on MTC_CT system MSC_SCT -{ - log ("tc_3 started"); - vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create; - vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create; - vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create; - vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create; - - map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); - map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); - map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); - map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); - map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); - map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); - - log("tc_3 map is ready"); - vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() ); - vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() ); - vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() ); - vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() ); - - //MTC_delay(6); - all component.done; - unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); - unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); - unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); - unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); - unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); - unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); - log ("tc_3 finished"); -} - -// tc_4 is the same as tc_3 but organized by arrays and cycles -testcase tc_4() runs on MTC_CT system MSC_SCT -{ - f_init(); - f_start(); - f_terminate(); -} - -testcase tc_5() runs on MTC_CT -{ - var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq := - { sio := - { ni := '00'B, - prio := '00'B, - si := '0000'B - }, - opc := 0, - dpc := 0, - sls := 0, - data:= '010203040506070809000102030405060708090000010203040506070809000000'O - }; - - map(self:MTC_PCO,system:MTC_PCO); - MTC_PCO.send(vl_MTP3_TRANSFERreq); - MTC_PCO.receive; - unmap(self:MTC_PCO,system:MTC_PCO); -} - -control -{ - execute (tc_1()); -} - -}//module diff --git a/MTP3asp_CNL113337/demo/mtp3test_MTP3_ansi2.cfg b/MTP3asp_CNL113337/demo/mtp3test_MTP3_ansi2.cfg deleted file mode 100644 index 35b3e09ad..000000000 --- a/MTP3asp_CNL113337/demo/mtp3test_MTP3_ansi2.cfg +++ /dev/null @@ -1,75 +0,0 @@ -[LOGGING] -#FileName := "mtp3test_MTP3_ansi2.cfg" -FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -#ConsoleMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING - -[EXECUTE] -#Loopback -#mtp3test.TC0 -#SEA test cases, LOOP := OFF -#mtp3test.tc_1 -#mtp3test.tc_2 -#mtp3test.tc_3 -mtp3test.tc_4 -[TESTPORT_PARAMETERS] -// ******************************************************* -// * DO NOT FORGET TO SET THE FOLLOWING TWO LINE TO YOUR SEA * -// ******************************************************* -system.*.Hostname := "zaire" //sea server name -system.*.HttpPort := "5000" //sea http port -system.*.Loop:= "ON" -system.*.Filter:= "OFF" -system.*.MTP3ServiceType := "MTP3itu" // ["MTP3itu" (default)|"MTP3ansi" | "M3UA" | "MTP3ttc" | "MTP3mpt" ] - -system.CMGW3.EntityName := "S7ST-0" //device name to connect -system.CMGW3.NI:= "2" -system.CMGW3.SUT_Pc:= "461088" -system.CMGW3.TESTER_Pc:= "461089" -system.CMGW3.M3UA_version:= "1" - -system.CMGW6.EntityName := "S7ST-1" //device name to connect -system.CMGW6.NI:= "2" -system.CMGW6.SUT_Pc:= "461086" // 07-09-30 =0x07091E see command: s7stp:st=s7stg-0&&-32; -system.CMGW6.TESTER_Pc:= "461087" //07-09-31=0x07091F -system.CMGW6.M3UA_version:= "1" - -system.CMGW9.EntityName := "S7ST-2" //device name to connect -system.CMGW9.NI:= "2" -system.CMGW9.SUT_Pc:= "461088" -system.CMGW9.TESTER_Pc:= "461089" -system.CMGW9.M3UA_version:= "1" - -system.BSC1A.EntityName := "S7ST-3" //device name to connect -system.BSC1A.NI:= "2" -system.BSC1A.SUT_Pc:= "461088" -system.BSC1A.TESTER_Pc:= "461089" -system.BSC1A.M3UA_version:= "1" - -system.BSC1B.EntityName := "S7ST-4" //device name to connect -system.BSC1B.NI:= "2" -system.BSC1B.SUT_Pc:= "461088" -system.BSC1B.TESTER_Pc:= "461089" -system.BSC1B.M3UA_version:= "1" - -system.BSC1C.EntityName := "S7ST-5" //device name to connect -system.BSC1C.NI:= "2" -system.BSC1C.SUT_Pc:= "461088" -system.BSC1C.TESTER_Pc:= "461089" -system.BSC1C.M3UA_version:= "1" - -[MODULE_PARAMETERS] - -// MTP3_user_part for test suite 'mtp3userpart_test' in mtp3test.ttcn -MTP3_UserPart_SIO := -{ - ni := '10'B, - prio := '00'B, - si := '1110'B -}; -MTP3_UserPart_OPC := 461087 // =0x07091E -MTP3_UserPart_DPC := 461086 // -MTP3_UserPart_SLS := 0; - -[MAIN_CONTROLLER] -TCPPort := 9999 -NumHCs := 1 diff --git a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_FS.pdf b/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_FS.pdf deleted file mode 100644 index b6cf46f11..000000000 Binary files a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_FS.pdf and /dev/null differ diff --git a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_PRI.pdf b/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_PRI.pdf deleted file mode 100644 index 4e8b25c60..000000000 Binary files a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_PRI.pdf and /dev/null differ diff --git a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_UG.pdf b/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_UG.pdf deleted file mode 100644 index 0c6b3d781..000000000 Binary files a/MTP3asp_CNL113337/doc/MTP3asp_CNL113337_UG.pdf and /dev/null differ diff --git a/MTP3asp_CNL113337/src/MTP3asp_EncDec.cc b/MTP3asp_CNL113337/src/MTP3asp_EncDec.cc deleted file mode 100644 index 394d72693..000000000 --- a/MTP3asp_CNL113337/src/MTP3asp_EncDec.cc +++ /dev/null @@ -1,20 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// Copyright Test Competence Center (TCC) ETH 2007 -// // -// 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: MTP3asp_EncDec.cc -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2007-09-17 -// Contact: http://ttcn.ericsson.se -/////////////////////////////////////////////////////////////////////////////// - -// Please note: Because the encoder/decoder functions are generated by the -// TITAN, the MTP3asp_EncDec.cc is kept only for compatibility issue and -// should be removed from the projects. diff --git a/MTP3asp_CNL113337/src/MTP3asp_PT.cc b/MTP3asp_CNL113337/src/MTP3asp_PT.cc deleted file mode 100644 index 37bab8f04..000000000 --- a/MTP3asp_CNL113337/src/MTP3asp_PT.cc +++ /dev/null @@ -1,2952 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2012 // -// // -// 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: MTP3asp_PT.cc -// Description: Implementation of port MTP3asp_PT -// This test port is written to connect TTCN-3 to SEA according -// to specification ITU-T SS7 MTP3, ANSI, TCC, IETF, MPT -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2012-05-24 -// Contact: http://ttcn.ericsson.se - -// IMPORTANT MODIFICATION: -// mtp3_ttc uses ALWAYS 16 bits long SPCs, regardless of mtp3_ni sio - -#include "MTP3asp_PT.hh" - -#include "MTP3asp_Types.hh" -#include "MTP3asp_PortType.hh" - -#include -#include -#include -#include -#include -#include -#include - - -// Constans for M3UA, see rfc 3332 and 2/1056-FCPW 101 86/P-1 -// Constants for decoding M3UA common headers -#define M3UA_VER_OFFS 0 -#define M3UA_CLS_OFFS 2 -#define M3UA_TYP_OFFS 3 -#define M3UA_LGT_OFFS 4 -#define M3UA_MSG_OFFS 8 -#define M3UA_MSG_LENGTH_LENGTH 4 - -// Constants for M3UA protocol -//Msg classes -#define M3UA_MSG_CLS_MGMT 0x00 -#define M3UA_MSG_CLS_TRNSFM 0x01 -#define M3UA_MSG_CLS_SSNM 0x02 -#define M3UA_MSG_CLS_ASPSM 0x03 -#define M3UA_MSG_CLS_ASPTM 0x04 -#define M3UA_MSG_CLS_RKM 0x09 -//Msg types -#define M3UA_MSG_TYP_MGMT_ERR 0x00 -#define M3UA_MSG_TYP_MGMT_NTFY 0x01 - -#define M3UA_MSG_TYP_TRSNFM_DATA 0x01 - -#define M3UA_MSG_TYP_SSNM_DUNA 0x01 -#define M3UA_MSG_TYP_SSNM_DAVA 0x02 -#define M3UA_MSG_TYP_SSNM_DAUD 0x03 -#define M3UA_MSG_TYP_SSNM_SCON 0x04 -#define M3UA_MSG_TYP_SSNM_DUPU 0x05 -#define M3UA_MSG_TYP_SSNM_DRST 0x06 - -#define M3UA_MSG_TYP_ASPSM_ASPUP 0x01 -#define M3UA_MSG_TYP_ASPSM_ASPDN 0x02 -#define M3UA_MSG_TYP_ASPSM_BEAT 0x03 -#define M3UA_MSG_TYP_ASPSM_ASPUPAck 0x04 -#define M3UA_MSG_TYP_ASPSM_ASPDNAck 0x05 -#define M3UA_MSG_TYP_ASPSM_BEATAck 0x06 - -#define M3UA_MSG_TYP_ASPTM_ASPAC 0x01 -#define M3UA_MSG_TYP_ASPTM_ASPIA 0x02 -#define M3UA_MSG_TYP_ASPTM_ASPACAck 0x03 -#define M3UA_MSG_TYP_ASPTM_ASPIAAck 0x04 - -#define M3UA_MSG_TYP_RKM_REGREQ 0x01 -#define M3UA_MSG_TYP_RKM_REGRSP 0x02 -#define M3UA_MSG_TYP_RKM_DEREGREQ 0x03 -#define M3UA_MSG_TYP_RKM_DEREGRESP 0x04 - -//parameters -//common for all adaptation layer -#define PAR_PREFIX_COMMON 0x00 -#define PAR_INFO_STR 0x04 -#define PAR_ROUTING_CTX 0x06 -#define PAR_DIAG_INFO 0x07 -#define PAR_HEART_BEAT 0x09 -#define PAR_TRAFFMODE_T 0x0b -#define PAR_ERROR_CODE 0x0c -#define PAR_STATUS 0x0d -#define PAR_ASP_ID 0x11 -#define PAR_AFFECTED_PC 0x12 -#define PAR_CORREL_ID 0x13 - -//M3UA specific -#define PAR_PREFIX_M3UA 0x02 -#define PAR_NETW_APP 0x00 -#define PAR_USR_O_CAUSE 0x04 -#define PAR_CNGST_IND 0x05 -#define PAR_CNCRD_IND 0x06 -#define PAR_ROUTING_KEY 0x07 -#define PAR_REG_RSLT 0x08 -#define PAR_DEREG_RSLT 0x09 -#define PAR_LOC_RK_ID 0x0a -#define PAR_DPC 0x0b -#define PAR_SI 0x0c -#define PAR_OPC_LIST 0x0e -#define PAR_CIRC_RNG 0x0f -#define PAR_PROT_DATA 0x10 -#define PAR_REG_STAT 0x12 -#define PAR_DEREG_STAT 0x13 - -// error codes: -#define PAR_ERRC_IVER 0x01 -#define PAR_ERRC_UNSMC 0x03 -#define PAR_ERRC_UNSMT 0x04 -#define PAR_ERRC_UNTMT 0x05 -#define PAR_ERRC_UNEM 0x06 -#define PAR_ERRC_PERR 0x07 -#define PAR_ERRC_ISI 0x09 -#define PAR_ERRC_RMB 0x0D -#define PAR_ERRC_ASPIDR 0x0E -#define PAR_ERRC_IASPID 0x0F -#define PAR_ERRC_IPARV 0x11 -#define PAR_ERRC_PARFE 0x12 -#define PAR_ERRC_UPAR 0x13 -#define PAR_ERRC_DSU 0x14 -#define PAR_ERRC_INA 0x15 -#define PAR_ERRC_MP 0x16 -#define PAR_ERRC_IRC 0x19 -#define PAR_ERRC_NCFAS 0x1A - - -// -------------------------- -// Basic Test Port functions -// -------------------------- -using namespace MTP3asp__Types; -namespace MTP3asp__PortType { - -//external functions -//########################################################## - -//f__MTP3__SEA__connect (for MTP3asp_PT) -BOOLEAN f__MTP3__SEA__connect(MTP3asp__PT& portRef, - const CHARSTRING& Hostname,const INTEGER& Port,const CHARSTRING& EntityName,const BOOLEAN& Http) -{ - return f__MTP3__SEA__connect__extern(portRef,Hostname,Port,EntityName,Http); -} -//------------ - -//f__MTP3__SEA__disconnect (for MTP3asp_PT) -BOOLEAN f__MTP3__SEA__disconnect(MTP3asp__PT& portRef) -{ - return f__MTP3__SEA__disconnect__extern(portRef); -} -//------------ - -//f__MTP3__SEA__connect__extern -BOOLEAN f__MTP3__SEA__connect__extern(MTP3asp__PT_PROVIDER& portRef, - const CHARSTRING& Hostname,const INTEGER& Port,const CHARSTRING& EntityName,const BOOLEAN& Http) -{ -#ifndef TARGET_TEST - if (portRef.dynamicConnection && (!(portRef.connectionUp))) - { - delete [] portRef.hostname; - int len = strlen(Hostname); - portRef.hostname = new char[len + 1]; - memcpy(portRef.hostname, Hostname, len + 1); - - portRef.httpport = Port; - - delete [] portRef.entityname; - len = strlen(EntityName); - portRef.entityname = new char[len + 1]; - memcpy(portRef.entityname, EntityName, len + 1); - - if(Http) - portRef.MTP3_open_channel(TRUE); - else - portRef.MTP3_open_channel(FALSE); - - if(portRef.wait_for_open()) - { - portRef.user_connect(); - portRef.connectionUp = TRUE; - return TRUE; - } - } - else -#endif - portRef.log("Dynamic connection feature is not active or already connected."); - return FALSE; -} -//------------ - -//f__MTP3__SEA__disconnect__extern -BOOLEAN f__MTP3__SEA__disconnect__extern(MTP3asp__PT_PROVIDER& portRef) -{ -#ifndef TARGET_TEST - if (portRef.connectionUp) - { - portRef.MTP3_close_connection(); - portRef.connectionUp = FALSE; - return TRUE; - } -#endif - return FALSE; -} -//------------ - -// Test Port constructor -MTP3asp__PT_PROVIDER::MTP3asp__PT_PROVIDER(const char *par_port_name) - : PORT(par_port_name) -{ - MTP_fd=-1; - httpport=-1; - hostname=NULL; - destinationname = NULL; - dynamicConnection = FALSE; - - const char *str="b303d76a-266c-11d4-b8f5-08002090d3da"; - int len = strlen(str); - iid_string= new char[len + 1]; - memcpy(iid_string, str, len + 1); - - entityname=NULL; - Filter=Loop=-1; - Sut_Pc=Tester_Pc=-1; - Ni_is_set = FALSE; - MTPServiceType = MTP3itu; - M3UA_version = 1; - M3UAState = AssocDown; // unnecessary... - mtp3_ni=0; -#ifndef TARGET_TEST - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; -#endif - forward_pause = FALSE; - forward_resume = FALSE; - forward_status = FALSE; -} -//------------ - -// Test Port destructor -MTP3asp__PT_PROVIDER::~MTP3asp__PT_PROVIDER() -{ - delete [] hostname; - delete [] entityname; - delete [] iid_string; -} -//------------ - -// set_parameter -void MTP3asp__PT_PROVIDER::set_parameter(const char *parameter_name, - const char *parameter_value) -{ - log("set_parameter: %s = %s",parameter_name,parameter_value); - if (!strcmp(parameter_name,"Hostname")) - { - delete [] hostname; - int len = strlen(parameter_value); - hostname = new char[len + 1]; - memcpy(hostname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name, "HttpPort")) - { - httpport = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"EntityName")) - { - delete [] entityname; - int len = strlen(parameter_value); - entityname= new char[len + 1]; - memcpy(entityname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name,"DestinationName")) - { - delete [] destinationname; - int len = strlen(parameter_value); - destinationname= new char[len + 1]; - memcpy(destinationname, parameter_value, len + 1); - } - else if (!strcmp(parameter_name,"Filter")) - { - if (!strcmp(parameter_value,"ON")) Filter = MTP3_ON; - else Filter = MTP3_OFF; - } - else if (!strcmp(parameter_name,"Loop")) - { - if (!strcmp(parameter_value,"ON")) Loop = MTP3_ON; - else Loop = MTP3_OFF; - } - else if (!strcmp(parameter_name,"NI")) - { - Ni_is_set = TRUE; - mtp3_ni = atoi(parameter_value); - debuglog("Network indicator is set to %i",mtp3_ni); - } - else if (!strcmp(parameter_name,"SUT_Pc")) - { - Sut_Pc = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"TESTER_Pc")) - { - Tester_Pc = atoi(parameter_value); - } - else if (!strcmp(parameter_name,"M3UA_version")) - { - M3UA_version = atoi(parameter_value); - debuglog("%d",M3UA_version); - } -#ifndef TARGET_TEST - else if (!strcmp(parameter_name,"DynamicConnection")) - { - if (!strcasecmp(parameter_value,"ON")) - { - dynamicConnection = TRUE; - } - } -#endif - else if (!strcmp(parameter_name,"MTP3ServiceType")) - { - if (!strcmp(parameter_value,"TargetM3UA")) - { -#ifndef TARGET_TEST - error("TargetM3UA not supported, since TARGET_TEST not in Makefile"); -#else - log("MTP3ServiceType is set to TargetM3UA"); - user_map_p = &MTP3asp__PT_PROVIDER::Target_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::Target_user_unmap; - MTPServiceType = TargetM3UA; -#endif - } - else if (!strcmp(parameter_value,"TargetSTC")) - { -#ifndef TARGET_TEST - error("TargetSTC not supported, since TARGET_TEST not in Makefile"); -#else - log("MTP3ServiceType is set to TargetSTC"); - user_map_p = &MTP3asp__PT_PROVIDER::TargetSTC_user_map; - user_unmap_p = &MTP3asp__PT_PROVIDER::Target_user_unmap; //Same as by Target M3UA - MTPServiceType = TargetSTC; -#endif - } -#ifndef TARGET_TEST - else if (!strcmp(parameter_value,"M3UA")) - { //M3UA - log("MTP3ServiceType is set to M3UA"); - interpreter = &MTP3asp__PT_PROVIDER::M3UA_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::M3UA_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::M3UA_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::M3UA_user_unmap; - MTPServiceType = M3UA; - } - else if (!strcmp(parameter_value,"MTP3itu")) - { - log("MTP3ServiceType is set to MTP3itu"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3itu; - } - else if ( !strcmp(parameter_value,"MTP3ansi")) - { - log("MTP3ServiceType is set to MTP3ansi"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3ansi; - } - else if ( !strcmp(parameter_value,"MTP3ttc")) - { - log("MTP3ServiceType is set to MTP3ttc"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3ttc; - } - else if ( !strcmp(parameter_value,"MTP3mpt")) - { - log("MTP3ServiceType is set to MTP3mpt"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3mpt; - } - else if ( !strcmp(parameter_value,"MTP3bttc")) - { - log("MTP3ServiceType is set to MTP3bttc"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3bttc; - } - else if ( !strcmp(parameter_value,"MTP3iup")) - { - log("MTP3ServiceType is set to MTP3iup"); - interpreter = &MTP3asp__PT_PROVIDER::MTP3_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::MTP3_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::MTP3_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::MTP3_user_unmap; - MTPServiceType = MTP3iup; - } - else if ( !strcmp(parameter_value,"STC")) - { - log("MTP3ServiceType is set to STC"); - interpreter = &MTP3asp__PT_PROVIDER::STC_interpreter; - user_map_p = &MTP3asp__PT_PROVIDER::STC_user_map; - user_connect_p = &MTP3asp__PT_PROVIDER::STC_user_connect; - user_unmap_p = &MTP3asp__PT_PROVIDER::STC_user_unmap; - MTPServiceType = STC; - } -#endif - else - { - log("Unsupported MTP3ServiceType: %s, falling back to MTP3itu", - parameter_value); - } - } - else if(strcasecmp(parameter_name, "forward_pause") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_pause = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_pause = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else if(strcasecmp(parameter_name, "forward_resume") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_resume = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_resume = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else if(strcasecmp(parameter_name, "forward_status") == 0) - { - if (strcasecmp(parameter_value,"forward") == 0) - forward_status = TRUE; - else if(strcasecmp(parameter_value,"ignore") == 0) - forward_status = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only forward and ignore can be used!" , - parameter_value, parameter_name); - } - else -#ifdef TARGET_TEST - if(!parameter_set(parameter_name ,parameter_value)) //TCP parameters -#endif - log("Unsupported parameter: %s", parameter_name); -} -//------------ - -// User map -void MTP3asp__PT_PROVIDER::user_map(const char *system_port) -{ - if (user_map_p == NULL) - error("Parameter MTP3ServiceType should be set to TargetM3UA in TARGET_TEST mode!"); - - (this->*user_map_p)(system_port); -} -//------------ - -// User unmap -void MTP3asp__PT_PROVIDER::user_unmap(const char *system_port) -{ - (this->*user_unmap_p)(system_port); -} -//------------ - -#ifndef TARGET_TEST -// User connect -void MTP3asp__PT_PROVIDER::user_connect() -{ - (this->*user_connect_p)(); -} -//------------ -#endif - -//User start -void MTP3asp__PT_PROVIDER::user_start() -{ debuglog("user start ordered"); -} -//------------ - -//User stop -void MTP3asp__PT_PROVIDER::user_stop() -{ debuglog("User stop ordered"); -} -//------------ - -//Event Handler -void MTP3asp__PT_PROVIDER::Handle_Fd_Event(int fd, - boolean is_readable, boolean is_writable, boolean is_error) -{ - if (MTPServiceType == TargetM3UA ) - { -#ifdef TARGET_TEST - //In case of target Abstract Socket handles the received message - Handle_Socket_Event(fd, is_readable, is_writable, is_error); -#endif - } -#ifndef TARGET_TEST - else - { - int result; - - result = MPH_ProcessConnection(myConnection); - - if (result <= 0) - { - MPH_CloseConnection(myConnection); - if (result == 0) log("Connection closed by peer."); - else log("Error in incoming message."); - } - } -#endif -} - -void MTP3asp__PT_PROVIDER::Handle_Timeout(double time_since_last_call) -{ -#ifdef TARGET_TEST - Handle_Timeout_Event(time_since_last_call); -#endif -} -//------------ - -//Outgoing send -void MTP3asp__PT_PROVIDER::outgoing_send(const ASP__MTP3__TRANSFERreq& send_par) -{ - MTP3__Field__sio sio_field = send_par.sio(); -#ifndef TARGET_TEST - int si=bit2int(sio_field.si()); -#endif - - OCTETSTRING sio_oct = bit2oct(sio_field.ni()+sio_field.prio()+sio_field.si()); - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - - //Message sending by testing on Target - if (MTPServiceType == TargetM3UA) - { -#ifdef TARGET_TEST - OCTETSTRING tcpData = int2oct(1,1); //Message type - tcpData = tcpData + int2oct(send_par.data().lengthof()+15,4); //Length - tcpData = tcpData + sio_oct; - tcpData = tcpData + int2oct(send_par.opc(),4); - tcpData = tcpData + int2oct(send_par.dpc(),4); - tcpData = tcpData + int2oct(send_par.sls(),1); - tcpData = tcpData + send_par.data(); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Transfer Req message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); -#endif - return; - } - //Message sending by testing on Target - if (MTPServiceType == TargetSTC) - { -#ifdef TARGET_TEST - OCTETSTRING tcpData = int2oct(1,1); //Message type - tcpData = tcpData + int2oct(send_par.data().lengthof()+15,4); //Length - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + send_par.data(); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Transfer Req (STC) message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); -#endif - return; - } -#ifndef TARGET_TEST - if (dynamicConnection &&(!connectionUp)) - { - warn("Connection was not activated via function f_M3UA_SEA_connect."); - return; - } - - unsigned int offset; - int MSU_length = send_par.data().lengthof(); - int M3UA_par_length; - int length; - int labellen; // sio+routinglabel length - - switch ( MTPServiceType) - { - case STC: - length = MSU_length; - memcpy(buffer, send_par.data(), send_par.data().lengthof()); - break; - case MTP3iup: - if(si==4) - { - offset = 0; - labellen=6; //ITU-T:sio(1byte) + standard telephony label(5byte) - length = MSU_length+labellen; - buffer[0] = *((const unsigned char*)sio_oct); - SetPointCodesIUP(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - } - else - { - offset = 0; - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - } - break; - case MTP3itu: - offset = 0; - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3ansi: - offset = 0; - labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3ttc: - offset = 0; - //if (mtp3_ni==0){ labellen=5;} - //else { - labellen=6; - //} //TTC: sio(1byte) +routing label(6byte) see ... - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3bttc: - offset = 0; - buffer[offset] = *((const unsigned char*)bttc_oct); - offset += 1; - labellen=7; //routing label(7byte) - length = 1 + MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, send_par.data(), send_par.data().lengthof()); - break; - case MTP3mpt: - offset = 0; - if (mtp3_ni==2) - { labellen=8;} //MPT national: sio(1byte) +routing label(7byte) - else - { labellen=5;} //MPT international: sio(1byte) +routing label(4byte) - length = MSU_length + labellen; //SIF+SIO ; - //append MTP3 MSU - buffer[offset] = *((const unsigned char*)sio_oct); - SetPointCodes(send_par.sls(), send_par.opc(), send_par.dpc(), - buffer + offset + 1); - memcpy(buffer + offset + labellen, - send_par.data(), send_par.data().lengthof()); - break; - case M3UA : - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 test port debug: Message to be encoded is: {"); - send_par.data().log(); - TTCN_Logger::log_event(" "); - if( M3UAState != AssocActive ) - { - TTCN_Logger::log_event(" M3UAState is not ready to send data. Its state code: %d",AssocActive); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - return; - } - //calculating lengths - M3UA_par_length = MSU_length + 16; // ProtocolData parameter - // header length=16 <== see f - TTCN_Logger::log_event(", Adjusted M3UA_par_length to %d to support 16 octets M3UA param header",M3UA_par_length); - length = 8 + M3UA_par_length; //msg length = header+par - TTCN_Logger::log_event(", M3UA MSU_length is %d ==> there should be %d padding octets", MSU_length, 4-(MSU_length%4)); - if (MSU_length%4) { //should be padded to be multiple of 4 octets - length += 4 - (MSU_length%4); //padding shall be counted in msg - //length, but not in par_length - } - TTCN_Logger::log_event(", Set msg length (which includes 8 octets M3UA hdr) to %d ",length); - - //filling the first part of the buffer - //common msg hdr ====================================== - buffer[0] = M3UA_version; - buffer[1] = 0x00; //spare - buffer[2] = M3UA_MSG_CLS_TRNSFM; // msg class - buffer[3] = M3UA_MSG_TYP_TRSNFM_DATA; // msg type - encode_32b_int(buffer+4, length); //msg length, 4 bytes - //ProtocolData parameter header========================= - //tag - buffer[M3UA_MSG_OFFS] = PAR_PREFIX_M3UA; //par. tag 1st octet - buffer[M3UA_MSG_OFFS+1] = PAR_PROT_DATA; // par tag 2nd octet - //length, NOTE: should not contain the padding bytes! - encode_16b_int(buffer+M3UA_MSG_OFFS+2,M3UA_par_length); - //OPC,DPC - encode_32b_int(buffer+M3UA_MSG_OFFS+4,send_par.opc()); - encode_32b_int(buffer+M3UA_MSG_OFFS+8,send_par.dpc()); - //SI, NI, MP, SLS - buffer[M3UA_MSG_OFFS+12] = bit2int(sio_field.si()); // SI LSb aligned - buffer[M3UA_MSG_OFFS+13] = bit2int(sio_field.ni()); // NI LSb aligned - buffer[M3UA_MSG_OFFS+14] = bit2int(sio_field.prio()); //MP LSb - //aligned - buffer[M3UA_MSG_OFFS+15] = 0xFF & send_par.sls(); //SLS - // finally the MTP3 MSU itself.... - offset = M3UA_MSG_OFFS + 16; - TTCN_Logger::log_event(", buffer offset is now set to %d", offset); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - //append MTP3 MSU - memcpy(buffer + offset, send_par.data(), send_par.data().lengthof()); - - //padding - for (int ii = 0; ii< (MSU_length%4); ++ii) buffer[offset+MSU_length+ii]= 0x00; - break; - default: - error("Invalid MTP3ServiceType setting!"); - } - if (TTCN_Logger::log_this_event(TTCN_DEBUG)) - { - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("The encoded buffer is: {"); - OCTETSTRING(length, buffer).log(); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - } - send_msg(buffer, length); -#endif -} -//------------ - -void MTP3asp__PT_PROVIDER::log(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::warn(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_WARNING); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::debuglog(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); -} -//------------ - -void MTP3asp__PT_PROVIDER::error(const char *msg, ...) -{ - TTCN_Logger::begin_event(TTCN_ERROR); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - va_list ap; - va_start(ap, msg); - TTCN_Logger::log_event_va_list(msg, ap); - va_end(ap); - TTCN_Logger::end_event(); - TTCN_error("Fatal error in MTP3 Test Port %s.", get_name()); -} -//------------ - -void MTP3asp__PT_PROVIDER::close_log_event() -{ - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); -} -//------------ - - -#ifndef TARGET_TEST -// -------------------------------------------- -// Functions and definitions for test with SEA -// -------------------------------------------- - -// Functions of MPH toolkit -// --------------------------- -void connectCallback(CONNECTION* con, int channel, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Opening channel succeeded " - "(channel number is %u)", channel); - ((MTP3asp__PT_PROVIDER *)clientData)->set_channel(channel); - if(((MTP3asp__PT_PROVIDER *)clientData)->dynamicConnection) - ((MTP3asp__PT_PROVIDER *)clientData)->conn_state = 1; -} - -void messageCallback(CONNECTION* con, int channel, int length, - unsigned char *msg, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Incoming message from channel: %d",channel); - ((MTP3asp__PT_PROVIDER *)clientData)->doInterpret(msg,length,channel,con); -} - -void closeCallback(CONNECTION* con, int channel, void *clientData) -{ - ((MTP3asp__PT_PROVIDER *)clientData)->log("Closed channel: %d", channel); -} - -void errorCallback(CONNECTION* con, char *name, char *errorMessage, - void *clientData) -{ - if(((MTP3asp__PT_PROVIDER *)clientData)->dynamicConnection) - { - ((MTP3asp__PT_PROVIDER *)clientData)->log("Opening channel %s failed: %s", name, errorMessage); - ((MTP3asp__PT_PROVIDER *)clientData)->conn_state = 2; - } - else - ((MTP3asp__PT_PROVIDER *)clientData)->error("Opening channel %s failed: %s", - name, errorMessage); -} -//------------ - -//MTP3_open_channel -void MTP3asp__PT_PROVIDER::MTP3_open_channel(boolean http) -{ - int result; - int Mphport; - char *perrorString; - if( Loop == MTP3_ON ) - { - MTP_fd=-1; - myConnection = NULL; - log("MTP3_open_channel finished for LOOP"); - return; - } - - if(http) - { - Mphport = MPH_GetMphPort(hostname,httpport,&perrorString); - } - else - { - Mphport = httpport; - } - - if (Mphport == -1) - error("GetMphPort failed: %s", *perrorString); - - result = MPH_StringToIid(iid_string, &iid); - if (result == -1) - error("Converting %s to MPH_IID failed.", iid_string); - - myConnection = MPH_OpenConnection(hostname, Mphport); - if (myConnection == NULL) - error("Opening connection to %s:%d failed.", hostname, Mphport); - - MPH_OpenChannel(myConnection, - entityname, - &iid, - connectCallback, - messageCallback, - closeCallback, - errorCallback, - this); - - MTP_fd = MPH_GetConnectionFd(myConnection); - if (MTP_fd != -1) - Handler_Add_Fd_Read(MTP_fd); - else - error("Incorrect file descriptor: %d.", MTP_fd); -} -//------------ - -// MTP3_close_connection -void MTP3asp__PT_PROVIDER::MTP3_close_connection() -{ - MPH_CloseConnection(myConnection); - Handler_Remove_Fd_Read(MTP_fd); - close( MTP_fd ); - //Uninstall_Handler(); // Unnecessary if only socket MTP_fd is in use -} -//------------ - -// wait_for_open -boolean MTP3asp__PT_PROVIDER::wait_for_open() -{ - conn_state = 0; - while(conn_state==0) - { - pollfd pollFd = { MTP_fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) { - log("MPH channel opening time out"); - return FALSE; - } - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) { - log("MPH channel opening error (%d)", (nEvents < 0) ? errno : 0); - return FALSE; - } - Handle_Fd_Event(MTP_fd, TRUE, FALSE, FALSE); - } - if(conn_state == 1) //connectCallback received - { - conn_state = 0; - return TRUE; - } - else //errorCallback received - { - conn_state = 0; - return FALSE; - } -} -//------------ - -//send msg -void MTP3asp__PT_PROVIDER::send_msg(unsigned char *outbuff, int length) -{ - OCTETSTRING buff(length,outbuff); - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3/M3UA Test Port (%s): {", get_name()); - TTCN_Logger::log_event("outgoing buffer= "); - buff.log(); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - if (Loop == MTP3_ON) - { - log("Message looped back"); - doInterpret(outbuff, length, channel, myConnection); - } else - { - MPH_SendMessage(myConnection,channel,length,outbuff); - log("Message sent on channel %d", channel); - } -} -//------------ - -//Check TestPortVariables -void MTP3asp__PT_PROVIDER::Check_TestPort_Variables() -{ - if(!dynamicConnection) - { - if (httpport==-1) error("Parameter HttpPort is not set."); - if (hostname==NULL) error("Parameter Hostname is not set."); - if (entityname==NULL) error("Parameter EntityName is not set."); - } - if (Filter==-1) error("Parameter Filter is not set."); - if (Loop==-1) error("Parameter Loop is not set."); - if (Sut_Pc==-1) error("Parameter SUT_Pc is not set."); - if (Tester_Pc==-1) error("Parameter TESTER_Pc is not set."); - if (!Ni_is_set) error("Parameter NI is not set."); -} -//------------ - -// ------------------------------------------------- -// STC Functions and definitions for test with SEA -// ------------------------------------------------- -void MTP3asp__PT_PROVIDER::Check_TestPort_Variables_STC() -{ - if(!dynamicConnection) - { - if (httpport==-1) error("Parameter HttpPort is not set."); - if (hostname==NULL) error("Parameter Hostname is not set."); - if (entityname==NULL) error("Parameter EntityName is not set."); - } -} -//------------ - -//STC user map -void MTP3asp__PT_PROVIDER::STC_user_map(const char *system_port) -{ - debuglog("Function STC_user_map started"); - Check_TestPort_Variables_STC(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - STC_user_connect(); - } -} -//------------ - -//STC user connect -void MTP3asp__PT_PROVIDER::STC_user_connect() -{ -} - -//STC user unmap -void MTP3asp__PT_PROVIDER::STC_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} -//------------ - -//STC interpreter -void MTP3asp__PT_PROVIDER::STC_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { - log("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { - log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { - log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - recv_sio.ni()= int2bit(0,2); - recv_sio.prio()= int2bit(0,2); - recv_sio.si()= int2bit(0,4); - recv_msg.sio() = recv_sio; - recv_msg.sls() = 0; - recv_msg.opc() = 0; - recv_msg.dpc() = 0; - recv_msg.data() = OCTETSTRING(length, &inbuffer[0]); - incoming_message( recv_msg ); -} - -// ------------------------------------------------- -// MTP3 Functions and definitions for test with SEA -// ------------------------------------------------- - -// SLTM messages for MTP3 -// ----------------------- -unsigned char ttcn_in_sltm[] = { - 'T','T','C','N','-','3',' ','E','x','e','c','u','t','o','r'}; - -const int sizeof_ttcn_in_sltm=15; - -// ITU: -unsigned char sltm_msg_itu[] = -{ - 0x1, //SIO /'test & maint' see Q.704 /14.2.1 => 0x81 suggested !!! - 0x0, 0x0, 0x0, 0x0, //4 bytes for label (dpc, opc,sls) - 0x11, //Heading code ITU, see Q.707/5.4 - 0xF0, //spare+Length of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_itu=7+15; - -// ANSI: -unsigned char sltm_msg_ansi[]= -{ - 0xB1, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, // 7 bytes for label - 0x11, // Heading Code ANSI T1.111.7-2001 - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_ansi=10+15; - -// TTC: -unsigned char sltm_msg_ttc_national[]= -{ - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0, // 6 bytes for label TO BE CONT!!! - 0x11, // Heading Code - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_ttc_national=9+15; - -// BTTC: -unsigned char sltm_msg_bttc_national[]= -{ - 0x0, // extra octet, ignored - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0, // 6 bytes for label TO BE CONT!!! - 0x23, // Heading Code - 'T', 'T' -}; -const int sizeof_sltm_msg_bttc_national=1+8+2; - -// MPT: -unsigned char sltm_msg_mpt_national[]= -{ - 0x81, //SIO - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, // 7 bytes for label - 0x11, // Heading Code - 0xF0, // SLC(is 0 OK???)+Length in bytes of the following string: - 'T', 'T', 'C', 'N', '-', '3', ' ', 'E', 'x', 'e', 'c', 'u', 't', 'o', 'r' -}; -const int sizeof_sltm_msg_mpt_national=10+15; -//------------ - - -// coder functions for MTP3 -// ------------------------- -// unsigned int<-> unsigned char array -// Integer encode/decode functions that will encode/decode from/to -// Result: Least Significant Byte first (in lowest address) = LSB = Little Endian -void MTP3asp__PT_PROVIDER::encode_56bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; - from >>= 8; - to[5] = from & 0xFF; - from >>= 8; - to[6] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_56bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32)| - ((ull) from[5] << 40)| - ((ull) from[6] << 48); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_48bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; - from >>= 8; - to[5] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_48bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32)| - ((ull) from[5] << 40); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_40bLSB_int(unsigned char *to, unsigned long long int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; - from >>= 8; - to[4] = from & 0xFF; -} -//------------ - -unsigned long long int MTP3asp__PT_PROVIDER::decode_40bLSB_int(const unsigned char *from) -{ - typedef unsigned long long int ull; - return ((ull) from[0]) | - ((ull) from[1] <<8)| - ((ull) from[2] << 16)| - ((ull) from[3] << 24)| - ((ull) from[4] << 32); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_32bLSB_int(unsigned char *to, unsigned int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[3] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_32bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8) | (from[2] << 16) | (from[3] << 24); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_24bLSB_int(unsigned char *to, int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_24bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8) | (from[2] << 16); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_16bLSB_int(unsigned char *to, int from) -{ - to[0] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_16bLSB_int(const unsigned char *from) -{ - return from[0] | (from[1] << 8); -} -//------------ - -//MTP3 user map -void MTP3asp__PT_PROVIDER::MTP3_user_map(const char *system_port) -{ - debuglog("Function MTP3_user_map started"); - Check_TestPort_Variables(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - MTP3_user_connect(); - } - debuglog("Function MTP3_user_map finished"); -} -//------------ - -//MTP3 user connect -void MTP3asp__PT_PROVIDER::MTP3_user_connect() -{ - // Sending out an SLTM message: - unsigned char * sltm_msg; - unsigned int offset = 0; - int sizeof_msg; - switch( MTPServiceType) - { - case MTP3itu: - case MTP3iup: - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - break; - case MTP3ansi: - sltm_msg=sltm_msg_ansi; - sizeof_msg=sizeof_sltm_ansi; - break; - case MTP3ttc: - /* if (mtp3_ni == 0){ - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - } - else { - */ - sltm_msg=sltm_msg_ttc_national; - sizeof_msg=sizeof_sltm_msg_ttc_national; - // } - break; - case MTP3bttc: - sltm_msg=sltm_msg_bttc_national; - sizeof_msg=sizeof_sltm_msg_bttc_national; - offset = 1; - break; - case MTP3mpt: - if (mtp3_ni == 2) - { - sltm_msg = sltm_msg_mpt_national; - sizeof_msg = sizeof_sltm_msg_mpt_national; - } else - { - sltm_msg = sltm_msg_itu; - sizeof_msg = sizeof_sltm_msg_itu; - } - break; - default: - sltm_msg=sltm_msg_itu; - sizeof_msg=sizeof_sltm_msg_itu; - break; - } - stored_bttc_octet = 0; - unsigned char sio = ((unsigned char) mtp3_ni) << 6; - - if (Ni_is_set) - { sltm_msg[0+offset] = sio | 0x1; } - else - { sltm_msg[0+offset] = 0x1; };//SIO /'test & maint' see Q.704 /14.2.1 => 0x81 suggested !!! - - SetPointCodes(0, Tester_Pc, Sut_Pc, sltm_msg + 1 +offset); // common for ITU, ANSI and TTC - log("MTP3/SLTM message sending..."); - send_msg(sltm_msg, sizeof_msg); -} -//MTP3 user unmap -void MTP3asp__PT_PROVIDER::MTP3_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} - -//MTP3 interpreter -void MTP3asp__PT_PROVIDER::MTP3_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { - log("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { - log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { - log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - unsigned int offset = 0; - if ( MTPServiceType==MTP3bttc ) - { - stored_bttc_octet = inbuffer[0]; - offset = 1; - } - int labellen; // sio+routinglabel length - int rec_ni = (inbuffer[offset]) >> 6; //network indicator - if (rec_ni != mtp3_ni) - error("Received NI is different from sent NI."); - - unsigned char sio = inbuffer[offset]; - unsigned int si = sio&0x0F; - - if ( MTPServiceType==MTP3itu ) - { labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - } - else if ( MTPServiceType==MTP3iup ) - { - if(si==4) - labellen=6; //ITU-T:sio(1byte) + standard telephony label(5byte) - else - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - } - else if ( MTPServiceType==MTP3ansi ) - { labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - } - else if (MTPServiceType==MTP3ttc) - { labellen=6; //new (2004-03-02): 6= sio(1byte)+ routing label(5bytes) - } - else if (MTPServiceType==MTP3mpt) - { - if ( mtp3_ni == 2) - {labellen=8;} //MPT national: sio(1byte) +routing label(7byte) - else - {labellen=5;} //MPT international: sio(1byte) +routing label(4byte) - } - else if (MTPServiceType==MTP3bttc) - { labellen=7; //7= sio(1byte)+ routing label(6bytes) - } - else - { log("incorrect MTPServiceType - programming error-> packet dropped"); - return; - } - - // checking SIO field (first incoming byte) - management or test message - switch (si) - { - case 0: processing_MTP3_management_msg(inbuffer+offset,length-offset); - return; - case 1: //MTP3itu - case 2: processing_MTP3_test_msg(inbuffer+offset,length-offset); //MTP3ansi - return; - default: - break; - } - - // filling up TTCN structure - if ((Loop==MTP3_ON) || (!Filter) || (Filter&&Check_PcMatch(Sut_Pc,Tester_Pc,&inbuffer[offset+1]))) - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - BITSTRING sio_bit = oct2bit(OCTETSTRING(1,inbuffer+offset)); - recv_sio.ni()= substr(sio_bit,0,2); - recv_sio.prio()= substr(sio_bit,2,2); - recv_sio.si()= substr(sio_bit,4,4); - recv_msg.sio() = recv_sio; - unsigned int sls,opc,dpc; - if ( (MTPServiceType==MTP3iup) && (si==4) ) - GetPointCodesIUP(sls,opc,dpc,&inbuffer[1]); - else - GetPointCodes(sls,opc,dpc,&inbuffer[offset+1]); - recv_msg.sls() = sls; - recv_msg.opc() = opc; - recv_msg.dpc() = dpc; - int len; - len= length-labellen-offset; //len= length-labellen; - recv_msg.data() = OCTETSTRING(len, &inbuffer[offset+labellen]); - incoming_message( recv_msg ); - } - else - { log("The rooting label (OPC, DPC) not matched with the filter setting -> packet dropped."); - return; - } -} - -void MTP3asp__PT_PROVIDER::processing_MTP3_management_msg(unsigned char* inbuff,int len) -{ - int outlen=0; - int labellen; // sio+routinglabel length - int chm_addlen; // (Changeback) additional length = Heading Code + SLC+ (changeback codes) - int mim_addlen; // (MIM) -"- - unsigned int offset = 0; - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - - if ( MTPServiceType==MTP3itu || MTPServiceType==MTP3iup) - { labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - chm_addlen = 2; - mim_addlen = 1; - } - else if ( MTPServiceType==MTP3ansi ) - { labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T.1.111.4 - chm_addlen = 3; - mim_addlen = 2; - } - else if (MTPServiceType==MTP3ttc) - { //if ( mtp3_ni == 0 ) { labellen=5;} //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - //else { - labellen=6; - //} //sio(1byte)+ routing label(6bytes) see 3/15517-FAY 112 011/2 or jt-q704. - } - else if (MTPServiceType==MTP3mpt) - { if ( mtp3_ni == 2 ) { labellen=8; } - else { labellen=5; } - chm_addlen = 2; - mim_addlen = 1; - } - else if (MTPServiceType==MTP3bttc) - { labellen=7;//sio(1byte)+routing label(6bytes) see 3/15517-FAY 112 011/2 or jt-q704 - offset = 1; - } - else - { log("incorrect MTPServiceType- programming error-> packet dropped"); - return; - } - - if (MTPServiceType==MTP3bttc) - { - buffer[0]=*((const unsigned char*)bttc_oct); //additional stored octet in front - buffer[1]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[2],&inbuff[1],len)) - { log("incorrect incoming management message -> packet dropped."); - return; - } - } - else - { - buffer[0]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[1],&inbuff[1],len)) - { log("incorrect incoming management message -> packet dropped."); - return; - } - } - - // Changeover & changeback(CHM) see ITU: Q.704/15.4.1 ANSI: T.1.111.4/15.2-4 - if (inbuff[labellen]==0x51) //CBD - { - outlen=labellen+chm_addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x61; // Heading Code <- CBA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],len-labellen-1); - outlen = len; - } - } - else if (inbuff[labellen]==0x16) //MIM H0=6=Mgmt inhibit msg, H1=1=LIN - { - outlen=labellen+mim_addlen; - if (len packet dropped."); - return; - } - else - { - buffer[offset + labellen]= 0x56; // LIN -> LID ; LID = link inhibit denied - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); //SLC+spare+... - outlen = len; - } - } - else if (inbuff[labellen]==0x17 && (MTPServiceType==MTP3iup)) - { - if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - return; - } - -/* else if (inbuff[labellen]==0x17 && (MTPServiceType==MTP3iup)) //TRM H0=7, H1=1 : TRA - { - outlen=labellen+1; - if (len packet dropped."); - return; - } - else - { - outlen = len; - } - }*/ - else - { log("This management message type is not supported -> packet dropped."); - return; - } - - // send message - log("function processing_MTP3_management_msg sends a msg"); - send_msg(buffer, outlen+offset); -} - -// processing MTP3 test msg -// Signalling link test message handling according to Q.707 (ITU) and T1.111.7-2001 (ANSI) -void MTP3asp__PT_PROVIDER::processing_MTP3_test_msg(unsigned char* inbuff,int len) -{ - int outlen=0; - int labellen; // sio+routinglabel length - int addlen; //Heading Code+length indicator - //unsigned int ni; //network indicator - OCTETSTRING bttc_oct = int2oct(stored_bttc_octet, 1); // additional octet for MTP3bttc - unsigned int offset = 0; - if ( MTPServiceType==MTP3itu || MTPServiceType==MTP3iup) - { - labellen=5; //ITU-T:sio(1byte) + routing label(4byte) see /Q.704/15.4.1 - addlen = 2; //HC(1 byte)+length ind(1 byte) see Q.707/5.8 - } - else if ( MTPServiceType==MTP3ansi ) - { - labellen=8; //ANSI: sio(1byte) +routing label(7byte) see T1.111.4 - addlen = 2; //HC(1byte) +(length ind+SLC(1byte)) see T1.111.7-2001/5 - } - else if (MTPServiceType==MTP3ttc) - { - /* if (mtp3_ni == 0) { - debuglog("processing_MTP3_test_msg/TTC (Japanese) international"); - labellen=5; //TTC (Japanese) international - addlen=2; - } else { - */ - labellen=6; // previously 7 - // TTC national [ 56bits=sio(1byte)+routing label ] - // r.label= dpc(2bytes)+opc(2bytes)+sls(4bit)+12bits (?) - addlen=2; - //} - } - else if (MTPServiceType==MTP3mpt) - { - if (mtp3_ni == 2) - { labellen=8; //MPT national - addlen=2; - } - else - { labellen=5; // MPT international - addlen=2; - } - } - else if (MTPServiceType==MTP3bttc) - { - labellen=7; - addlen=2; - offset = 1; - } - else - { log("incorrect MTPServiceType - programming error-> packet dropped"); - return; - } - - if (MTPServiceType==MTP3bttc) - { - buffer[0]=*((const unsigned char*)bttc_oct); //additional stored octet in front - buffer[1]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[2],&inbuff[1],len)) - { - log("incorrect incoming test message -> packet dropped."); - return; - } - } - else - { - buffer[0]=inbuff[0]; //SIO - if (!ChangePointCodes(&buffer[1],&inbuff[1],len)) - { - log("incorrect incoming test message -> packet dropped."); - return; - } - } - - // Test message handling: SLTM->SLTA, SRT->SRA, SLTA->TRA, others only logged - debuglog("\n==>Test message handling: msg type:%x\n", inbuff[labellen] ); // temporary - switch( inbuff[labellen] ) - { - case 0x11: //SLTM - log("MTP3/SLTM message received"); - outlen=labellen+addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x21; // SLTA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); - outlen = len; - } - break; - case 0x21: //SLTA - if(!strncmp((const char *)(inbuff+labellen+addlen),(const char *)ttcn_in_sltm,sizeof_ttcn_in_sltm)) - { - log("MTP3/SLTA message received for SLTM sent by Test Port-> TRA message sent"); - buffer[offset]--; - buffer[offset + labellen]= 0x17; // TRA - outlen = labellen+1; - return; -// if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - } - else - { - log("MTP3/SLTA message received -> packet dropped"); - return; - } - break; - case 0x23: // TTC (Japanese) SRT (Signalling Routing Test signal) - log("MTP3ttc/SRT message received"); - outlen=labellen+addlen; - if (len packet dropped."); - return; - } - else - { buffer[offset + labellen]= 0x84; // TTC (Japanese) SRA - memcpy(&buffer[offset + labellen+1],&inbuff[labellen+1],(len-labellen-1)); - outlen = len; - } - break; - case 0x84: // TTC (Japanese) SRA (Signalling Routing test Ack signal) - log("MTP3ttc/SRA message received -> packet dropped"); - return; - default: - log("This management message type is not supported -> packet dropped "); - return; - } - - // send message - log("function processing_MTP3_test_msg sends a message"); - send_msg( buffer,outlen+offset); -} - -// Point Code Manipulation (Get/Set/Change) -// ------------------------------------------------- -void MTP3asp__PT_PROVIDER::GetPointCodes(unsigned int &sls,unsigned int &opc,unsigned int &dpc, unsigned char* msg) -{ - unsigned int label; - sls=0; opc=0; dpc=0; - unsigned long long int Label; - - switch( MTPServiceType) - { - case MTP3itu: - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3itu"); - break; - case MTP3iup: - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3iup"); - break; - case MTP3ansi: - Label=decode_56bLSB_int(msg); - sls = (Label >> 48) & 0xFF; //sls = (Label&0x00FF000000000000)>>48; - opc = (Label >> 24) & 0xFFFFFF;//opc = (Label&0x0000FFFFFF000000)>>24; - dpc = Label & 0xFFFFFF; //dpc = (Label&0x0000000000FFFFFF); - debuglog("Function GetPointCodes called for service type MTP3ansi"); - break; - case MTP3ttc: - /* - if( mtp3_ni == 0) - { - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; - debuglog("Function GetPointCodes called for service type MTP3ttc/international"); - } else - {*/ - Label=decode_48bLSB_int(msg); //0x010203040506 - sls = (Label>>32)&0xF; // sls = (Label&0x000F00000000)>>32; // only 4 bits!!! - opc = (Label>>16)&0xFFFF;//opc = (Label&0x0000FFFF0000)>>16; - dpc = Label&0xFFFF; //dpc = (Label&0x00000000FFFF); - debuglog("Function GetPointCodes called for service type MTP3ttc/national"); - //} - break; - case MTP3bttc: - Label=decode_48bLSB_int(msg); - sls = (Label>>32)&0xF; // sls = (Label&0x000F00000000)>>32; // only 4 bits!!! - opc = (Label>>16)&0xFFFF;//opc = (Label&0x0000FFFF0000)>>16; - dpc = Label&0xFFFF; //dpc = (Label&0x00000000FFFF); - debuglog("Function GetPointCodes called for service type MTP3bttc/national"); - break; - case MTP3mpt: - if( mtp3_ni == 2) - { - Label=decode_56bLSB_int(msg); - sls = (Label >> 48) & 0xFF; //sls = (Label&0x00FF000000000000)>>48; - opc = (Label >> 24) & 0xFFFFFF;//opc = (Label&0x0000FFFFFF000000)>>24; - dpc = Label & 0xFFFFFF; //dpc = (Label&0x0000000000FFFFFF); - debuglog("Function GetPointCodes called for service type MTP3mpt(nat)"); - } - else - { - label= decode_32bLSB_int(msg); - sls = (label>>28)&0xF; //sls = (label&0xF0000000)>>28; - opc = (label>>14)&0x3FFF; //opc = (label&0x0FFFC000)>>14; - dpc = label&0x3FFF; //dpc = (label&0x00003FFF); - debuglog("Function GetPointCodes called for service type MTP3mpt(int)"); - } - break; - default: - break; - } - debuglog("sls:%u opc:%u, dpc:%u",sls,opc,dpc); -} -//------------ - -void MTP3asp__PT_PROVIDER::GetPointCodesIUP(unsigned int &cic,unsigned int &opc,unsigned int &dpc, unsigned char* msg) -{ - debuglog("Function GetPointCodesIUP called"); - cic=0; opc=0; dpc=0; - unsigned long long int Label; - Label=decode_40bLSB_int(msg); //0x0102030405 - cic = (Label>>28)&0xFFF; //cic = (label&0xFFF0000000)>>28; - opc = (Label>>14)&0x3FFF; //opc = (label&0x000FFFC000)>>14; - dpc = Label&0x3FFF; //dpc = (label&0x0000003FFF); - debuglog("cic:%u opc:%u, dpc:%u",cic,opc,dpc); -} - -void MTP3asp__PT_PROVIDER::SetPointCodes(unsigned int sls,unsigned int opc,unsigned int dpc, unsigned char* msg) -{ - unsigned long long int Sls,Opc,Dpc; - - switch( MTPServiceType) - { - case MTP3itu: - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3itu"); - break; - case MTP3iup: - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3iup"); - break; - case MTP3ansi: - Sls=sls; Opc=opc; Dpc=dpc; - encode_56bLSB_int( msg, ((Sls<<48)|(Opc<<24)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3ansi"); - break; - case MTP3ttc: - /* if ( mtp3_ni == 0 ){ - encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3ttc/international"); - } else { - */ - Sls=sls; Opc=opc; Dpc=dpc; - encode_48bLSB_int( msg, ((Sls<<32)|(Opc<<16)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3ttc/national"); - //} - break; - case MTP3bttc: - Sls=sls; Opc=opc; Dpc=dpc; - encode_48bLSB_int( msg, ((Sls<<32)|(Opc<<16)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3bttc/national"); - break; - case MTP3mpt: - if ( mtp3_ni == 2 ) - { Sls=sls; Opc=opc; Dpc=dpc; - encode_56bLSB_int( msg, ((Sls<<48)|(Opc<<24)|Dpc)); - debuglog("Function SetPointCodes called for service type MTP3mpt(nat)"); - } - else - { encode_32bLSB_int( msg, ((sls<<28)|(opc<<14)|dpc )); - debuglog("Function SetPointCodes called for service type MTP3mpt(int)"); - } - break; - default: - break; - } -} -//------------ - -void MTP3asp__PT_PROVIDER::SetPointCodesIUP(unsigned int cic,unsigned int opc,unsigned int dpc, unsigned char* msg) -{ - unsigned long long int Cic,Opc,Dpc; - Cic=cic; Opc=opc; Dpc=dpc; - debuglog("Function SetPointCodesIUP called"); - encode_40bLSB_int( msg, ((Cic<<28)|(Opc<<14)|Dpc )); -} - -//Changes the Point codes: dpc<->opc ie. destination <->orig -// inbuff starts from dpc i.e doesn't contain sio !!!! -int MTP3asp__PT_PROVIDER::ChangePointCodes(unsigned char* outbuff, unsigned char *inbuff, int len) -{ - switch( MTPServiceType) - { - case MTP3itu: - case MTP3iup: - if (len<5) - { warn("MTP3itu:len<5. Too short message!"); return 0; }; - break; - case MTP3ansi: - if (len<9 ) return 0; - break; - case MTP3ttc: - //if ( mtp3_ni == 0 && len<5) - //{ warn("MTP3ttc:len<5. Too short message!"); return 0; } - //else - if (len<6) - { warn("MTP3ttc:len<6. Too short message!"); return 0; } - break; - case MTP3bttc: - if (len<7) - { warn("MTP3bttc:len<7. Too short message!"); return 0; } - break; - case MTP3mpt: - if ( mtp3_ni == 2 && len<8) - { warn("MTP3mpt:len<8. Too short message!"); return 0; } - else if (len<5) - { warn("MTP3mpt:len<5. Too short message!"); return 0; } - break; - default: - warn("Unknown MTPServiceType!!!"); - break; - } - unsigned int sls,opc,dpc; - GetPointCodes(sls,opc,dpc,inbuff); - SetPointCodes(sls,dpc,opc,outbuff); - return 1; -} -//------------ - -int MTP3asp__PT_PROVIDER::Check_PcMatch(unsigned int opc, unsigned int dpc, unsigned char *buff) -{ - unsigned int temp_opc,temp_dpc,temp_sls; - - GetPointCodes(temp_sls,temp_opc,temp_dpc,buff); - if ( (temp_opc == opc) && (temp_dpc == dpc) ) return 1; - return 0; -} -//------------ - - -// ------------------------------------------------- -// M3UA Functions and definitions for test with SEA -// ------------------------------------------------- - -// Structures for M3UA -static unsigned char aspup_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class: ASPSM - M3UA_MSG_TYP_ASPSM_ASPUP, //Msg type: ASPUP - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets - // ,PAR_PREFIX_COMMON, //optional Info string tag, in included, then msg - // PAR_INFO_STR //msg length should be +20, that is 28=0x1c - // 0x00,0x0f, // length: "TTCN-3 Executor" is 15 chars - // 'T', 'T', 'C', 'N', - // '-', '3', ' ', 'E', - // 'x', 'e', 'c', 'u', - // 't', 'o', 'r', 0x00 //las octet is padding -}; -const int sizeof_aspup_msg = 8; - -static unsigned char aspupack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class: ASPSM - M3UA_MSG_TYP_ASPSM_ASPUPAck, //Msg type: ASPUP - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspupack_msg = 8; - -static unsigned char aspac_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPAC, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspac_msg = 8; - -// ASP Active Acknowledge msg: -static unsigned char aspac_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPACAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspac_ack_msg = 8; - -static unsigned char aspia_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPTM, //Msg class - M3UA_MSG_TYP_ASPTM_ASPIAAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspia_ack_msg = 8; - -// ASP DOWN Acknowledge msg: -static unsigned char aspdn_ack_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_ASPSM, //Msg class - M3UA_MSG_TYP_ASPSM_ASPDNAck, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x08 // length ends = 8 octets -}; -const int sizeof_aspdn_ack_msg = 8; - -//ASP Destination Available msg: -static unsigned char dava_1apc_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - //or updated doc 2/1056-FCPW 101 86/P-1 - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_SSNM, //Msg class - M3UA_MSG_TYP_SSNM_DAVA, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x10, // length ends, 16 octets - //Affected point code - PAR_PREFIX_COMMON, - PAR_AFFECTED_PC, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // point code placeholder begins - 0x00, // - 0x00, // - 0x00 // point code placeholder ends -}; -const int sizeof_dava_1apc_msg = 16; - -static unsigned char duna_1apc_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_SSNM, //Msg class - M3UA_MSG_TYP_SSNM_DUNA, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x10, // length ends, 16 octets - //Affected point code - PAR_PREFIX_COMMON, - PAR_AFFECTED_PC, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // point code placeholder begins - 0x00, // - 0x00, // - 0x00 // point code placeholder ends -}; -const int sizeof_duna_1apc_msg = 16; - -static unsigned char error_msg[] = -{ - //common MsUA msg hdr, see M3UA PS - //Doc no. 1/1056-FCP 103 3571/F Uen, RevA - 0x01, //Release Version: 01 - 0x00, //reserved - M3UA_MSG_CLS_MGMT, //Msg class - M3UA_MSG_TYP_MGMT_ERR, //Msg type - 0x00, //Msg length begins (4 octets) - 0x00, // - 0x00, // - 0x18, // length ends, 16+8 octets - // Error code field: - PAR_PREFIX_COMMON, - PAR_ERROR_CODE, - 0x00, //par length begins (2 octets) - 0x08, //length ends, 8 octets - 0x00, // error code placeholder begins (M3UA_MSG_OFFS+4) - 0x00, // - 0x00, // - 0x00, // error code placeholder ends - // additional field: - 0x00, // M3UA_MSG_OFFS+8 - 0x00, // Routing context or Network Appearanance or APC or DI = error_code_id - 0x00, // par length begins (2 octets) - 0x08, // length ends, 8 octets - 0x00, // value placeholder begins M3UA_MSG_OFFS+12 - 0x00, // - 0x00, // - 0x00 // value place holder ends -}; -const int sizeof_error_msg = 24; - -void MTP3asp__PT_PROVIDER::M3UA_user_unmap(const char *system_port) -{ - MTP3_close_connection(); - dynamicConnection = FALSE; -} -//------------ - -void MTP3asp__PT_PROVIDER::M3UA_user_map(const char *system_port) -{ - M3UAState = AssocDown; - Check_TestPort_Variables(); - if(dynamicConnection) - { - connectionUp = FALSE; - } - else - { - MTP3_open_channel(TRUE); - M3UA_user_connect(); - } -} -//------------ - -void MTP3asp__PT_PROVIDER::M3UA_user_connect() -{ - M3UAState = AssocEstabl; - // Sending out an ASPUP message - log("Message ASPUP will be sent"); - send_msg(aspup_msg, sizeof_aspup_msg); - // NOTE: the ASPUPAck will be handled by M3UA_interpreter, which - // also will take care of sending ASPAC upon receiving the ASPUPAck -} -//------------ - -// M3UA_interpreter -void MTP3asp__PT_PROVIDER::M3UA_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) -{ - if ((length==0) || (inbuffer==NULL)) - { warn("0 byte long message received -> packet dropped."); - return; - } - - if (length==1) - { - log("1 byte long internal SEA message received -> packet dropped."); - return; - } - - if ( !strcmp((const char*)inbuffer,"start") ) - { log("start message received from SEA"); - return; - } - else if (!strcmp((const char*)inbuffer,"stop")) - { log("stop message received from SEA"); - return; - } - - // writing out the contents of the buffer - OCTETSTRING buff(length,inbuffer); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("incoming buffer: "); - buff.log(); - TTCN_Logger::end_event(); - - // version checking - if ( inbuffer[M3UA_VER_OFFS] != M3UA_version ) - { warn("Incompatible M3UA protocol version in header -> packet dropped"); - return; - } - - //length checking - unsigned int indicated_length = decode_32b_int(inbuffer + M3UA_LGT_OFFS ); - if ( indicated_length != (unsigned)length) - warn("Length in common header (%d) mismatches received buffer length (%d)," - "Assuming that it is because of the omission of final parameter padding" - "in indicated length",indicated_length, length); - - // checking MSG class - int unprocessed_chars = 0; - switch (inbuffer[M3UA_CLS_OFFS]) - { - case M3UA_MSG_CLS_MGMT: - unprocessed_chars = processing_M3UA_MGMT_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_TRNSFM : - unprocessed_chars = processing_M3UA_Transfer_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_SSNM : - unprocessed_chars = processing_M3UA_SSNM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_ASPSM : - unprocessed_chars = processing_M3UA_ASPSM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_ASPTM : - unprocessed_chars = processing_M3UA_ASPTM_msg(inbuffer, length); - break; - case M3UA_MSG_CLS_RKM : - unprocessed_chars = processing_M3UA_RKM_msg(inbuffer, length); - break; - default: - unprocessed_chars = processing_M3UA_unsupported_msg_class(inbuffer, length); - break; - } - debuglog("%d chars remained unprocessed (might be due to padding)", unprocessed_chars); -} -//------------ - -//processing M3UA MGMT msg -int MTP3asp__PT_PROVIDER::processing_M3UA_MGMT_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_MGMT_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: Mgmt, "); - switch (inbuffer[M3UA_TYP_OFFS])//msg type - { - case M3UA_MSG_TYP_MGMT_ERR: - TTCN_Logger::log_event("type: ERROR-> ignored"); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - case M3UA_MSG_TYP_MGMT_NTFY: - TTCN_Logger::log_event("type: NOTIFY -> ignored"); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - default: - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class MGMT -> packet dropped.", inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("}"); - TTCN_Logger::end_event(); - break; - } - return length - offset; -} -//------------ - -//processing M3UA SSNM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_SSNM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_SSNM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: SSNM, "); - int offset = M3UA_MSG_OFFS; //pointer for processing - - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_SSNM_DAUD: - while (offset <= length-8 ) //processing potential params - { - switch (inbuffer[offset++]) //1st octet of tag - { - case PAR_PREFIX_COMMON: - TTCN_Logger::log_event (" DAUD: COMMON parameter "); - switch (inbuffer[offset++]) //2nd octet of COMMON tag - { - case PAR_ROUTING_CTX: - TTCN_Logger::log_event ("Routing Context (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - case PAR_INFO_STR: - TTCN_Logger::log_event ("Info String (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - case PAR_AFFECTED_PC: - TTCN_Logger::log_event ("Affected Point Code -> will send DUNA/DAVA, "); - TTCN_Logger::log_event("will ignore remainder parameters after APC}"); - TTCN_Logger::end_event(); - Send_DAVA_DUNA_to_APCinDAUD(Tester_Pc, inbuffer, offset); - return length-offset; - default: - TTCN_Logger::log_event ("invalid COMMON param tag:0x%02x%02x-> skipped", PAR_PREFIX_COMMON, inbuffer[offset-1]); - send_M3UA_error_msg( PAR_ERRC_PARFE, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - break; - } - break; - case PAR_PREFIX_M3UA: - TTCN_Logger::log_event ("DAUD: M3UA parameter: "); - switch (inbuffer[offset++]) //2nd octet of M3UA tag - { - case PAR_NETW_APP: - TTCN_Logger::log_event ("Network Appearance (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - default: - TTCN_Logger::log_event ("invalid M3UA param tag:0x%02x%02x-> skipped", - PAR_PREFIX_M3UA, inbuffer[offset-1]); - send_M3UA_error_msg( PAR_ERRC_PARFE, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - } - break; - default: //1st octet of tag - TTCN_Logger::log_event ("invalid 1st octet param tag:0x%02x in DATA (packet dropped)",inbuffer[offset-1]); - close_log_event(); - return length -offset; - break; - } - } - break; - case M3UA_MSG_TYP_SSNM_DAVA: // Destination Available // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DAVA -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DUNA: // Destination Unavailable // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DUNA -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_SCON: // Signalling Congestion // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_SCON -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DUPU: //Destinationn User Part Unavailable // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DUPU -> ignored"); - close_log_event(); - break; - case M3UA_MSG_TYP_SSNM_DRST: //Destination Restricted // Notification to the user part ????? - TTCN_Logger::log_event("type: SSNM_DRST -> ignored"); - close_log_event(); - break; - default: //msg type - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - TTCN_Logger::log_event("Unsupported M3UA msg type -> packet dropped."); - close_log_event(); - break; - } - return length - offset; -} -//------------ - -//processing M3UA ASPSM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_ASPSM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_ASPSM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: ASPSM, "); - - int offset = M3UA_MSG_OFFS; //pointer for processing - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_ASPSM_ASPUP: - TTCN_Logger::log_event("type: ASPSM_ASPUP -> ASPUPAck will be sent"); - close_log_event(); - send_msg(aspupack_msg, sizeof_aspupack_msg); - break; - case M3UA_MSG_TYP_ASPSM_ASPDN: - TTCN_Logger::log_event("type: ASPSM_ASPDN -> ASPDNAck will be sent"); - close_log_event(); - send_msg(aspdn_ack_msg, sizeof_aspdn_ack_msg); - break; - case M3UA_MSG_TYP_ASPSM_BEAT: - TTCN_Logger::log_event("type: ASPSM_BEAT -> ASPSM_BEATAck will be sent"); - close_log_event(); - //Sending back the packet as acknowledge: - inbuffer[M3UA_TYP_OFFS]= M3UA_MSG_TYP_ASPSM_BEATAck; - send_msg(inbuffer, length); - break; - case M3UA_MSG_TYP_ASPSM_ASPUPAck: - TTCN_Logger::log_event("type: ASPSM_ASPUPAck -> ASPAC will be sent"); - M3UAState = AssocInac; - TTCN_Logger::log_event(" M3UAState's been changed to AssocInac"); - close_log_event(); - send_msg(aspac_msg, sizeof_aspac_msg ); - break; - case M3UA_MSG_TYP_ASPSM_ASPDNAck: - M3UAState = AssocDown; - TTCN_Logger::log_event(" M3UAState's been changed to AssocDown"); - TTCN_Logger::log_event("type: ASPSM_ASPDNAck -> nothing will be sent"); - close_log_event(); - break; - case M3UA_MSG_TYP_ASPSM_BEATAck: - TTCN_Logger::log_event("type: ASPSM_BEATAck -> nothing will be sent"); - close_log_event(); - break; - default: - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class ASPSM-> packet dropped.", (unsigned char)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - return length - offset; -} -//------------ - -//processing M3UA ASPTM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_ASPTM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_ASPTM_msg"); - TTCN_Logger::begin_event(TTCN_PORTEVENT); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: ASPTM, "); - - int offset = M3UA_MSG_OFFS; //pointer for processing - switch (inbuffer[M3UA_TYP_OFFS]) - { - case M3UA_MSG_TYP_ASPTM_ASPAC: //ASP Active - M3UAState = AssocActive; - TTCN_Logger::log_event("type: ASPTM_ASPAC -> ASPACAck will be sent"); - close_log_event(); - send_msg(aspac_ack_msg, sizeof_aspac_ack_msg); - break; - case M3UA_MSG_TYP_ASPTM_ASPIA: //ASP InActive - TTCN_Logger::log_event("type: ASPTM_ASPIA -> ASPIAAck will be sent"); - close_log_event(); - send_msg(aspia_ack_msg, sizeof_aspia_ack_msg); - break; - case M3UA_MSG_TYP_ASPTM_ASPACAck: - M3UAState = AssocActive; - TTCN_Logger::log_event("type: ASPTM_ASPACAck -> nothing will be sent"); - TTCN_Logger::log_event("M3UAState's been changed to AssocActive."); - close_log_event(); - break; - case M3UA_MSG_TYP_ASPTM_ASPIAAck: - TTCN_Logger::log_event("type: ASPTM_ASPIAAck -> nothing will be sent"); - close_log_event(); - break; - default: - TTCN_Logger::log_event("Unsupported M3UA msg type %x of class ASPSM-> packet dropped.", (unsigned char)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - return length - offset; -} -//------------ - -//processing M3UA RKM msg -int MTP3asp__PT_PROVIDER::processing_M3UA_RKM_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_RKM_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - warn("Unsupported M3UA msg class M3UA_RKM -> packet dropped."); - return length - offset; -} -//------------ - -//processing M3UA unsupported msg class -int MTP3asp__PT_PROVIDER::processing_M3UA_unsupported_msg_class(unsigned char* inbuffer,int length) -{ - warn("Unsupported M3UA msg class -> packet dropped."); - send_M3UA_error_msg( PAR_ERRC_UNSMC, inbuffer[M3UA_CLS_OFFS] ); - int offset = M3UA_MSG_OFFS; //pointer for processing - return length - offset; -} -//------------ - -// processing_M3UA_Transfer_msg - called if the msg class is "Transfer" i.e M3UA_MSG_CLS_TRNSFM: -int MTP3asp__PT_PROVIDER::processing_M3UA_Transfer_msg(unsigned char* inbuffer,int length) -{ - debuglog("Entering function:processing_M3UA_Transfer_msg"); - int offset = M3UA_MSG_OFFS; //pointer for processing - unsigned int recv_opc, recv_dpc,recv_si, recv_ni, recv_mp,recv_sls =0; - int param_length = 0; - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): {", get_name()); - TTCN_Logger::log_event("decoded msg class: DataTrnsf, "); - - switch (inbuffer[M3UA_TYP_OFFS]) //msg type - { - case M3UA_MSG_TYP_TRSNFM_DATA: - TTCN_Logger::log_event("msg type DATA, "); - while (offset <= length-8) //processing potential params - { - switch (inbuffer[offset++]) //1st octet of tag. Offset already incremented after the 'case' ! - { - case PAR_PREFIX_COMMON: - TTCN_Logger::log_event (" DATA: COMMON parameter, "); - switch (inbuffer[offset++]) //2nd octet of tag - { - case PAR_ROUTING_CTX: - TTCN_Logger::log_event ("Routing Context (unsupported par) -> skipped), "); - // Send back an error msg - skip_par_after_tag(inbuffer, offset); - break; - case PAR_CORREL_ID: - TTCN_Logger::log_event ("Correlation ID (unsupported par) -> skipped), "); - skip_par_after_tag(inbuffer, offset); - break; - default: - TTCN_Logger::log_event ("invalid COMMON param tag:0x%02x%02x -> skipped", PAR_PREFIX_COMMON, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - break; - } - case PAR_PREFIX_M3UA: - TTCN_Logger::log_event ("DATA: M3UA parameter: "); - switch (inbuffer[offset++]) //2nd octet of M3UA tag - { - case PAR_PROT_DATA: - //--------------------------------------------- - TTCN_Logger::log_event ("Protocol Data"); - // retrieving length - param_length = decode_16b_int(inbuffer+offset); offset+=2; - TTCN_Logger::log_event(", DATA: Length of Protocol Data parameter is %d",param_length); - // retrieving M3UA protocol data paremeter opc, dpc, si, ni, mp, - // sls - recv_opc = decode_32b_int(inbuffer+offset); offset +=4; - recv_dpc = decode_32b_int(inbuffer+offset); offset +=4; - recv_si = (unsigned int)(inbuffer[offset++]); - recv_ni = (unsigned int)(inbuffer[offset++]); - recv_mp = (unsigned int)(inbuffer[offset++]); - recv_sls = (unsigned int)(inbuffer[offset++]); - TTCN_Logger::log_event(", DATA: decoded Protocol Data parameter:"); - // filling up TTCN structure - if ((Loop==MTP3_ON) || - (!Filter) || - (Filter && - (recv_opc == (unsigned)Sut_Pc) && (recv_dpc == (unsigned)Tester_Pc) && - (recv_ni == (unsigned)mtp3_ni) - )) - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - recv_sio.ni()= int2bit(recv_ni,2); - recv_sio.prio()= int2bit(recv_mp,2); - recv_sio.si()= int2bit(recv_si,4); - recv_msg.sio() = recv_sio; - recv_msg.sls() = recv_sls; - recv_msg.opc()= recv_opc; - recv_msg.dpc() = recv_dpc;; - recv_msg.data() = OCTETSTRING(param_length-16, // 16 octet paramheader + 5 routing label - &inbuffer[offset]); - recv_msg.log(); - close_log_event(); - incoming_message ( recv_msg ); - offset += param_length-16; - return length - offset; - } - else - { - close_log_event(); - log("Either the received M3UA(OPC, DPC, SI) fields, or the embedded MTP3 rooting label (OPC, DPC) not matched with the filter setting -> packet dropped."); - return length - offset; - } - break; - default: - TTCN_Logger::log_event ("invalid M3UA param tag:0x%02x%02x-> skipped", PAR_PREFIX_M3UA, inbuffer[offset-1]); - skip_par_after_tag(inbuffer, offset); - } - break; - default: - TTCN_Logger::log_event ("invalid 1st octet param tag:0x%02x in DATA (packet dropped)",inbuffer[offset-1]); - close_log_event(); - return length -offset; - break; - } - }// Checking parameter tag (offset packet dropped", - (unsigned int)(inbuffer[M3UA_TYP_OFFS])); - close_log_event(); - send_M3UA_error_msg( PAR_ERRC_UNSMT, inbuffer[M3UA_TYP_OFFS]); - break; - } - - return length -offset; -} - -// Set M3UA SingleAPC - Stores field Single Affected Point Code -void MTP3asp__PT_PROVIDER::Set_M3UA_SingleAPC(unsigned int pc, unsigned char* apc_par) -{ - //setting par type to APC - apc_par[0] = PAR_PREFIX_COMMON; - apc_par[1] = PAR_AFFECTED_PC; - //setting the length to 4+4 = 8 - apc_par[2] = 0x00; - apc_par[3] = 0x08; - //setting the mask - apc_par[4] = 0x00; - //setting the pc - encode_24b_int(apc_par+5,pc); -} - -// Send DAVA DUNA to APCinDAUD -void MTP3asp__PT_PROVIDER::Send_DAVA_DUNA_to_APCinDAUD(unsigned int dava_sep, unsigned char* inbuffer, int & offset) -{ - unsigned int length = decode_16b_int(inbuffer+offset); - offset +=2; - unsigned int current_pc; - - //checking the length - if ((length < 8) || (length%4)) - { warn("Invalid length in APC parameter -> not processed"); - return; - } - - for (unsigned int i = 4 ; i < length; i += 4) - { - if (inbuffer[offset++] == 0x00) // mask===>single pc - { - current_pc = decode_24b_int(inbuffer+offset); - offset +=3; - if (dava_sep == current_pc) //dava - { Set_M3UA_SingleAPC(dava_sep, dava_1apc_msg+M3UA_MSG_OFFS); - log("DAVA will be sent for pc=%d", dava_sep); - send_msg(dava_1apc_msg, sizeof_dava_1apc_msg); - } - else //duna - { Set_M3UA_SingleAPC(current_pc, duna_1apc_msg+M3UA_MSG_OFFS); - log("DUNA will be sent for pc=%d", current_pc); - send_msg(duna_1apc_msg, sizeof_duna_1apc_msg); - } - } - else //masked pc - { warn("Unsupported masking (mask=0x%02x) for PC=%d in APC parameter -> ignored", - inbuffer[offset-1], current_pc); - } - } - return; -} - -// send M3UA error msg -// send an eror msg with error_code. Additional parameter matches to the error code: -void MTP3asp__PT_PROVIDER::send_M3UA_error_msg(unsigned int error_code, unsigned int add_par ) -{ - encode_16b_int( error_msg+M3UA_MSG_OFFS+4, error_code); - encode_16b_int( error_msg+M3UA_MSG_OFFS+8, add_par); - send_msg(error_msg, sizeof_error_msg ); -}; - -// Coder functions for M3UA: int -> unsigned char array -//------------------------------------------------------ -// Result:Less significant byte in highest address -// Most Significant Byte first (in lowest address) = MSB = Big Endian = Network Byte Order -void MTP3asp__PT_PROVIDER::encode_32b_int(unsigned char *to, unsigned int from) -{ - to[3] = from & 0xFF; - from >>= 8; - to[2] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_32b_int(const unsigned char *from) -{ - return from[3] | (from[2] << 8) | (from[1] << 16) | (from[0] << 24); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_24b_int(unsigned char *to, unsigned int from) -{ - to[2] = from & 0xFF; - from >>= 8; - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_24b_int(const unsigned char *from) -{ - return from[2] | (from[1] << 8) | (from[0] << 16); -} -//------------ - -void MTP3asp__PT_PROVIDER::encode_16b_int(unsigned char *to, int from) -{ - to[1] = from & 0xFF; - from >>= 8; - to[0] = from & 0xFF; -} -//------------ - -unsigned int MTP3asp__PT_PROVIDER::decode_16b_int(const unsigned char *from) -{ - return from[1] | (from[0] << 8); -} -//------------ - -//skip par after tag -void MTP3asp__PT_PROVIDER::skip_par_after_tag(unsigned char* inbuffer, int &offset) -{ - offset += decode_16b_int(inbuffer+offset)-2; //the length contains - //the param hdr. itself - if (offset%4) offset += 4-(offset%4); //skipping padding -} -//------------ -#endif - - - -#ifdef TARGET_TEST -// -------------------------- -// Functions for Target testing -// -------------------------- -// In case of target this function handles the received message -void MTP3asp__PT_PROVIDER::message_incoming(const unsigned char* msg, int messageLength, int) -{ - OCTETSTRING rcvData = OCTETSTRING(messageLength, msg); - - int msgType = oct2int(substr(rcvData,0,1)); - switch (msgType) - { - case 0: //TRANSFERind message received - if(Tcp_is_up) //Registration was already performed - { - ASP__MTP3__TRANSFERind recv_msg; - MTP3__Field__sio recv_sio; - BITSTRING sio_bit = oct2bit(substr(rcvData,5,1)); - recv_sio.ni()= substr(sio_bit,0,2); - recv_sio.prio()= substr(sio_bit,2,2); - recv_sio.si()= substr(sio_bit,4,4); - recv_msg.sio() = recv_sio; - recv_msg.opc() = oct2int(substr(rcvData,6,4)); - recv_msg.dpc() = oct2int(substr(rcvData,10,4)); - recv_msg.sls() = oct2int(substr(rcvData,14,1)); - recv_msg.data() = substr(rcvData,15,rcvData.lengthof()-15); - if (Tcp_is_up == 1) //No unregistration ongoing - incoming_message(recv_msg); - else //Unregistration ongoing - log("Received ASP_MTP3_TRANSFERind is ignored since unregistration is started."); - } - else - error("Message was received before successful registration in M3UA server."); - break; - - case 4: //Status message received - { - int status = oct2int(substr(rcvData,5,1)); - if(Tcp_is_up == 2) // Unregistration ongoing - { - const char * rcvDat = oct2str(rcvData); - log("Message \"%s\" received. Status = %i", rcvDat, status); - if (status == 2) - { - log("Unregistration performed."); - Tcp_is_up = 0; - } - else if (status == 3) - error("Unsuccessful unregistration."); - else if (status == 5) { - if(forward_status) { - incoming_message(ASP__MTP3__STATUS(NULL_VALUE)); - } - else { - warn("Invalid STATUS message received from M3UA server with status code=%d.", status); - } - } - } - else if(Tcp_is_up == 1) // Active state - { - if (status == 5) { - if(forward_status) { - incoming_message(ASP__MTP3__STATUS(NULL_VALUE)); - } - } - else { - warn("Invalid STATUS message received from M3UA server with status code=%d.", status); - } - } - else // Registration ongoing - { - const char * rcvDat = oct2str(rcvData); - log("Message \"%s\" received. Status = %i", rcvDat, status); - if (status == 0) - { - log("Registration performed."); - Tcp_is_up = 1; - } - else { - error("Unsuccessful registration."); - } - } - } - break; - case 5: - { - if(forward_pause) incoming_message(ASP__MTP3__PAUSE(NULL_VALUE)); - } - break; - case 6: - { - if(forward_resume) incoming_message(ASP__MTP3__RESUME(NULL_VALUE)); - } - break; - - - default: //Unexpected message received - warn("Invalid message received from M3UA server."); - } -} - -void MTP3asp__PT_PROVIDER::Check_Target_TestPort_Variables() -{ - if (Sut_Pc==-1) error("Parameter SUT_Pc is not set."); - if (Tester_Pc==-1) error("Parameter TESTER_Pc is not set."); - if (!Ni_is_set) error("Parameter NI is not set."); - if (M3UA_version==0) error("Parameter M3UA_version cannot be set to 0 in TargetM3UA mode."); - -//packet header - header_descr = new PacketHeaderDescr( 1, 4, PacketHeaderDescr::Header_MSB); -} - -void MTP3asp__PT_PROVIDER::Check_Target_TestPort_Variables_STC() -{ - if( destinationname == NULL) error("Parameter DestinationName is not set in TargetSTC mode."); - - header_descr = new PacketHeaderDescr( 1, 4, PacketHeaderDescr::Header_MSB); -} - -void MTP3asp__PT_PROVIDER::Target_user_map(const char *system_port) -{ - Tcp_is_up = 0; - Check_Target_TestPort_Variables(); - map_user(); - - OCTETSTRING tcpData = int2oct(2,1); //Message type - if( destinationname == NULL) - tcpData = tcpData + int2oct(char2oct(system_port).lengthof()+15,4); //Length - else - tcpData = tcpData + int2oct(char2oct(destinationname).lengthof()+15,4); - tcpData = tcpData + int2oct(mtp3_ni,1); - tcpData = tcpData + int2oct(Sut_Pc,4); - tcpData = tcpData + int2oct(Tester_Pc,4); - tcpData = tcpData + int2oct(M3UA_version,1); - if( destinationname == NULL) - tcpData = tcpData + char2oct(system_port); - else - tcpData = tcpData + char2oct(destinationname); - - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Registration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for REGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for REGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); -} - -void MTP3asp__PT_PROVIDER::TargetSTC_user_map(const char *system_port) -{ - Tcp_is_up = 0; - Check_Target_TestPort_Variables_STC(); - map_user(); - - OCTETSTRING tcpData = int2oct(2,1); //Message type - tcpData = tcpData + int2oct(char2oct(destinationname).lengthof()+15,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,4); - tcpData = tcpData + int2oct(0,1); - tcpData = tcpData + char2oct(destinationname); - - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Registration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for REGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for REGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); -} - -void MTP3asp__PT_PROVIDER::Target_user_unmap(const char *system_port) -{ - OCTETSTRING tcpData = int2oct(3,1); //Message type - tcpData = tcpData + int2oct(6,4); //Length - tcpData = tcpData + int2oct(0,1); - send_outgoing((const unsigned char*)tcpData,tcpData.lengthof()); - - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("MTP3 Test Port (%s): ", get_name()); - TTCN_Logger::log_event_str("Unregistration message sent: "); - tcpData.log(); - TTCN_Logger::end_event(); - - Tcp_is_up = 2; //Unregistration ongoing - - while (Tcp_is_up == 2) - { - int fd = get_socket_fd(); - pollfd pollFd = { fd, POLLIN, 0 }; - int nEvents = poll(&pollFd, 1, 3000 /* ms */); - if (nEvents == 0) - error("No response received for UNREGISTER message. Exiting after timeout."); - if (nEvents < 0 || (pollFd.revents & (POLLIN | POLLHUP)) == 0) - error("No response received for UNREGISTER message. Exiting after error (%d)", - (nEvents < 0) ? errno : 0); - Handle_Fd_Event(fd, TRUE, FALSE, FALSE); - } - unmap_user(); -} -#endif -} diff --git a/MTP3asp_CNL113337/src/MTP3asp_PT.hh b/MTP3asp_CNL113337/src/MTP3asp_PT.hh deleted file mode 100644 index 340f24ffa..000000000 --- a/MTP3asp_CNL113337/src/MTP3asp_PT.hh +++ /dev/null @@ -1,249 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2009 // -// // -// 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: MTP3asp_PT.hh -// Description: Implementation of port MTP3asp_PT -// This test port is written to connect ttcn to SEA -// according to specification ITU-T SS7 MTP3, ANSI, TCC, MPT, IETF, -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2009-04-03 -// Contact: http://ttcn.ericsson.se - - -#ifndef MTP3asp_PT_HH -#define MTP3asp_PT_HH - -#include - -#ifdef TARGET_TEST -#include "Abstract_Socket.hh" -#endif - -#ifndef TARGET_TEST -#include "mphclib.h" -#endif - - -#define MAXSIZE 1532 //+32 needed for M3UA -#define MTP3_ON 1 -#define MTP3_OFF 0 -namespace MTP3asp__Types { - class ASP__MTP3__TRANSFERind; - class ASP__MTP3__PAUSE; - class ASP__MTP3__RESUME; - class ASP__MTP3__STATUS; - class ASP__MTP3__TRANSFERreq; -} -namespace MTP3asp__PortType { - -class MTP3asp__PT_PROVIDER : public PORT -#ifdef TARGET_TEST - , public Abstract_Socket -#endif - { -protected: - // pointer to member: user_map/unmap methods - typedef void (MTP3asp__PT_PROVIDER::*usermap_t)(const char *system_port); - // pointer to member: user_connect methods - typedef void (MTP3asp__PT_PROVIDER::*userconnect_t)(); - // pointer to member: interpreter methods -#ifndef TARGET_TEST - typedef void (MTP3asp__PT_PROVIDER::*interpreter_t)(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - - void M3UA_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void M3UA_user_map(const char *system_port); - void M3UA_user_connect(); - void M3UA_user_unmap(const char *system_port); - void MTP3_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void MTP3_user_map(const char *system_port); // common for MTP3 ITU and MTP3 ANSI - void MTP3_user_connect(); - void MTP3_user_unmap(const char *system_port);// common for MTP3 ITU and MTP3 ANSI - void STC_user_connect(); - void STC_interpreter(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con); - void STC_user_map(const char *system_port); - void STC_user_unmap(const char *system_port); -#endif -#ifdef TARGET_TEST - //Map and unmap for target - void Target_user_map(const char *system_port); - void Target_user_unmap(const char *system_port); - void TargetSTC_user_map(const char *system_port); -#endif - -public: - MTP3asp__PT_PROVIDER(const char *par_port_name=NULL); - ~MTP3asp__PT_PROVIDER(); - - typedef enum { MTP3itu, MTP3ansi, MTP3ttc, MTP3mpt, M3UA, TargetM3UA, MTP3bttc,MTP3iup, STC, TargetSTC } MTPServiceType_t ; - - MTPServiceType_t MTPServiceType ; // ctor default is MTP3itu - void set_parameter(const char *parameter_name, const char *parameter_value); - void error(const char *msg, ...); - void log(const char *msg, ...); -#ifndef TARGET_TEST - void user_connect(); - - void set_channel(int chnl) {channel=chnl;}; - void MTP3_open_channel(boolean http); - void MTP3_close_connection(); - - boolean wait_for_open(); - int conn_state; - - interpreter_t interpreter; // pointer to interpreter members, ctor default is MTP3_ITU_interpreter - void doInterpret(unsigned char* inbuffer,int length,int from_channel,CONNECTION* con) - { (this->*interpreter)(inbuffer,length,from_channel, con); } -#endif - //parameter handling - boolean dynamicConnection, connectionUp; - char *hostname; - int httpport; - char *entityname; - int MTP_fd; - -protected: - void user_map(const char *system_port); - void user_unmap(const char *system_port); - - void debuglog(const char *msg, ...); - void warn(const char *msg, ...); - void close_log_event(); - - usermap_t user_map_p ; // pointer to user_map members, default is MTP3itu - usermap_t user_unmap_p; // pointer to user_unmap members, default is MTP3itu - userconnect_t user_connect_p; - - void user_start(); - void user_stop(); - - void outgoing_send(const MTP3asp__Types::ASP__MTP3__TRANSFERreq& send_par); - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__TRANSFERind& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__PAUSE& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__RESUME& incoming_par) = 0; - virtual void incoming_message - (const MTP3asp__Types::ASP__MTP3__STATUS& incoming_par) = 0; -#ifndef TARGET_TEST - void encode_56bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_56bLSB_int(const unsigned char *from); - void encode_48bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_48bLSB_int(const unsigned char *from); - void encode_40bLSB_int(unsigned char *to, unsigned long long int from); - long long unsigned int decode_40bLSB_int(const unsigned char *from); - void encode_32bLSB_int(unsigned char *to, unsigned int from); - unsigned int decode_32bLSB_int(const unsigned char *from); - void encode_24bLSB_int(unsigned char *to, int from); - unsigned int decode_24bLSB_int(const unsigned char *from); - void encode_16bLSB_int(unsigned char *to, int from); - unsigned int decode_16bLSB_int(const unsigned char *from); - void encode_32b_int(unsigned char *to, unsigned int from); - unsigned int decode_32b_int(const unsigned char *from); - void encode_24b_int(unsigned char *to, unsigned int from); - unsigned int decode_24b_int(const unsigned char *from); - void encode_16b_int(unsigned char *to, int from); - unsigned int decode_16b_int(const unsigned char *from); - void skip_par_after_tag(unsigned char* inbuffer, int &offset); - - void GetPointCodes(unsigned int &sls,unsigned int &opc,unsigned int &dpc, unsigned char* msg); - void GetPointCodesIUP(unsigned int &cic,unsigned int &opc,unsigned int &dpc, unsigned char* msg); - void SetPointCodes(unsigned int sls, unsigned int opc, unsigned int dpc, unsigned char* msg); - void SetPointCodesIUP(unsigned int cic, unsigned int opc, unsigned int dpc, unsigned char* msg); - int ChangePointCodes(unsigned char* outbuff, unsigned char *inbuff, int len); - void Set_M3UA_SingleAPC(unsigned int pc, unsigned char* apc_par); //for ITU and ANSI - bool Check_M3UA_SingleITUAPC(unsigned int pc, unsigned char* apc_par); - void Send_DAVA_DUNA_to_APCinDAUD(unsigned int dava_sep, unsigned char* inbuffer, int &offset ); - void processing_MTP3_management_msg(unsigned char* inbuff,int len); - void processing_MTP3_test_msg(unsigned char* inbuff,int len); - int processing_M3UA_MGMT_msg(unsigned char* inbuff,int len); - int processing_M3UA_Transfer_msg(unsigned char* inbuff,int len); - int processing_M3UA_SSNM_msg(unsigned char* inbuff,int len); - int processing_M3UA_ASPSM_msg(unsigned char* inbuff,int len); - int processing_M3UA_ASPTM_msg(unsigned char* inbuff,int len); - int processing_M3UA_RKM_msg(unsigned char* inbuff,int len); - int processing_M3UA_unsupported_msg_class(unsigned char* inbuff,int len); - int Check_PcMatch(unsigned int opc, unsigned int dpc, unsigned char *buff); - void send_msg(unsigned char *outbuff, int length); - void send_M3UA_error_msg(unsigned int error_code, unsigned int add_par ); - void Check_TestPort_Variables(); - void Check_TestPort_Variables_STC(); -#endif -#ifdef TARGET_TEST - void Check_Target_TestPort_Variables(); - void Check_Target_TestPort_Variables_STC(); - - //Functions for abstract socket handling - void message_incoming(const unsigned char*, int length, int client_id = -1); - void Add_Fd_Read_Handler(int fd) { Handler_Add_Fd_Read(fd); } - void Add_Fd_Write_Handler(int fd) { Handler_Add_Fd_Write(fd); } - void Remove_Fd_Read_Handler(int fd) { Handler_Remove_Fd_Read(fd); } - void Remove_Fd_Write_Handler(int fd) { Handler_Remove_Fd_Write(fd); } - void Remove_Fd_All_Handlers(int fd) { Handler_Remove_Fd(fd); } - void Handler_Uninstall() { Uninstall_Handler(); } - void Timer_Set_Handler(double call_interval, boolean is_timeout = TRUE, - boolean call_anyway = TRUE, boolean is_periodic = TRUE) { - Handler_Set_Timer(call_interval, is_timeout, call_anyway, is_periodic); - } - const char* local_address_name() { return "localIPAddr";} - const char* local_port_name() { return "localPort";} - const char* remote_address_name(){ return "M3UAtarget_TCP_IPAddr";} - const char* remote_port_name() { return "M3UAtarget_TCP_Port";} - const char* halt_on_connection_reset_name(){ return "halt_on_connection_reset";} - const char* server_mode_name() { return "client_mode";} - const char* socket_debugging_name(){ return "socket_debugging";} - const char* nagling_name() { return "nagling";} - const char* server_backlog_name(){ return "server_backlog";} - const PacketHeaderDescr* Get_Header_Descriptor() const {return header_descr;} -#endif - -private: - void Handle_Fd_Event(int fd, boolean is_readable, boolean is_writable, boolean is_error); - void Handle_Timeout(double time_since_last_call); - - unsigned char M3UA_version; - int channel; - unsigned char buffer[MAXSIZE]; - char *destinationname; - char *iid_string; - boolean Ni_is_set; - int Loop,Filter,Sut_Pc,Tester_Pc; - typedef enum { AssocDown, AssocEstabl, AssocInac, AssocActive} M3UAStateType_t; - M3UAStateType_t M3UAState; - int mtp3_ni; // network indicator in case of MTP3 - int stored_bttc_octet; // used for storage of an additional first byte in MTP3bttc - -#ifndef TARGET_TEST - MPH_IID iid; - CONNECTION *myConnection; -#endif - bool forward_resume, forward_pause, forward_status; -#ifdef TARGET_TEST - int Tcp_is_up; - PacketHeaderDescr *header_descr; - bool is_packet_hdr_length_offset, is_packet_hdr_nr_bytes_in_length, - is_packet_hdr_byte_order; - int packet_hdr_length_offset, packet_hdr_nr_bytes_in_length; - PacketHeaderDescr::HeaderByteOrder packet_hdr_byte_order; -#endif -}; - -extern BOOLEAN f__MTP3__SEA__connect__extern - (MTP3asp__PT_PROVIDER& portRef, const CHARSTRING& Hostname, - const INTEGER& Port, const CHARSTRING& EntityName,const BOOLEAN& Http); - -extern BOOLEAN f__MTP3__SEA__disconnect__extern - (MTP3asp__PT_PROVIDER& portRef); - -} -#endif diff --git a/MTP3asp_CNL113337/src/MTP3asp_PortType.ttcn b/MTP3asp_CNL113337/src/MTP3asp_PortType.ttcn deleted file mode 100644 index 7c5a06b43..000000000 --- a/MTP3asp_CNL113337/src/MTP3asp_PortType.ttcn +++ /dev/null @@ -1,66 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// 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: MTP3asp_PortType.ttcn -// Reference: ITU-T Recommendation Q.704, RFC3332 -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2008-02-07 -// Contact: http://ttcn.ericsson.se - -module MTP3asp_PortType -{ - - import from MTP3asp_Types all; -// ************************************************************************* -// * MTP3 port type definitions * -// ************************************************************************* - - // MTP3 port type used by the component up to the MTP3 SAP - // (eg. any component connected to the MTP3 test port) - type port MTP3asp_PT message - { - in ASP_MTP3_TRANSFERind; - in ASP_MTP3_PAUSE; - in ASP_MTP3_RESUME; - in ASP_MTP3_STATUS; - out ASP_MTP3_TRANSFERreq; - } with {extension "provider internal"} //!!ethlel - - // MTP3 port type used by the component up to the MTP3 SAP - // (e.g. the distribution component) - type port MTP3asp_SP_PT message - { - in ASP_MTP3_TRANSFERreq; - out ASP_MTP3_TRANSFERind; - } - with {extension "internal"} - -//Connecting functions -//---------------------------- -/* -ethlel - -external function f_MTP3_SEA_connect - ( inout MTP3asp_PT portRef, - in charstring Hostname, - in integer Port, - in charstring EntityName, - in boolean Http //or MPH Port is provided - )return boolean; - -external function f_MTP3_SEA_disconnect - ( inout MTP3asp_PT portRef - )return boolean; -*/ - - -}//eof module diff --git a/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn b/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn deleted file mode 100644 index e96f42016..000000000 --- a/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn +++ /dev/null @@ -1,324 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2006 // -// // -// 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: MTP3asp_Types.ttcn -// Description: CCSS7 Message Transfer Part primitive (ASP) definitions -// according to specification ITU-T SS7 MTP3, -// Reference: ITU-T Recommendation Q.704, RFC3332, ANSI T.1.111.1-2001, TCC -// Rev: R11A01 -// Prodnr: CNL 113 337 -// Updated: 2007-09-17 -// Contact: http://ttcn.ericsson.se -// -module MTP3asp_Types.objid - { - itu_t(0) identified_organization (4) etsi(0) reserved(127) - etsi_identified_organization(0) ericsson(5) testing (0) - generic(0) mtp3(0) v96(3) aspDefinitions(3) patchNo(0) - } - -{//start of the module - -// ************************************************************************* -// External encoding/decoding functions -// ************************************************************************* - -external function enc_MTP3_to_M3UAserver_msg (in MTP3_to_M3UAserver_msg pdu) - return octetstring - with { extension "prototype(convert)" - extension "encode(RAW)" - }; - -external function dec_MTP3_to_M3UAserver_msg(in octetstring stream) - return MTP3_to_M3UAserver_msg - with { extension "prototype(convert)" - extension "decode(RAW)" - }; - - -// ************************************************************************* -// * Type Definitions Part * -// ************************************************************************* -group Types -{ - group MessageTypes - { - group ASPs - { - //*********************************************************************** - //* ASP type definitions * - //* Note, that ASP types shall be TTCN-3 definitions to allow * - //* the use of anytype in the data field * - //*********************************************************************** - - type record MTP3_Field_sio - { - bitstring ni length(2), - bitstring prio length(2), - bitstring si length(4) - } with { variant "FIELDORDER(msb)"; - }; - - type record ASP_MTP3_TRANSFERind - { - MTP3_Field_sio sio, - integer opc, - integer dpc, - integer sls, - octetstring data - } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (sls) "FIELDLENGTH(8)" - }; - - type record ASP_MTP3_PAUSE {}; - - type record ASP_MTP3_RESUME {}; - - type record ASP_MTP3_STATUS {}; - - type record ASP_MTP3_TRANSFERreq - { - MTP3_Field_sio sio, - integer opc, - integer dpc, - integer sls, - octetstring data - } with { variant (opc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (dpc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (sls) "FIELDLENGTH(8)" - }; - }//end group ASPs - - //*********************************************************************** - //* Type definition of the message which is sent between MTP3 test port * - //* and SCTP server over TCP. * - //*********************************************************************** - group MTP3_SCTPserver - { - type record ASP_REGISTER_M3UA - { - integer ni (0..3), - integer sut_pc, - integer tester_pc, - integer m3ua_version, - charstring entity - } with { variant (ni) "FIELDLENGTH(8)"; - variant (sut_pc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (tester_pc) "BYTEORDER(last), FIELDLENGTH(32)"; - variant (m3ua_version) "FIELDLENGTH(8)" - }; - - - // Possible values: - // MTP3_to_SCTPserver_data/status: - const integer reg_ok_status := 0; - const integer reg_error_status := 1; - const integer unreg_ok_status := 2; - const integer unreg_error_status := 3; - - const integer send_error_status := 5; - const integer kill_status := 255; - - // MTP3_to_SCTPserver_data/pause: - const integer SCTP_COMLOST_pause := 0; - const integer M3UA_ASPDN_pause := 1; - const integer M3UA_ASPIA_pause := 2; - - // MTP3_to_SCTPserver_data/resume: - const integer ok_resume := 0; - - type union MTP3_to_SCTPserver_data - { - ASP_MTP3_TRANSFERind transfer_ind, - ASP_MTP3_TRANSFERreq transfer_req, - ASP_REGISTER_M3UA register, - integer unregister (0..255), - integer status (0..255), - integer pause (0..255), - integer resume (0..255) - } - - // MTP3_to_M3UAserver_msg/msgType: - const integer transfer_ind_msgType := 0; - const integer transfer_req_msgType := 1; - const integer register_msgType := 2; - const integer unregister_msgType := 3; - const integer status_msgType := 4; - const integer pause_msgType := 5; - const integer resume_msgType := 6; - - type record MTP3_to_M3UAserver_msg - { - integer msgType (0..255), - integer msgLength, - MTP3_to_SCTPserver_data data - } with { variant (data) "CROSSTAG( - transfer_ind, msgType = transfer_ind_msgType; - transfer_req, msgType = transfer_req_msgType; - register, msgType = register_msgType; - unregister, msgType = unregister_msgType; - status, msgType = status_msgType; - pause, msgType = pause_msgType; - resume, msgType = resume_msgType )"; - variant (msgLength) "FIELDLENGTH(32)"; - variant (msgLength) "LENGTHTO(msgType,msgLength,data)"; - variant (msgLength) "BYTEORDER(last)" - }; - }//end group MTP3_SCTPserver - }//end group Messagetypes -} with {encode "RAW"}//Types - -group Templates -{ - group MessageTemplates - { - group ASPtemplates - { - // ******************************************************************* - // * ASP template definitions * - // ******************************************************************* - - // Base templates - // These general templates can be used as an example or as a base - // template for other templates. - template ASP_MTP3_TRANSFERind t_ASP_MTP3_TRANSFERind - ( - template MTP3_Field_sio pl_SIO, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := pl_SIO, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_sio - ( - template bitstring pl_NI, - template bitstring pl_PRIO, - template bitstring pl_SI, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := - { - ni := pl_NI, - prio := pl_PRIO, - si := pl_SI - }, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind := - { - sio := ?, - opc := ?, - dpc := ?, - sls := ?, - data := ? - } - - template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq - ( - MTP3_Field_sio pl_SIO, - integer pl_OPC, - integer pl_DPC, - integer pl_SLS, - octetstring pl_data - ):= - { - sio := pl_SIO, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq_sio - ( - template bitstring pl_NI, - template bitstring pl_PRIO, - template bitstring pl_SI, - template integer pl_OPC, - template integer pl_DPC, - template integer pl_SLS, - template octetstring pl_data - ):= - { - sio := - { - ni := pl_NI, - prio := pl_PRIO, - si := pl_SI - }, - opc := pl_OPC, - dpc := pl_DPC, - sls := pl_SLS, - data := pl_data - } - - template ASP_MTP3_TRANSFERreq tr_ASP_MTP3_TRANSFERreq := - { - sio := ?, - opc := ?, - dpc := ?, - sls := ?, - data := ? - } - - template ASP_MTP3_TRANSFERind tr_ASP_MTP3_TRANSFERind_stc := - { - sio := - { - ni := '00'B, - prio := '00'B, - si := '0000'B - }, - opc := 0, - dpc := 0, - sls := 0, - data := ? - } - - template ASP_MTP3_TRANSFERreq t_ASP_MTP3_TRANSFERreq_stc - ( template octetstring pl_data ):= - { - sio := - { - ni := '00'B, - prio := '00'B, - si := '0000'B - }, - opc := 0, - dpc := 0, - sls := 0, - data := pl_data - } - - }//end group ASPtemplates - }//end group Messagetemplates -}//end group Templates - -}//end module - - diff --git a/SCCP_CNL113341/SCCP_CNL113341.tpd b/SCCP_CNL113341/SCCP_CNL113341.tpd deleted file mode 100644 index 31e515379..000000000 --- a/SCCP_CNL113341/SCCP_CNL113341.tpd +++ /dev/null @@ -1,87 +0,0 @@ - - - - SCCP_CNL113341 - - - - - - - - - - - - - - - - - - - USE_MTP3_DISTRIBUTOR - - - - - true - true - true - bin/SCCP_CNL113341 - Level 3 - Creating object files with dependency update - - - bin - - - - - - - true - true - true - bin/SCCP_CNL113341 - - USE_MTP3_DISTRIBUTOR - - Level 3 - Creating object files with dependency update - - - bin - - - - - - - true - true - true - bin/SCCP_CNL113341 - Level 3 - Creating object files with dependency update - - - bin - - - - - diff --git a/SCCP_CNL113341/demo/General_Types.ttcn b/SCCP_CNL113341/demo/General_Types.ttcn deleted file mode 120000 index 354ebf3fc..000000000 --- a/SCCP_CNL113341/demo/General_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../ProtocolModules/COMMON/src/General_Types.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/demo/MTP3asp_PT.cc b/SCCP_CNL113341/demo/MTP3asp_PT.cc deleted file mode 120000 index 44d08bbf4..000000000 --- a/SCCP_CNL113341/demo/MTP3asp_PT.cc +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_PT.cc \ No newline at end of file diff --git a/SCCP_CNL113341/demo/MTP3asp_PT.hh b/SCCP_CNL113341/demo/MTP3asp_PT.hh deleted file mode 120000 index 30dfc24c4..000000000 --- a/SCCP_CNL113341/demo/MTP3asp_PT.hh +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_PT.hh \ No newline at end of file diff --git a/SCCP_CNL113341/demo/MTP3asp_PortType.ttcn b/SCCP_CNL113341/demo/MTP3asp_PortType.ttcn deleted file mode 120000 index 199486403..000000000 --- a/SCCP_CNL113341/demo/MTP3asp_PortType.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_PortType.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/demo/MTP3asp_Types.ttcn b/SCCP_CNL113341/demo/MTP3asp_Types.ttcn deleted file mode 120000 index 9f03c54ed..000000000 --- a/SCCP_CNL113341/demo/MTP3asp_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../../../TestPorts/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/demo/Makefile.ini b/SCCP_CNL113341/demo/Makefile.ini deleted file mode 100644 index 4e764a323..000000000 --- a/SCCP_CNL113341/demo/Makefile.ini +++ /dev/null @@ -1,737 +0,0 @@ -# This Makefile was generated by the Makefile Generator -# of the TTCN-3 Test Executor version 1.7.pl0 -# for Gabor Bettesch (ethgbh@mwux018) on Tue Apr 3 10:18:42 2007 - -# Copyright 2000-2007 Test Competence Center, Ericsson R & D, Hungary -# For trouble reporting use the tool MTTSMS. -# For TR writers guide please visit the web page: http://ttcn.ericsson.se - -# The following make commands are available: -# - make, make all Builds the executable test suite. -# - make archive Archives all source files. -# - make check Checks the semantics of TTCN-3 and ASN.1 modules. -# - make clean Removes all generated files. -# - make compile Translates TTCN-3 and ASN.1 modules to C++. -# - make dep Creates/updates dependency list. -# - make objects Builds the object files without linking the executable. -# - make preprocess Preprocess TTCN-3 files. -# - make tags Creates/updates tags file using ctags. - -# WARNING! This Makefile can be used with GNU make only. -# Other versions of make may report syntax errors in it. - -# -# Do NOT touch this line... -# -.PHONY: all archive check clean dep objects preprocess - -# -# Set these variables... -# - -# The path of your TTCN-3 Test Executor installation: -# Uncomment this line to override the environment variable. -# TTCN3_DIR = - -# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32) -PLATFORM = SOLARIS8 - -# Your C++ compiler: -CXX = g++ - -# C preprocessor used for TTCN-3 files: -CPP = cpp - -# Flags for the C++ preprocessor (and makedepend as well): -CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(SEA_DIR)/include - -# Flags for preprocessing TTCN-3 files: -CPPFLAGS_TTCN3 = - -# Flags for the C++ compiler: -CXXFLAGS = -Wall - -# Flags for the linker: -LDFLAGS = - -# Flags for the TTCN-3 and ASN.1 compiler: -COMPILER_FLAGS = -L - -# Execution mode: (either ttcn3 or ttcn3-parallel) -TTCN3_LIB = ttcn3-parallel - -# The path of your OpenSSL installation: -# If you do not have your own one, leave it unchanged. -OPENSSL_DIR = $(TTCN3_DIR) - -SEA_DIR = /vobs/ttcn/TCC_Releases/Other/SEA_LATEST -# Directory to store the archived source files: -ARCHIVE_DIR = backup - -# -# You may change these variables. Add your files if necessary... -# - -# TTCN-3 modules of this project: -TTCN3_MODULES = General_Types.ttcn MTP3asp_PortType.ttcn MTP3asp_Types.ttcn SCCP_Emulation.ttcn SCCP_Types.ttcn SCCPasp_Types.ttcn SCCP_selftest.ttcn SCCP_Testcases.ttcn - -# TTCN-3 modules to preprocess: -TTCN3_PP_MODULES = SCCP_Mapping.ttcnpp - -# Files to include in TTCN-3 preprocessed modules: -TTCN3_INCLUDES = - -# ASN.1 modules of this project: -ASN1_MODULES = - -# TTCN-3 source files generated by the C preprocessor: -PREPROCESSED_TTCN3_MODULES = SCCP_Mapping.ttcn - -# C++ source & header files generated from the TTCN-3 & ASN.1 modules of -# this project: -GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(TTCN3_PP_MODULES:.ttcnpp=.cc) $(ASN1_MODULES:.asn=.cc) -GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) - -# C/C++ Source & header files of Test Ports, external functions and -# other modules: -USER_SOURCES = MTP3asp_PT.cc -USER_HEADERS = MTP3asp_PT.hh - -# Object files of this project that are needed for the executable test suite: -OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o) - -# Other files of the project (Makefile, configuration files, etc.) -# that will be added to the archived source files: -OTHER_FILES = Makefile SCCP_selftest.cfg - -# The name of the executable test suite: -TARGET = SCCP_selftest - -# -# Do not modify these unless you know what you are doing... -# Platform specific additional libraries: -# -SOLARIS_LIBS = -lsocket -lnsl -SOLARIS8_LIBS = -lsocket -lnsl -LINUX_LIBS = -FREEBSD_LIBS = -WIN32_LIBS = - -# -# Rules for building the executable... -# - -all: $(TARGET) ; - -objects: $(OBJECTS) ; - -$(TARGET): $(OBJECTS) - $(CXX) $(LDFLAGS) -o $@ $^ \ - -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \ - -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) \ - $(SEA_DIR)/lib/libmphclib.a - -.cc.o .c.o: - $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $< - -%.ttcn: %.ttcnpp $(TTCN3_INCLUDES) - $(CPP) -x c -nostdinc $(CPPFLAGS_TTCN3) $< $@ - -preprocess: $(PREPROCESSED_TTCN3_MODULES) ; - -$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile - @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi - -check: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) $^ - -compile: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $^ - $? - touch $@ - -browserdata.dat: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) - $(TTCN3_DIR)/bin/compiler -B -s $(COMPILER_FLAGS) $^ - -tags: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) \ -$(USER_HEADERS) $(USER_SOURCES) - $(TTCN3_DIR)/bin/ctags_ttcn3 --line-directives=yes $^ - -clean: - -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ - $(GENERATED_SOURCES) $(PREPROCESSED_TTCN3_MODULES) compile \ - browserdata.dat tags *.log - -dep: $(GENERATED_SOURCES) $(USER_SOURCES) - makedepend $(CPPFLAGS) $^ - -archive: - mkdir -p $(ARCHIVE_DIR) - tar -cvhf - $(TTCN3_MODULES) $(TTCN3_PP_MODULES) \ - $(TTCN3_INCLUDES) $(ASN1_MODULES) \ - $(USER_HEADERS) $(USER_SOURCES) $(OTHER_FILES) \ - | gzip >$(ARCHIVE_DIR)/`basename $(TARGET) .exe`-`date '+%y%m%d-%H%M'`.tgz - -# -# Add your rules here if necessary... -# - -# DO NOT DELETE - -General_Types.o: General_Types.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -General_Types.o: /usr/include/string.h /usr/include/iso/string_iso.h -General_Types.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -General_Types.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -General_Types.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -General_Types.o: /usr/include/stdio_impl.h -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -General_Types.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -General_Types.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -General_Types.o: /usr/include/sys/time.h /usr/include/sys/types.h -General_Types.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -General_Types.o: /usr/include/sys/select.h /usr/include/time.h -General_Types.o: /usr/include/iso/time_iso.h -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -General_Types.o: /usr/include/regex.h -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -General_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -MTP3asp_PortType.o: MTP3asp_PortType.hh MTP3asp_Types.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -MTP3asp_PortType.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_PortType.o: /usr/include/sys/feature_tests.h -MTP3asp_PortType.o: /usr/include/sys/isa_defs.h /usr/include/stdio.h -MTP3asp_PortType.o: /usr/include/iso/stdio_iso.h /usr/include/sys/va_list.h -MTP3asp_PortType.o: /usr/include/stdio_tag.h /usr/include/stdio_impl.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -MTP3asp_PortType.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -MTP3asp_PortType.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_PortType.o: /usr/include/sys/time.h /usr/include/sys/types.h -MTP3asp_PortType.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_PortType.o: /usr/include/sys/select.h /usr/include/time.h -MTP3asp_PortType.o: /usr/include/iso/time_iso.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -MTP3asp_PortType.o: /usr/include/regex.h -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -MTP3asp_PortType.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -MTP3asp_PortType.o: MTP3asp_PT.hh -MTP3asp_PortType.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -MTP3asp_Types.o: MTP3asp_Types.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -MTP3asp_Types.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_Types.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -MTP3asp_Types.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -MTP3asp_Types.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -MTP3asp_Types.o: /usr/include/stdio_impl.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -MTP3asp_Types.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -MTP3asp_Types.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_Types.o: /usr/include/sys/time.h /usr/include/sys/types.h -MTP3asp_Types.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_Types.o: /usr/include/sys/select.h /usr/include/time.h -MTP3asp_Types.o: /usr/include/iso/time_iso.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -MTP3asp_Types.o: /usr/include/regex.h -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -MTP3asp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_Emulation.o: SCCP_Emulation.hh SCCP_Mapping.hh SCCP_Types.hh -SCCP_Emulation.o: MTP3asp_PortType.hh MTP3asp_Types.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCP_Emulation.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCP_Emulation.o: /usr/include/sys/feature_tests.h -SCCP_Emulation.o: /usr/include/sys/isa_defs.h /usr/include/stdio.h -SCCP_Emulation.o: /usr/include/iso/stdio_iso.h /usr/include/sys/va_list.h -SCCP_Emulation.o: /usr/include/stdio_tag.h /usr/include/stdio_impl.h -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCP_Emulation.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCP_Emulation.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCP_Emulation.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCP_Emulation.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCP_Emulation.o: /usr/include/sys/select.h /usr/include/time.h -SCCP_Emulation.o: /usr/include/iso/time_iso.h -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCP_Emulation.o: /usr/include/regex.h -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCP_Emulation.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_Emulation.o: MTP3asp_PT.hh -SCCP_Emulation.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -SCCP_Emulation.o: SCCPasp_Types.hh General_Types.hh -SCCP_Types.o: SCCP_Types.hh MTP3asp_PortType.hh MTP3asp_Types.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCP_Types.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCP_Types.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -SCCP_Types.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -SCCP_Types.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -SCCP_Types.o: /usr/include/stdio_impl.h -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCP_Types.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCP_Types.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCP_Types.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCP_Types.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCP_Types.o: /usr/include/sys/select.h /usr/include/time.h -SCCP_Types.o: /usr/include/iso/time_iso.h -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCP_Types.o: /usr/include/regex.h -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCP_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_Types.o: MTP3asp_PT.hh -SCCP_Types.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -SCCP_Types.o: SCCPasp_Types.hh General_Types.hh -SCCPasp_Types.o: SCCPasp_Types.hh General_Types.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCPasp_Types.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCPasp_Types.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -SCCPasp_Types.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -SCCPasp_Types.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -SCCPasp_Types.o: /usr/include/stdio_impl.h -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCPasp_Types.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCPasp_Types.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCPasp_Types.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCPasp_Types.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCPasp_Types.o: /usr/include/sys/select.h /usr/include/time.h -SCCPasp_Types.o: /usr/include/iso/time_iso.h -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCPasp_Types.o: /usr/include/regex.h -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCPasp_Types.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_selftest.o: SCCP_selftest.hh SCCP_Emulation.hh SCCP_Mapping.hh -SCCP_selftest.o: SCCP_Types.hh MTP3asp_PortType.hh MTP3asp_Types.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCP_selftest.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCP_selftest.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -SCCP_selftest.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -SCCP_selftest.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -SCCP_selftest.o: /usr/include/stdio_impl.h -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCP_selftest.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCP_selftest.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCP_selftest.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCP_selftest.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCP_selftest.o: /usr/include/sys/select.h /usr/include/time.h -SCCP_selftest.o: /usr/include/iso/time_iso.h -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCP_selftest.o: /usr/include/regex.h -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCP_selftest.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_selftest.o: MTP3asp_PT.hh -SCCP_selftest.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -SCCP_selftest.o: SCCPasp_Types.hh General_Types.hh -SCCP_Testcases.o: SCCP_Testcases.hh SCCP_Emulation.hh SCCP_Mapping.hh -SCCP_Testcases.o: SCCP_Types.hh MTP3asp_PortType.hh MTP3asp_Types.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCP_Testcases.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCP_Testcases.o: /usr/include/sys/feature_tests.h -SCCP_Testcases.o: /usr/include/sys/isa_defs.h /usr/include/stdio.h -SCCP_Testcases.o: /usr/include/iso/stdio_iso.h /usr/include/sys/va_list.h -SCCP_Testcases.o: /usr/include/stdio_tag.h /usr/include/stdio_impl.h -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCP_Testcases.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCP_Testcases.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCP_Testcases.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCP_Testcases.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCP_Testcases.o: /usr/include/sys/select.h /usr/include/time.h -SCCP_Testcases.o: /usr/include/iso/time_iso.h -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCP_Testcases.o: /usr/include/regex.h -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCP_Testcases.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_Testcases.o: MTP3asp_PT.hh -SCCP_Testcases.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -SCCP_Testcases.o: SCCPasp_Types.hh General_Types.hh -SCCP_Mapping.o: SCCP_Mapping.hh SCCP_Types.hh MTP3asp_PortType.hh -SCCP_Mapping.o: MTP3asp_Types.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -SCCP_Mapping.o: /usr/include/string.h /usr/include/iso/string_iso.h -SCCP_Mapping.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -SCCP_Mapping.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -SCCP_Mapping.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -SCCP_Mapping.o: /usr/include/stdio_impl.h -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -SCCP_Mapping.o: /usr/include/stdlib.h /usr/include/iso/stdlib_iso.h -SCCP_Mapping.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -SCCP_Mapping.o: /usr/include/sys/time.h /usr/include/sys/types.h -SCCP_Mapping.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -SCCP_Mapping.o: /usr/include/sys/select.h /usr/include/time.h -SCCP_Mapping.o: /usr/include/iso/time_iso.h -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -SCCP_Mapping.o: /usr/include/regex.h -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -SCCP_Mapping.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -SCCP_Mapping.o: MTP3asp_PT.hh -SCCP_Mapping.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -SCCP_Mapping.o: SCCPasp_Types.hh General_Types.hh -MTP3asp_PT.o: /usr/include/stdio.h /usr/include/iso/stdio_iso.h -MTP3asp_PT.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h -MTP3asp_PT.o: /usr/include/sys/va_list.h /usr/include/stdio_tag.h -MTP3asp_PT.o: /usr/include/stdio_impl.h /usr/include/stdlib.h -MTP3asp_PT.o: /usr/include/iso/stdlib_iso.h /usr/include/sys/types.h -MTP3asp_PT.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h -MTP3asp_PT.o: /usr/include/sys/select.h /usr/include/sys/time.h -MTP3asp_PT.o: /usr/include/time.h /usr/include/iso/time_iso.h -MTP3asp_PT.o: /usr/include/netinet/in.h /usr/include/sys/stream.h -MTP3asp_PT.o: /usr/include/sys/vnode.h /usr/include/sys/t_lock.h -MTP3asp_PT.o: /usr/include/sys/machlock.h /usr/include/sys/param.h -MTP3asp_PT.o: /usr/include/sys/unistd.h /usr/include/sys/mutex.h -MTP3asp_PT.o: /usr/include/sys/rwlock.h /usr/include/sys/semaphore.h -MTP3asp_PT.o: /usr/include/sys/condvar.h /usr/include/sys/time_impl.h -MTP3asp_PT.o: /usr/include/sys/cred.h /usr/include/sys/uio.h -MTP3asp_PT.o: /usr/include/sys/resource.h /usr/include/vm/seg_enum.h -MTP3asp_PT.o: /usr/include/sys/poll.h /usr/include/sys/strmdep.h -MTP3asp_PT.o: /usr/include/sys/model.h /usr/include/sys/strft.h -MTP3asp_PT.o: /usr/include/sys/byteorder.h /usr/include/netdb.h -MTP3asp_PT.o: /usr/include/sys/socket.h /usr/include/sys/netconfig.h -MTP3asp_PT.o: /usr/include/sys/un.h /usr/include/net/if_dl.h -MTP3asp_PT.o: /usr/include/sys/wait.h /usr/include/sys/siginfo.h -MTP3asp_PT.o: /usr/include/sys/machsig.h /usr/include/sys/procset.h -MTP3asp_PT.o: /usr/include/unistd.h /usr/include/arpa/inet.h -MTP3asp_PT.o: /usr/include/stdarg.h /usr/include/iso/stdarg_iso.h -MTP3asp_PT.o: /usr/include/string.h /usr/include/iso/string_iso.h -MTP3asp_PT.o: MTP3asp_PT.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TTCN3.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/version.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Basetype.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Types.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Encdec.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Template.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Integer.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Optional.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/BER.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Logger.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Textbuf.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Error.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Parameters.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Float.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Boolean.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Null.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Objid.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Verdicttype.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Component.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Bitstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/RAW.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Hexstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Octetstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_Any.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Charstring.hh -MTP3asp_PT.o: /usr/include/regex.h -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Universal_charstring.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Struct_of.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Array.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_CharacterString.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_External.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/ASN_EmbeddedPDV.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Addfunc.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Timer.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Port.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Module_list.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Snapshot.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Default.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/Runtime.hh -MTP3asp_PT.o: /mnt/projects/TTCN/Releases/TTCNv3-latest/include/TEXT.hh -MTP3asp_PT.o: /vobs/ttcn/TCC_Releases/Other/SEA_LATEST/include/mphclib.h -MTP3asp_PT.o: MTP3asp_Types.hh MTP3asp_PortType.hh diff --git a/SCCP_CNL113341/demo/N_UNITDATAtest_600longdata_xudt_ansi_log b/SCCP_CNL113341/demo/N_UNITDATAtest_600longdata_xudt_ansi_log deleted file mode 100644 index b8b30219a..000000000 --- a/SCCP_CNL113341/demo/N_UNITDATAtest_600longdata_xudt_ansi_log +++ /dev/null @@ -1,2141 +0,0 @@ -18:21:32.381643 hc TTCN-3 Host Controller started on duna199. -18:21:32.385186 hc The address of MC was set to duna199[159.107.196.57]:38400 -18:21:32.387940 hc Connected to MC. -18:21:41.084400 hc Processing configuration data received from MC. -18:21:41.161669 hc Module SCCP has the following parameters: tsp_maxLocalReference := 16777216.000000, tsp_max_ConnectionId := 16777216.000000, tsp_force_xudt := 1, tsp_SIF_MaxLength := 272 -18:21:41.162623 hc Module SCCP_selftest has the following parameters: tsp_own_GT := '14377760'H, tsp_remote_GT := '14375760'H, tsp_SSN := 2, tsp_SIO := '83'O, tsp_own_SPC := 16382, tsp_remote_SPC := 16383, tsp_SLS := 0, tsp_sccp_serviceType := "mtp3_ansi" -18:21:41.163400 hc Module SCCP_typedefs has the following parameters: tspc_timer_T_conn_est := 120.000000, tspc_timer_T_ias := 600.000000, tspc_timer_T_iar := 1260.000000, tspc_timer_T_rel := 20.000000, tspc_timer_T_repeat_rel := 20.000000, tspc_timer_T_int := 60.000000, tspc_timer_T_guard := 1500.000000, tspc_timer_T_reset := 20.000000, tspc_timer_T_internal_reset := 0.000000, tspc_timer_guard := 120.000000 -18:21:41.164026 hc Initializing module MTP3_ASPs. -18:21:41.164735 hc Initialization of module MTP3_ASPs finished. -18:21:41.165299 hc Initializing module SCCP. -18:21:41.166336 hc Initializing module general_typedefs. -18:21:41.166948 hc Initialization of module general_typedefs finished. -18:21:41.167549 hc Initializing module SCCP_typedefs. -18:21:41.168099 hc Initializing module SCCP_ASPs. -18:21:41.169077 hc Initialization of module SCCP_ASPs finished. -18:21:41.169895 hc Initialization of module SCCP_typedefs finished. -18:21:41.171837 hc Initialization of module SCCP finished. -18:21:41.172467 hc Initializing module SCCP_EncDec. -18:21:41.173044 hc Initialization of module SCCP_EncDec finished. -18:21:41.173588 hc Initializing module SCCP_selftest. -18:21:41.174158 hc Initialization of module SCCP_selftest finished. -18:21:41.175585 hc Configuration file was processed successfully. -18:21:41.191379 hc MTC was created. Process id: 25833. -18:21:41.236537 mtc TTCN-3 Main Test Component started on duna199. -18:21:41.242045 mtc Connected to MC. -18:21:45.199426 mtc Executing test case tc_ConnlessSendingShortASP in module SCCP_selftest. -18:21:45.200795 mtc Test case tc_ConnlessSendingShortASP started. -18:21:45.201500 mtc Ports of component type MTC_CT were initialized. -18:21:45.202177 mtc Port PCO_A was started. -18:21:45.202752 mtc Port PCO_B was started. -18:21:45.204047 mtc v_Boot: { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} -18:21:45.204729 mtc v_BootB: { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} -18:21:45.205333 mtc Creating new PTC with component type MTPsim_CT. -18:21:45.221298 hc PTC was created. Component reference: 3, component type: MTPsim_CT, process id: 25834. -18:21:45.264675 3 TTCN-3 Parallel Test Component started on duna199. Component reference: 3, component type: MTPsim_CT. -18:21:45.269726 3 Connected to MC. -18:21:45.270497 mtc PTC was created. Component reference: 3. -18:21:45.271118 mtc Creating new PTC with component type SCCP_EncDec_comptype. -18:21:45.272412 3 Ports of component type MTPsim_CT were initialized. -18:21:45.274405 3 Port MTP_portA was started. -18:21:45.275097 3 Port MTP_portB was started. -18:21:45.309134 hc PTC was created. Component reference: 4, component type: SCCP_EncDec_comptype, process id: 25835. -18:21:45.349568 4 TTCN-3 Parallel Test Component started on duna199. Component reference: 4, component type: SCCP_EncDec_comptype. -18:21:45.355068 4 Connected to MC. -18:21:45.356259 mtc PTC was created. Component reference: 4. -18:21:45.356923 mtc Creating new PTC with component type SCCP_comptype. -18:21:45.358309 4 Ports of component type SCCP_EncDec_comptype were initialized. -18:21:45.359056 4 Port MTP3sccpEncDec_PCO was started. -18:21:45.359861 4 MTP3 Test Port (MTP3user_sccp_PCO): user start ordered -18:21:45.360447 4 Port MTP3user_sccp_PCO was started. -18:21:45.392629 hc PTC was created. Component reference: 5, component type: SCCP_comptype, process id: 25836. -18:21:45.420667 5 TTCN-3 Parallel Test Component started on duna199. Component reference: 5, component type: SCCP_comptype. -18:21:45.426421 5 Connected to MC. -18:21:45.427258 mtc PTC was created. Component reference: 5. -18:21:45.427896 mtc Connecting ports 4:MTP3user_sccp_PCO and 3:MTP_portA. -18:21:45.431119 4 Port MTP3user_sccp_PCO is waiting for connection from 3:MTP_portA on TCP port 38406. -18:21:45.433281 3 Port MTP_portA has established the connection with 4:MTP3user_sccp_PCO. -18:21:45.435413 mtc Connect operation finished. -18:21:45.436566 mtc Connecting ports 5:MTP3sccp_PCO and 4:MTP3sccpEncDec_PCO. -18:21:45.437940 4 Port MTP3user_sccp_PCO has accepted the connection from 3:MTP_portA. -18:21:45.439013 5 Ports of component type SCCP_comptype were initialized. -18:21:45.439756 5 Port MTP3sccp_PCO was started. -18:21:45.440445 5 Port SCCP_PCO was started. -18:21:45.442861 5 Port MTP3sccp_PCO is waiting for connection from 4:MTP3sccpEncDec_PCO on TCP port 38408. -18:21:45.445256 4 Port MTP3sccpEncDec_PCO has established the connection with 5:MTP3sccp_PCO. -18:21:45.463598 mtc Connect operation finished. -18:21:45.464271 mtc Connecting ports mtc:PCO_A and 5:SCCP_PCO. -18:21:45.471897 mtc Port PCO_A is waiting for connection from 5:SCCP_PCO on TCP port 38410. -18:21:45.475092 5 Port MTP3sccp_PCO has accepted the connection from 4:MTP3sccpEncDec_PCO. -18:21:45.478859 mtc Port PCO_A has accepted the connection from 5:SCCP_PCO. -18:21:45.479620 mtc Connect operation finished. -18:21:45.480218 mtc Creating new PTC with component type SCCP_EncDec_comptype. -18:21:45.481484 5 Port SCCP_PCO has established the connection with mtc:PCO_A. -18:21:45.515409 hc PTC was created. Component reference: 6, component type: SCCP_EncDec_comptype, process id: 25837. -18:21:45.536738 6 TTCN-3 Parallel Test Component started on duna199. Component reference: 6, component type: SCCP_EncDec_comptype. -18:21:45.542075 6 Connected to MC. -18:21:45.542872 mtc PTC was created. Component reference: 6. -18:21:45.543505 mtc Creating new PTC with component type SCCP_comptype. -18:21:45.544857 6 Ports of component type SCCP_EncDec_comptype were initialized. -18:21:45.545594 6 Port MTP3sccpEncDec_PCO was started. -18:21:45.547107 6 MTP3 Test Port (MTP3user_sccp_PCO): user start ordered -18:21:45.547695 6 Port MTP3user_sccp_PCO was started. -18:21:45.563127 hc PTC was created. Component reference: 7, component type: SCCP_comptype, process id: 25838. -18:21:45.606608 7 TTCN-3 Parallel Test Component started on duna199. Component reference: 7, component type: SCCP_comptype. -18:21:45.611933 7 Connected to MC. -18:21:45.612740 mtc PTC was created. Component reference: 7. -18:21:45.613371 mtc Connecting ports 6:MTP3user_sccp_PCO and 3:MTP_portB. -18:21:45.622919 6 Port MTP3user_sccp_PCO is waiting for connection from 3:MTP_portB on TCP port 38414. -18:21:45.625194 3 Port MTP_portB has established the connection with 6:MTP3user_sccp_PCO. -18:21:45.628002 mtc Connect operation finished. -18:21:45.628661 mtc Connecting ports 7:MTP3sccp_PCO and 6:MTP3sccpEncDec_PCO. -18:21:45.630008 6 Port MTP3user_sccp_PCO has accepted the connection from 3:MTP_portB. -18:21:45.631064 7 Ports of component type SCCP_comptype were initialized. -18:21:45.631815 7 Port MTP3sccp_PCO was started. -18:21:45.632502 7 Port SCCP_PCO was started. -18:21:45.634990 7 Port MTP3sccp_PCO is waiting for connection from 6:MTP3sccpEncDec_PCO on TCP port 38416. -18:21:45.654225 6 Port MTP3sccpEncDec_PCO has established the connection with 7:MTP3sccp_PCO. -18:21:45.657305 mtc Connect operation finished. -18:21:45.657970 mtc Connecting ports mtc:PCO_B and 7:SCCP_PCO. -18:21:45.660027 mtc Port PCO_B is waiting for connection from 7:SCCP_PCO on TCP port 38418. -18:21:45.661448 7 Port MTP3sccp_PCO has accepted the connection from 6:MTP3sccpEncDec_PCO. -18:21:45.664441 mtc Port PCO_B has accepted the connection from 7:SCCP_PCO. -18:21:45.665199 mtc Connect operation finished. -18:21:45.666237 mtc Starting function MTPsim_EventHandler() on component 3. -18:21:45.667397 mtc Function MTPsim_EventHandler was started. -18:21:45.668124 mtc Starting function ScanRAWPorts() on component 4. -18:21:45.669265 mtc Function ScanRAWPorts was started. -18:21:45.669965 mtc Starting function SCCPStart( { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) on component 5. -18:21:45.671152 mtc Function SCCPStart was started. -18:21:45.671741 mtc Starting function ScanRAWPorts() on component 6. -18:21:45.672848 mtc Function ScanRAWPorts was started. -18:21:45.673470 mtc Starting function SCCPStart( { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) on component 7. -18:21:45.674608 mtc Function SCCPStart was started. -18:21:45.675177 mtc init() is done -18:21:45.677985 mtc Start timer: 120 s -18:21:45.679932 mtc Sent on PCO_A to 5 N_UNITDATA_req { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '12345678901234567890'O, - importance := omit -} -18:21:45.696998 3 Starting function MTPsim_EventHandler() -18:21:45.698443 4 Starting function ScanRAWPorts() -18:21:45.701026 5 Received on SCCP_PCO from mtc N_UNITDATA_req { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '12345678901234567890'O, - importance := omit -} id 1 -18:21:45.702391 5 Starting function SCCPStart( { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) -18:21:45.722883 5 v_sccp_pdu_maxlen:265 -18:21:45.725239 5 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_CONNECT_req. -18:21:45.726734 5 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_CONNECT_res. -18:21:45.727329 5 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_DATA_req. -18:21:45.727949 5 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_DISCONNECT_req. -18:21:45.728805 5 Message with id 1 was extracted from the queue of SCCP_PCO. -18:21:45.730071 5 Encoding PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } -} -18:21:45.731289 5 Encoded PDU_SCCP_Address_ansi: '07FF3F0002077241737506'O -18:21:45.732056 5 Encoding PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } -} -18:21:45.732925 5 Encoded PDU_SCCP_Address_ansi: '07FF3F0002077241737706'O -18:21:45.734284 5 Random generator was initialized with seed 13.733935. -18:21:45.735117 5 Function rnd() returned 0.227768. -18:21:45.737985 5 Sent on MTP3sccp_PCO to 4 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit - } - } -} -18:21:45.755078 5 Last remaining Segment:'0000'B -18:21:45.758317 4 Received on MTP3sccpEncDec_PCO from 5 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit - } - } -} id 1 -18:21:45.759685 4 Message with id 1 was extracted from the queue of MTP3sccpEncDec_PCO. -18:21:45.760414 4 Encoding PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit - } -} -18:21:45.782218 4 Encoded PDU_SCCP: '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -18:21:45.783241 4 Sent on MTP3user_sccp_PCO to 3 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -} -18:21:45.784644 3 Received on MTP_portA from 4 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -} id 1 -18:21:45.785139 3 Message with id 1 was extracted from the queue of MTP_portA. -18:21:45.786161 3 Sent on MTP_portB to 6 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -} -18:21:45.787838 6 Received on MTP3user_sccp_PCO from 3 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -} id 1 -18:21:45.788900 6 Starting function ScanRAWPorts() -18:21:45.789920 6 Message with id 1 was extracted from the queue of MTP3user_sccp_PCO. -18:21:45.790662 6 Decoding PDU_SCCP: '11000F040F1A240B07FF3F00020772417375060B07FF3F00020772417377060A123456789012345678901004803A4F07'O -18:21:45.795388 6 Decoded PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 36, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit - } -} -18:21:45.821005 6 Sent on MTP3sccpEncDec_PCO to 7 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 36, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit -} -18:21:45.822432 7 Port SCCP_PCO has established the connection with mtc:PCO_B. -18:21:45.824903 7 Received on MTP3sccp_PCO from 6 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 36, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 10, - data := '12345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '3A4F07'O - }, - importance := omit - }, - eop := omit -} id 1 -18:21:45.845099 7 Starting function SCCPStart( { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) -18:21:45.846866 7 v_sccp_pdu_maxlen:265 -18:21:45.849069 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Unitdata. -18:21:45.849964 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_UnitdataService. -18:21:45.850594 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRequest. -18:21:45.851248 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionConfirm. -18:21:45.851881 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Released. -18:21:45.852527 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ProtDataUnitError. -18:21:45.853160 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ReleaseComplete. -18:21:45.853741 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_InactivityTest. -18:21:45.854352 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetRequest. -18:21:45.873504 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetConfirm. -18:21:45.874250 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRefused. -18:21:45.874833 7 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_DataForm1. -18:21:45.876205 7 Message with id 1 was extracted from the queue of MTP3sccp_PCO. -18:21:45.877338 7 Decoding PDU_SCCP_Address_ansi: '07FF3F0002077241737506'O -18:21:45.878490 7 Decoded PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } -} -18:21:45.879493 7 Decoding PDU_SCCP_Address_ansi: '07FF3F0002077241737706'O -18:21:45.880295 7 Decoded PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } -} -18:21:45.881403 7 Sent on SCCP_PCO to mtc N_UNITDATA_ind { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '12345678901234567890'O, - importance := omit -} -18:21:45.900251 mtc Received on PCO_B from 7 N_UNITDATA_ind { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '12345678901234567890'O, - importance := omit -} id 1 -18:21:45.900917 mtc Message with id 1 was extracted from the queue of PCO_B. -18:21:45.901304 mtc Correct CalledAddress, CallingAddress and userData received, data are correct -18:21:45.901623 mtc setverdict(pass): none -> pass -18:21:45.901959 mtc Stop timer: 120 s -18:21:45.902282 mtc termitate() started -18:21:45.902595 mtc Stopping all components. -18:21:45.907581 3 Stop was requested from MC. -18:21:45.907937 3 Stopping test component execution. -18:21:45.940594 3 Function MTPsim_EventHandler was stopped. PTC terminates. -18:21:45.941545 3 Port MTP_portA was stopped. -18:21:45.942176 3 Port MTP_portB was stopped. -18:21:45.943023 3 Removing unterminated connection between ports MTP_portA and 4:MTP3user_sccp_PCO. -18:21:45.944438 3 Removing unterminated connection between ports MTP_portB and 6:MTP3user_sccp_PCO. -18:21:45.945612 3 Ports of component type MTPsim_CT were shut down. -18:21:45.963063 3 getverdict: none -18:21:45.965312 3 Disconnected from MC. -18:21:45.965518 3 TTCN-3 Parallel Test Component finished. -18:21:45.967406 4 Connection of port MTP3user_sccp_PCO to 3:MTP_portA is lost. -18:21:45.969323 4 Port MTP3user_sccp_PCO was disconnected from 3:MTP_portA. -18:21:45.970071 4 Stop was requested from MC. -18:21:45.970686 4 Stopping test component execution. -18:21:45.997674 4 Function ScanRAWPorts was stopped. PTC terminates. -18:21:45.998715 4 Port MTP3sccpEncDec_PCO was stopped. -18:21:45.999329 4 MTP3 Test Port (MTP3user_sccp_PCO): User stop ordered -18:21:45.999934 4 Port MTP3user_sccp_PCO was stopped. -18:21:46.000781 4 Removing unterminated connection between ports MTP3sccpEncDec_PCO and 5:MTP3sccp_PCO. -18:21:46.002220 4 Ports of component type SCCP_EncDec_comptype were shut down. -18:21:46.002866 4 getverdict: none -18:21:46.004760 4 Disconnected from MC. -18:21:46.004970 4 TTCN-3 Parallel Test Component finished. -18:21:46.032470 5 Connection of port MTP3sccp_PCO to 4:MTP3sccpEncDec_PCO is lost. -18:21:46.033807 5 Port MTP3sccp_PCO was disconnected from 4:MTP3sccpEncDec_PCO. -18:21:46.034467 5 Stop was requested from MC. -18:21:46.035074 5 Stopping test component execution. -18:21:46.051967 5 Function SCCPStart was stopped. PTC terminates. -18:21:46.052955 5 Port MTP3sccp_PCO was stopped. -18:21:46.053550 5 Port SCCP_PCO was stopped. -18:21:46.054596 5 Removing unterminated connection between ports SCCP_PCO and mtc:PCO_A. -18:21:46.056442 mtc Connection of port PCO_A to 5:SCCP_PCO is lost. -18:21:46.058014 mtc Port PCO_A was disconnected from 5:SCCP_PCO. -18:21:46.059058 5 Ports of component type SCCP_comptype were shut down. -18:21:46.059660 5 getverdict: none -18:21:46.061555 5 Disconnected from MC. -18:21:46.061761 5 TTCN-3 Parallel Test Component finished. -18:21:46.063188 6 Connection of port MTP3user_sccp_PCO to 3:MTP_portB is lost. -18:21:46.065270 6 Port MTP3user_sccp_PCO was disconnected from 3:MTP_portB. -18:21:46.067053 6 Stop was requested from MC. -18:21:46.068350 6 Stopping test component execution. -18:21:46.115081 6 Function ScanRAWPorts was stopped. PTC terminates. -18:21:46.116539 6 Port MTP3sccpEncDec_PCO was stopped. -18:21:46.117177 6 MTP3 Test Port (MTP3user_sccp_PCO): User stop ordered -18:21:46.117788 6 Port MTP3user_sccp_PCO was stopped. -18:21:46.118635 6 Removing unterminated connection between ports MTP3sccpEncDec_PCO and 7:MTP3sccp_PCO. -18:21:46.120040 6 Ports of component type SCCP_EncDec_comptype were shut down. -18:21:46.120672 6 getverdict: none -18:21:46.122539 6 Disconnected from MC. -18:21:46.122745 6 TTCN-3 Parallel Test Component finished. -18:21:46.124069 7 Connection of port MTP3sccp_PCO to 6:MTP3sccpEncDec_PCO is lost. -18:21:46.126591 7 Port MTP3sccp_PCO was disconnected from 6:MTP3sccpEncDec_PCO. -18:21:46.127348 7 Stop was requested from MC. -18:21:46.127955 7 Stopping test component execution. -18:21:46.152223 7 Function SCCPStart was stopped. PTC terminates. -18:21:46.153287 7 Port MTP3sccp_PCO was stopped. -18:21:46.153893 7 Port SCCP_PCO was stopped. -18:21:46.154936 7 Removing unterminated connection between ports SCCP_PCO and mtc:PCO_B. -18:21:46.156829 mtc Connection of port PCO_B to 7:SCCP_PCO is lost. -18:21:46.158368 mtc Port PCO_B was disconnected from 7:SCCP_PCO. -18:21:46.159390 7 Ports of component type SCCP_comptype were shut down. -18:21:46.159990 7 getverdict: none -18:21:46.161049 mtc All components were stopped. -18:21:46.161673 mtc Disconnecting ports 4:MTP3user_sccp_PCO and 3:MTP_portA. -18:21:46.162687 mtc Disconnect operation finished. -18:21:46.163293 mtc Disconnecting ports 5:MTP3sccp_PCO and 4:MTP3sccpEncDec_PCO. -18:21:46.164303 mtc Disconnect operation finished. -18:21:46.164908 mtc Disconnecting ports mtc:PCO_A and 5:SCCP_PCO. -18:21:46.179989 mtc Disconnect operation finished. -18:21:46.180736 mtc Disconnecting ports 6:MTP3user_sccp_PCO and 3:MTP_portB. -18:21:46.181756 mtc Disconnect operation finished. -18:21:46.182361 mtc Disconnecting ports 7:MTP3sccp_PCO and 6:MTP3sccpEncDec_PCO. -18:21:46.183375 mtc Disconnect operation finished. -18:21:46.183981 mtc Disconnecting ports mtc:PCO_B and 7:SCCP_PCO. -18:21:46.184989 mtc Disconnect operation finished. -18:21:46.185569 mtc all components stopped -18:21:46.186455 mtc Stopping test component execution. -18:21:46.201652 mtc Test case tc_ConnlessSendingShortASP was stopped. -18:21:46.202665 mtc Port PCO_A was stopped. -18:21:46.203282 mtc Port PCO_B was stopped. -18:21:46.205397 mtc Ports of component type MTC_CT were shut down. -18:21:46.207477 7 Disconnected from MC. -18:21:46.207705 7 TTCN-3 Parallel Test Component finished. -18:21:46.208587 mtc Waiting for PTCs to finish. -18:21:46.209933 mtc Setting final verdict of the test case. -18:21:46.211165 mtc Local verdict of MTC: pass -18:21:46.211855 mtc Local verdict of PTC with component reference 3: none (pass -> pass) -18:21:46.212456 mtc Local verdict of PTC with component reference 4: none (pass -> pass) -18:21:46.213073 mtc Local verdict of PTC with component reference 5: none (pass -> pass) -18:21:46.213661 mtc Local verdict of PTC with component reference 6: none (pass -> pass) -18:21:46.214802 mtc Local verdict of PTC with component reference 7: none (pass -> pass) -18:21:46.215478 mtc Test case tc_ConnlessSendingShortASP finished. Verdict: pass -18:21:46.217171 mtc Executing test case tc_ConnlessSendingLongASP in module SCCP_selftest. -18:21:46.240225 mtc Test case tc_ConnlessSendingLongASP started. -18:21:46.240961 mtc Ports of component type MTC_CT were initialized. -18:21:46.241578 mtc Port PCO_A was started. -18:21:46.242161 mtc Port PCO_B was started. -18:21:46.242817 mtc v_Boot: { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} -18:21:46.243457 mtc v_BootB: { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} -18:21:46.244084 mtc Creating new PTC with component type MTPsim_CT. -18:21:46.245603 hc Test component with component reference 7 finished. Process statistics: { - process id: 25838, - exit status: 0, - user time: 0.020000 s, - system time: 0.020000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:21:46.246717 hc Test component with component reference 6 finished. Process statistics: { - process id: 25837, - exit status: 0, - user time: 0.050000 s, - system time: 0.030000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:21:46.247491 hc Test component with component reference 5 finished. Process statistics: { - process id: 25836, - exit status: 0, - user time: 0.020000 s, - system time: 0.030000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:21:46.264668 hc Test component with component reference 4 finished. Process statistics: { - process id: 25835, - exit status: 0, - user time: 0.040000 s, - system time: 0.030000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:21:46.265568 hc Test component with component reference 3 finished. Process statistics: { - process id: 25834, - exit status: 0, - user time: 0.050000 s, - system time: 0.020000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:21:46.280706 hc PTC was created. Component reference: 8, component type: MTPsim_CT, process id: 25839. -18:21:46.327713 8 TTCN-3 Parallel Test Component started on duna199. Component reference: 8, component type: MTPsim_CT. -18:21:46.333051 8 Connected to MC. -18:21:46.333975 8 Ports of component type MTPsim_CT were initialized. -18:21:46.334733 8 Port MTP_portA was started. -18:21:46.335352 8 Port MTP_portB was started. -18:21:46.336555 mtc PTC was created. Component reference: 8. -18:21:46.337460 mtc Creating new PTC with component type SCCP_EncDec_comptype. -18:21:46.353606 hc PTC was created. Component reference: 9, component type: SCCP_EncDec_comptype, process id: 25840. -18:21:46.398779 9 TTCN-3 Parallel Test Component started on duna199. Component reference: 9, component type: SCCP_EncDec_comptype. -18:21:46.404037 9 Connected to MC. -18:21:46.404841 mtc PTC was created. Component reference: 9. -18:21:46.405504 mtc Creating new PTC with component type SCCP_comptype. -18:21:46.407469 9 Ports of component type SCCP_EncDec_comptype were initialized. -18:21:46.408208 9 Port MTP3sccpEncDec_PCO was started. -18:21:46.409009 9 MTP3 Test Port (MTP3user_sccp_PCO): user start ordered -18:21:46.409590 9 Port MTP3user_sccp_PCO was started. -18:21:46.424385 hc PTC was created. Component reference: 10, component type: SCCP_comptype, process id: 25841. -18:21:46.468205 10 TTCN-3 Parallel Test Component started on duna199. Component reference: 10, component type: SCCP_comptype. -18:21:46.473262 10 Connected to MC. -18:21:46.474045 mtc PTC was created. Component reference: 10. -18:21:46.474720 mtc Connecting ports 9:MTP3user_sccp_PCO and 8:MTP_portA. -18:21:46.478439 9 Port MTP3user_sccp_PCO is waiting for connection from 8:MTP_portA on TCP port 38423. -18:21:46.480561 8 Port MTP_portA has established the connection with 9:MTP3user_sccp_PCO. -18:21:46.482674 mtc Connect operation finished. -18:21:46.483347 mtc Connecting ports 10:MTP3sccp_PCO and 9:MTP3sccpEncDec_PCO. -18:21:46.484727 9 Port MTP3user_sccp_PCO has accepted the connection from 8:MTP_portA. -18:21:46.486409 10 Ports of component type SCCP_comptype were initialized. -18:21:46.487183 10 Port MTP3sccp_PCO was started. -18:21:46.487857 10 Port SCCP_PCO was started. -18:21:46.490270 10 Port MTP3sccp_PCO is waiting for connection from 9:MTP3sccpEncDec_PCO on TCP port 38425. -18:21:46.492618 9 Port MTP3sccpEncDec_PCO has established the connection with 10:MTP3sccp_PCO. -18:21:46.494771 mtc Connect operation finished. -18:21:46.495446 mtc Connecting ports mtc:PCO_A and 10:SCCP_PCO. -18:21:46.497895 mtc Port PCO_A is waiting for connection from 10:SCCP_PCO on TCP port 38427. -18:21:46.499342 10 Port MTP3sccp_PCO has accepted the connection from 9:MTP3sccpEncDec_PCO. -18:21:46.501885 mtc Port PCO_A has accepted the connection from 10:SCCP_PCO. -18:21:46.502633 mtc Connect operation finished. -18:21:46.503254 mtc Creating new PTC with component type SCCP_EncDec_comptype. -18:21:46.504536 10 Port SCCP_PCO has established the connection with mtc:PCO_A. -18:21:46.535166 hc PTC was created. Component reference: 11, component type: SCCP_EncDec_comptype, process id: 25842. -18:21:46.563650 11 TTCN-3 Parallel Test Component started on duna199. Component reference: 11, component type: SCCP_EncDec_comptype. -18:21:46.569136 11 Connected to MC. -18:21:46.569930 mtc PTC was created. Component reference: 11. -18:21:46.570585 mtc Creating new PTC with component type SCCP_comptype. -18:21:46.572003 11 Ports of component type SCCP_EncDec_comptype were initialized. -18:21:46.572757 11 Port MTP3sccpEncDec_PCO was started. -18:21:46.573568 11 MTP3 Test Port (MTP3user_sccp_PCO): user start ordered -18:21:46.574160 11 Port MTP3user_sccp_PCO was started. -18:21:46.607218 hc PTC was created. Component reference: 12, component type: SCCP_comptype, process id: 25843. -18:21:46.634527 12 TTCN-3 Parallel Test Component started on duna199. Component reference: 12, component type: SCCP_comptype. -18:21:46.640248 12 Connected to MC. -18:21:46.641259 mtc PTC was created. Component reference: 12. -18:21:46.641935 mtc Connecting ports 11:MTP3user_sccp_PCO and 8:MTP_portB. -18:21:46.645205 11 Port MTP3user_sccp_PCO is waiting for connection from 8:MTP_portB on TCP port 38431. -18:21:46.647813 8 Port MTP_portB has established the connection with 11:MTP3user_sccp_PCO. -18:21:46.650037 mtc Connect operation finished. -18:21:46.650705 mtc Connecting ports 12:MTP3sccp_PCO and 11:MTP3sccpEncDec_PCO. -18:21:46.652085 11 Port MTP3user_sccp_PCO has accepted the connection from 8:MTP_portB. -18:21:46.653166 12 Ports of component type SCCP_comptype were initialized. -18:21:46.653902 12 Port MTP3sccp_PCO was started. -18:21:46.654568 12 Port SCCP_PCO was started. -18:21:46.674133 12 Port MTP3sccp_PCO is waiting for connection from 11:MTP3sccpEncDec_PCO on TCP port 38433. -18:21:46.677229 11 Port MTP3sccpEncDec_PCO has established the connection with 12:MTP3sccp_PCO. -18:21:46.679496 mtc Connect operation finished. -18:21:46.680172 mtc Connecting ports mtc:PCO_B and 12:SCCP_PCO. -18:21:46.682231 mtc Port PCO_B is waiting for connection from 12:SCCP_PCO on TCP port 38435. -18:21:46.683671 12 Port MTP3sccp_PCO has accepted the connection from 11:MTP3sccpEncDec_PCO. -18:21:46.687028 mtc Port PCO_B has accepted the connection from 12:SCCP_PCO. -18:21:46.687831 mtc Connect operation finished. -18:21:46.688466 mtc Starting function MTPsim_EventHandler() on component 8. -18:21:46.689847 8 Starting function MTPsim_EventHandler() -18:21:46.690910 mtc Function MTPsim_EventHandler was started. -18:21:46.691559 mtc Starting function ScanRAWPorts() on component 9. -18:21:46.692675 mtc Function ScanRAWPorts was started. -18:21:46.693326 mtc Starting function SCCPStart( { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) on component 10. -18:21:46.694511 mtc Function SCCPStart was started. -18:21:46.695121 mtc Starting function ScanRAWPorts() on component 11. -18:21:46.696900 mtc Function ScanRAWPorts was started. -18:21:46.697568 mtc Starting function SCCPStart( { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) on component 12. -18:21:46.698723 mtc Function SCCPStart was started. -18:21:46.699310 mtc init() is done -18:21:46.700287 mtc Start timer: 120 s -18:21:46.701466 mtc Sent on PCO_A to 10 N_UNITDATA_req { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O, - importance := omit -} -18:21:46.718626 9 Starting function ScanRAWPorts() -18:21:46.721380 10 Received on SCCP_PCO from mtc N_UNITDATA_req { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O, - importance := omit -} id 1 -18:21:46.742310 10 Starting function SCCPStart( { - own_GT := '14377760'H, - remote_GT := '14375760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16382, - remote_SPC := 16383, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) -18:21:46.743647 10 v_sccp_pdu_maxlen:265 -18:21:46.746564 10 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_CONNECT_req. -18:21:46.747527 10 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_CONNECT_res. -18:21:46.748104 10 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_DATA_req. -18:21:46.766884 10 Receive operation on port SCCP_PCO failed: Type of the first message in the queue is not N_DISCONNECT_req. -18:21:46.767864 10 Message with id 1 was extracted from the queue of SCCP_PCO. -18:21:46.769126 10 Encoding PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } -} -18:21:46.770337 10 Encoded PDU_SCCP_Address_ansi: '07FF3F0002077241737506'O -18:21:46.771120 10 Encoding PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } -} -18:21:46.771979 10 Encoded PDU_SCCP_Address_ansi: '07FF3F0002077241737706'O -18:21:46.773573 10 Random generator was initialized with seed 14.773216. -18:21:46.774419 10 Function rnd() returned 0.171705. -18:21:46.777342 10 Sent on MTP3sccp_PCO to 9 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } - } -} -18:21:46.797926 9 Received on MTP3sccpEncDec_PCO from 10 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } - } -} id 1 -18:21:46.818423 9 Message with id 1 was extracted from the queue of MTP3sccpEncDec_PCO. -18:21:46.819292 9 Encoding PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } -} -18:21:46.840033 9 Encoded PDU_SCCP: '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -18:21:46.841117 9 Sent on MTP3user_sccp_PCO to 8 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -} -18:21:46.860927 8 Received on MTP_portA from 9 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -} id 1 -18:21:46.861875 8 Message with id 1 was extracted from the queue of MTP_portA. -18:21:46.862805 8 Sent on MTP_portB to 11 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -} -18:21:46.864468 10 Sent on MTP3sccp_PCO to 9 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } - } -} -18:21:46.884418 9 Received on MTP3sccpEncDec_PCO from 10 ASP_MTP3_TRANSFERreq_sccp { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } - } -} id 2 -18:21:46.885361 9 Message with id 2 was extracted from the queue of MTP3sccpEncDec_PCO. -18:21:46.886556 9 Encoding PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 0, - pointer2 := 0, - pointer3 := 0, - pointer4 := 0, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } -} -18:21:46.905406 9 Encoded PDU_SCCP: '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -18:21:46.906838 9 Sent on MTP3user_sccp_PCO to 8 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -} -18:21:46.907795 8 Received on MTP_portA from 9 ASP_MTP3_TRANSFERreq { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -} id 2 -18:21:46.908539 8 Message with id 2 was extracted from the queue of MTP_portA. -18:21:46.909214 8 Sent on MTP_portB to 11 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -} -18:21:46.928654 10 Last remaining Segment:'0000'B -18:21:46.930294 11 Received on MTP3user_sccp_PCO from 8 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -} id 1 -18:21:46.931267 11 Received on MTP3user_sccp_PCO from 8 ASP_MTP3_TRANSFERind { - sio := '83'O, - opc := 16382, - dpc := 16383, - sls := 0, - data := '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -} id 2 -18:21:46.932508 11 Starting function ScanRAWPorts() -18:21:46.933526 11 Message with id 1 was extracted from the queue of MTP3user_sccp_PCO. -18:21:46.934374 11 Decoding PDU_SCCP: '11000F040F1AFB0B07FF3F00020772417375060B07FF3F0002077241737706E11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004812BF4DA'O -18:21:46.958297 11 Decoded PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 251, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } -} -18:21:46.960010 11 Sent on MTP3sccpEncDec_PCO to 12 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 251, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit -} -18:21:46.979542 11 Message with id 2 was extracted from the queue of MTP3user_sccp_PCO. -18:21:46.980311 11 Decoding PDU_SCCP: '11000F040F1A650B07FF3F00020772417375060B07FF3F00020772417377064B1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901004002BF4DA'O -18:21:46.982225 11 Decoded PDU_SCCP: { - extudata := { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 101, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit - } -} -18:21:47.002800 11 Sent on MTP3sccpEncDec_PCO to 12 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 101, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit -} -18:21:47.004232 12 Port SCCP_PCO has established the connection with mtc:PCO_B. -18:21:47.007365 12 Received on MTP3sccp_PCO from 11 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 251, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 225, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0001'B, - reserved := '00'B, - class := '0'B, - firstSegm := '1'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit -} id 1 -18:21:47.027803 12 Received on MTP3sccp_PCO from 11 PDU_SCCP_ExtUnitdata { - messageType := xudt (17), - protClass := { - class := '0000'B, - messageHandling := '0000'B - }, - hopCounter := 15, - pointer1 := 4, - pointer2 := 15, - pointer3 := 26, - pointer4 := 101, - calledPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737506'O - }, - callingPAddress := { - paramLength := 11, - addr := '07FF3F0002077241737706'O - }, - data := { - paramLength := 75, - data := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O - }, - optionalPart := { - segmentation := { - paramName := con_SCCP_segm (16), - paramLength := 4, - remainingSegment := '0000'B, - reserved := '00'B, - class := '0'B, - firstSegm := '0'B, - segmLocalRef := '2BF4DA'O - }, - importance := omit - }, - eop := omit -} id 2 -18:21:47.029096 12 Starting function SCCPStart( { - own_GT := '14375760'H, - remote_GT := '14377760'H, - SSN := 2, - SIO := '83'O, - own_SPC := 16383, - remote_SPC := 16382, - SLS := 0, - sccp_serviceType := "mtp3_ansi" -} ) -18:21:47.049950 12 v_sccp_pdu_maxlen:265 -18:21:47.052171 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Unitdata. -18:21:47.053061 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_UnitdataService. -18:21:47.053634 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRequest. -18:21:47.054301 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionConfirm. -18:21:47.054874 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Released. -18:21:47.055523 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ProtDataUnitError. -18:21:47.056867 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ReleaseComplete. -18:21:47.057484 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_InactivityTest. -18:21:47.058038 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetRequest. -18:21:47.058620 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetConfirm. -18:21:47.059177 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRefused. -18:21:47.059766 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_DataForm1. -18:21:47.060612 12 Message with id 1 was extracted from the queue of MTP3sccp_PCO. -18:21:47.061431 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Unitdata. -18:21:47.062036 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_UnitdataService. -18:21:47.080392 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRequest. -18:21:47.081093 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionConfirm. -18:21:47.081697 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_Released. -18:21:47.082255 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ProtDataUnitError. -18:21:47.082850 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ReleaseComplete. -18:21:47.083413 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_InactivityTest. -18:21:47.083998 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetRequest. -18:21:47.084553 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ResetConfirm. -18:21:47.085145 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_ConnectionRefused. -18:21:47.085972 12 Receive operation on port MTP3sccp_PCO failed: Type of the first message in the queue is not PDU_SCCP_DataForm1. -18:21:47.086667 12 Message with id 2 was extracted from the queue of MTP3sccp_PCO. -18:21:47.087691 12 Decoding PDU_SCCP_Address_ansi: '07FF3F0002077241737506'O -18:21:47.088831 12 Decoded PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } -} -18:21:47.089819 12 Decoding PDU_SCCP_Address_ansi: '07FF3F0002077241737706'O -18:21:47.096495 12 Decoded PDU_SCCP_Address_ansi: { - addressIndicator := { - ssnIndicator := '1'B, - pointCodeIndic := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B, - reserved := '0'B - }, - signPointCode := { - present := '000000000011111111111111'B - }, - subsystemNumber := { - present := 2 - }, - globalTitle := { - gti0001 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } -} -18:21:47.097820 12 Sent on SCCP_PCO to mtc N_UNITDATA_ind { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O, - importance := omit -} -18:21:47.099690 mtc Received on PCO_B from 12 N_UNITDATA_ind { - calledAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14375760'H - } - } - }, - callingAddress := { - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - }, - signPointCode := '000000000011111111111111'B, - subsystemNumber := 2, - globalTitle := { - gti0011 := { - translationType := '07'O, - encodingScheme := '0010'B, - numberingPlan := '0111'B, - globalTitleAddress := '14377760'H - } - } - }, - sequenceControl := '00000000'B, - returnOption := '00000000'B, - userData := '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'O, - importance := omit -} id 1 -18:21:47.101242 mtc Message with id 1 was extracted from the queue of PCO_B. -18:21:47.101965 mtc Correct CalledAddress, CallingAddress and userData received, data are correct -18:21:47.102580 mtc setverdict(pass): none -> pass -18:21:47.103230 mtc Stop timer: 120 s -18:21:47.103850 mtc termitate() started -18:21:47.104464 mtc Stopping all components. -18:21:47.106496 8 Stop was requested from MC. -18:21:47.107164 8 Stopping test component execution. -18:21:47.123129 8 Function MTPsim_EventHandler was stopped. PTC terminates. -18:21:47.124103 8 Port MTP_portA was stopped. -18:21:47.124749 8 Port MTP_portB was stopped. -18:21:47.125610 8 Removing unterminated connection between ports MTP_portA and 9:MTP3user_sccp_PCO. -18:21:47.127704 8 Removing unterminated connection between ports MTP_portB and 11:MTP3user_sccp_PCO. -18:21:47.128884 8 Ports of component type MTPsim_CT were shut down. -18:21:47.129510 8 getverdict: none -18:21:47.131756 8 Disconnected from MC. -18:21:47.131976 8 TTCN-3 Parallel Test Component finished. -18:21:47.133209 9 Connection of port MTP3user_sccp_PCO to 8:MTP_portA is lost. -18:21:47.135184 9 Port MTP3user_sccp_PCO was disconnected from 8:MTP_portA. -18:21:47.136358 9 Stop was requested from MC. -18:21:47.137032 9 Stopping test component execution. -18:21:47.162489 9 Function ScanRAWPorts was stopped. PTC terminates. -18:21:47.163557 9 Port MTP3sccpEncDec_PCO was stopped. -18:21:47.164160 9 MTP3 Test Port (MTP3user_sccp_PCO): User stop ordered -18:21:47.164766 9 Port MTP3user_sccp_PCO was stopped. -18:21:47.165617 9 Removing unterminated connection between ports MTP3sccpEncDec_PCO and 10:MTP3sccp_PCO. -18:21:47.167692 9 Ports of component type SCCP_EncDec_comptype were shut down. -18:21:47.168343 9 getverdict: none -18:21:47.170258 9 Disconnected from MC. -18:21:47.170470 9 TTCN-3 Parallel Test Component finished. -18:21:47.171868 10 Connection of port MTP3sccp_PCO to 9:MTP3sccpEncDec_PCO is lost. -18:21:47.173933 10 Port MTP3sccp_PCO was disconnected from 9:MTP3sccpEncDec_PCO. -18:21:47.174646 10 Stop was requested from MC. -18:21:47.175246 10 Stopping test component execution. -18:21:47.200504 10 Function SCCPStart was stopped. PTC terminates. -18:21:47.201545 10 Port MTP3sccp_PCO was stopped. -18:21:47.202136 10 Port SCCP_PCO was stopped. -18:21:47.203172 10 Removing unterminated connection between ports SCCP_PCO and mtc:PCO_A. -18:21:47.204521 mtc Connection of port PCO_A to 10:SCCP_PCO is lost. -18:21:47.206622 mtc Port PCO_A was disconnected from 10:SCCP_PCO. -18:21:47.207704 10 Ports of component type SCCP_comptype were shut down. -18:21:47.208293 10 getverdict: none -18:21:47.210197 10 Disconnected from MC. -18:21:47.210401 10 TTCN-3 Parallel Test Component finished. -18:21:47.211716 11 Connection of port MTP3user_sccp_PCO to 8:MTP_portB is lost. -18:21:47.213172 11 Port MTP3user_sccp_PCO was disconnected from 8:MTP_portB. -18:21:47.214488 11 Stop was requested from MC. -18:21:47.215141 11 Stopping test component execution. -18:21:47.240282 11 Function ScanRAWPorts was stopped. PTC terminates. -18:21:47.241361 11 Port MTP3sccpEncDec_PCO was stopped. -18:21:47.241973 11 MTP3 Test Port (MTP3user_sccp_PCO): User stop ordered -18:21:47.242584 11 Port MTP3user_sccp_PCO was stopped. -18:21:47.243436 11 Removing unterminated connection between ports MTP3sccpEncDec_PCO and 12:MTP3sccp_PCO. -18:21:47.244858 11 Ports of component type SCCP_EncDec_comptype were shut down. -18:21:47.245503 11 getverdict: none -18:21:47.247937 11 Disconnected from MC. -18:21:47.248146 11 TTCN-3 Parallel Test Component finished. -18:21:47.249639 12 Connection of port MTP3sccp_PCO to 11:MTP3sccpEncDec_PCO is lost. -18:21:47.251689 12 Port MTP3sccp_PCO was disconnected from 11:MTP3sccpEncDec_PCO. -18:21:47.252406 12 Stop was requested from MC. -18:21:47.252990 12 Stopping test component execution. -18:21:47.344052 12 Function SCCPStart was stopped. PTC terminates. -18:21:47.345109 12 Port MTP3sccp_PCO was stopped. -18:21:47.346393 12 Port SCCP_PCO was stopped. -18:21:47.347503 12 Removing unterminated connection between ports SCCP_PCO and mtc:PCO_B. -18:21:47.348853 mtc Connection of port PCO_B to 12:SCCP_PCO is lost. -18:21:47.350357 mtc Port PCO_B was disconnected from 12:SCCP_PCO. -18:21:47.351354 12 Ports of component type SCCP_comptype were shut down. -18:21:47.351934 12 getverdict: none -18:21:47.352955 mtc All components were stopped. -18:21:47.353582 mtc Disconnecting ports 9:MTP3user_sccp_PCO and 8:MTP_portA. -18:21:47.354590 mtc Disconnect operation finished. -18:21:47.355197 mtc Disconnecting ports 10:MTP3sccp_PCO and 9:MTP3sccpEncDec_PCO. -18:21:47.356662 mtc Disconnect operation finished. -18:21:47.357283 mtc Disconnecting ports mtc:PCO_A and 10:SCCP_PCO. -18:21:47.358282 mtc Disconnect operation finished. -18:21:47.358890 mtc Disconnecting ports 11:MTP3user_sccp_PCO and 8:MTP_portB. -18:21:47.359898 mtc Disconnect operation finished. -18:21:47.360508 mtc Disconnecting ports 12:MTP3sccp_PCO and 11:MTP3sccpEncDec_PCO. -18:21:47.361519 mtc Disconnect operation finished. -18:21:47.362127 mtc Disconnecting ports mtc:PCO_B and 12:SCCP_PCO. -18:21:47.363126 mtc Disconnect operation finished. -18:21:47.363708 mtc all components stopped -18:21:47.364307 mtc Stopping test component execution. -18:21:47.365131 mtc Test case tc_ConnlessSendingLongASP was stopped. -18:21:47.366208 mtc Port PCO_A was stopped. -18:21:47.366555 mtc Port PCO_B was stopped. -18:21:47.368393 mtc Ports of component type MTC_CT were shut down. -18:21:47.368667 mtc Waiting for PTCs to finish. -18:21:47.370662 mtc Setting final verdict of the test case. -18:21:47.371019 mtc Local verdict of MTC: pass -18:21:47.371339 mtc Local verdict of PTC with component reference 8: none (pass -> pass) -18:21:47.371635 mtc Local verdict of PTC with component reference 9: none (pass -> pass) -18:21:47.371948 mtc Local verdict of PTC with component reference 10: none (pass -> pass) -18:21:47.372245 mtc Local verdict of PTC with component reference 11: none (pass -> pass) -18:21:47.372560 mtc Local verdict of PTC with component reference 12: none (pass -> pass) -18:21:47.372855 mtc Test case tc_ConnlessSendingLongASP finished. Verdict: pass -18:21:47.402761 12 Disconnected from MC. -18:21:47.402997 12 TTCN-3 Parallel Test Component finished. -18:22:04.264666 mtc Verdict statistics: 0 none (0.00 %), 2 pass (100.00 %), 0 inconc (0.00 %), 0 fail (0.00 %), 0 error (0.00 %). -18:22:04.265451 mtc Test execution summary: 2 test cases were executed. Overall verdict: pass. -18:22:04.266260 mtc Exit was requested from MC. Terminating MTC. -18:22:04.269127 mtc Disconnected from MC. -18:22:04.269382 mtc TTCN-3 Main Test Component finished. -18:22:04.270509 hc Test component with component reference 12 finished. Process statistics: { - process id: 25843, - exit status: 0, - user time: 0.020000 s, - system time: 0.070000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.271775 hc Test component with component reference 11 finished. Process statistics: { - process id: 25842, - exit status: 0, - user time: 0.020000 s, - system time: 0.030000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.272732 hc Test component with component reference 10 finished. Process statistics: { - process id: 25841, - exit status: 0, - user time: 0.010000 s, - system time: 0.040000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.274094 hc Test component with component reference 9 finished. Process statistics: { - process id: 25840, - exit status: 0, - user time: 0.020000 s, - system time: 0.020000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.301155 hc Test component with component reference 1 finished. Process statistics: { - process id: 25833, - exit status: 0, - user time: 0.050000 s, - system time: 0.100000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.302181 hc Test component with component reference 8 finished. Process statistics: { - process id: 25839, - exit status: 0, - user time: 0.020000 s, - system time: 0.030000 s, - maximum resident set size: 0, - integral resident set size: 0, - page faults not requiring physical I/O: 0, - page faults requiring physical I/O: 0, - swaps: 0, - block input operations: 0, - block output operations 0, - messages sent: 0, - messages received: 0, - signals received: 0, - voluntary context switches: 0, - involuntary context switches: 0 -} -18:22:04.303133 hc Exit was requested from MC. Terminating HC. -18:22:04.314953 hc Disconnected from MC. -18:22:04.315230 hc TTCN-3 Host Controller finished on duna199. diff --git a/SCCP_CNL113341/demo/SCCP_Emulation.ttcn b/SCCP_CNL113341/demo/SCCP_Emulation.ttcn deleted file mode 120000 index fae960598..000000000 --- a/SCCP_CNL113341/demo/SCCP_Emulation.ttcn +++ /dev/null @@ -1 +0,0 @@ -../src/SCCP_Emulation.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/demo/SCCP_Mapping.ttcnpp b/SCCP_CNL113341/demo/SCCP_Mapping.ttcnpp deleted file mode 120000 index aabd0d400..000000000 --- a/SCCP_CNL113341/demo/SCCP_Mapping.ttcnpp +++ /dev/null @@ -1 +0,0 @@ -../src/SCCP_Mapping.ttcnpp \ No newline at end of file diff --git a/SCCP_CNL113341/demo/SCCP_Testcases.cfg b/SCCP_CNL113341/demo/SCCP_Testcases.cfg deleted file mode 100644 index ae1c4724c..000000000 --- a/SCCP_CNL113341/demo/SCCP_Testcases.cfg +++ /dev/null @@ -1,55 +0,0 @@ -[LOGGING] -#FileName := "SCCP_selftest.cfg" -FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -#ConsoleMask := LOG_ALL -#ConsoleMask := TTCN_TESTCASE | TTCN_PORTEVENT | TTCN_DEBUG | TTCN_MATCHING -#ConsoleMask := TTCN_WARNING | TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_PORTEVENT -#ConsoleMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -LogSourceInfo := Yes - -[EXECUTE] -#SCCP_selftest.tc_ConnlessSendingShortASP -#SCCP_selftest.tc_ConnlessSendingLongASP -#SCCP_selftest.tc_ConnOrientedShortASPSending -#SCCP_Testcases.tc_ConnlessSendingLongASP -SCCP_Testcases.tc_ConnOrientedShortASPSending - -[TESTPORT_PARAMETERS] -// ******************************************************* -// * DO NOT FORGET TO SET THE FOLLOWING TWO LINE TO YOUR SEA * -// ******************************************************* -system.*.Hostname := "karasea" //sea server name -system.*.HttpPort := "5001" //sea http port -system.*.IID_String := "b303d76a-266c-11d4-b8f5-08002090d3da" - //Device Type ID -system.*.Loop:= "OFF" -system.*.Filter:= "OFF" -system.*.MTP3ServiceType := "MTP3ttc" // ["MTP3itu" (default)|"MTP3ansi" | "M3UA" |"MTP3tcc] - -// CMGW6 -> SCTP_ASSOC_10.2.110.102 -// CMGW3 data: SCTP_ASSOC_10.2.110.2 -system.CMGW6.EntityName := "SAALH-0" //"S7ST-0" //device name to connect -system.CMGW6.NI := "2" -system.CMGW6.SUT_Pc := "2300" -system.CMGW6.TESTER_Pc := "2351" -system.CMGW6.M3UA_version:= "1" - -[MODULE_PARAMETERS] -tsp_own_GT := '14377760'H -tsp_remote_GT := '14375760'H -tsp_SSN := 8 //8:MSC 5:MAP see 3.4.2.2/Q.713 -tsp_SIO := '83'O //SCCP national -tsp_own_SPC := 2351 -tsp_remote_SPC := 2300// max value on 14 bits -tsp_SLS := 0 -#[tsp_sccp_serviceType := "mtp3_itu" |"mtp3b_itu"|"mtp3_ansi"|"mtp3b_ansi"| "mtp3b_tcc"] -tsp_sccp_serviceType := "mtp3_ttc" - -#for mtp3_itu/gti0011 or mtp3_ansi/gti0001 : -#tsp_translationType := 7 -tsp_SIF_MaxLength := 272 -tsp_force_xudt := 0 // 1:yes, 0:no - -[MAIN_CONTROLLER] -TCPPort := 7145 -NumHCs := 1 diff --git a/SCCP_CNL113341/demo/SCCP_Testcases.ttcn b/SCCP_CNL113341/demo/SCCP_Testcases.ttcn deleted file mode 100644 index 0f8ba47c3..000000000 --- a/SCCP_CNL113341/demo/SCCP_Testcases.ttcn +++ /dev/null @@ -1,468 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// -// Copyright Test Competence Center (TCC) ETH 2007 -// -// -// -// 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_TestCases.ttcn -// Description: SS7 SCCP basic SEA test -// according to specification ITU-T SS7 SCCP, ANSI ..., TCC ... -// References: ITU-T: Recommendation Q.711-Q.714, -// ANSI T1.112-2001, -// TCC -// Rev: -// Updated: 2007.04.12 -// Contact: http://ttcn.ericsson.se -// - -module SCCP_Testcases -{//startmodule - -modulepar -{ - hexstring tsp_own_GT := '0614377760'H; - hexstring tsp_remote_GT := '0614375760'H; - integer tsp_SSN := 2; //8:MSC 5:MAP see 3.4.2.2/Q.713 - octetstring tsp_SIO := '83'O;//SCCP national - integer tsp_own_SPC := 461087; // =0x07091E - integer tsp_remote_SPC := 461086; // =0x07091D - integer tsp_SLS := 0; - charstring tsp_sccp_serviceType := "mtp3_itu"; - - octetstring MTP3_UserPart_SIO; - integer MTP3_UserPart_OPC, - MTP3_UserPart_DPC, - MTP3_UserPart_SLS -}//modulepar - -import from General_Types all; - -import from MTP3asp_Types all; -import from MTP3asp_PortType all; - -import from SCCPasp_Types all; -import from SCCP_Types all; -import from SCCP_Emulation all; - -/************************************* -* Components -**************************************/ - - -// Model of MSC: -type component MSC_ST { - port MTP3asp_SP_PT CMGW6; - //port MTP3asp_PT CMGW6; -}; - - -// Main test component with behaviour SCCPuserA andSCCPuserB -type component MTC_CT { - var SCCP_PAR_Address v_CalledAddress, v_CallingAddress; - var integer v_testvalue; - var SCCP_CT vc_SCCP_A ; - var MSC_SCCP_MTP3_parameters v_BootA; - var SCCP_PAR_Connection_Id v_cid_A ; - - port SCCPasp_PT A_PORT; //SCCPuserA -} - -function initBootParams() runs on MTC_CT -{ - v_BootA := - { sio:= - { ni:= substr(oct2bit(tsp_SIO),0,2), - prio:= substr(oct2bit(tsp_SIO),2,2), - si:= substr(oct2bit(tsp_SIO),4,4) - }, - opc:=tsp_own_SPC, - dpc:=tsp_remote_SPC, - sls:=tsp_SLS, - sccp_serviceType:=tsp_sccp_serviceType, - ssn:= tsp_SSN - }; - return; -} //initBootParams - -function init() runs on MTC_CT //system MSC_ST -{ - initBootParams(); - log("v_BootA:",v_BootA); - - // Protocol Stack A creation & connections: - vc_SCCP_A:=SCCP_CT.create; - map(vc_SCCP_A:MTP3_SCCP_PORT,system:CMGW6); - connect(self:A_PORT,vc_SCCP_A:SCCP_SP_PORT); - - vc_SCCP_A.start( SCCPStart( v_BootA ) ); // Bootparameters - - - log( "init() is done"); - -}// init - -function terminate( ) runs on MTC_CT //system MSC_ST -{ - log( "termitate() started"); - /*while( all component.running != true ) - { - //waits - }*/ - all component.stop; - unmap(vc_SCCP_A:MTP3_SCCP_PORT,system:CMGW6); - disconnect(self:A_PORT,vc_SCCP_A:SCCP_SP_PORT); - - log(" all components stopped"); - self.stop; -} //terminate - -// function getOddEven returns '0' -// if even number of dec digit can be found in GT see Q.713 -function getOddEven( in hexstring pl_GT) return bitstring -{ - return int2bit( (lengthof(pl_GT) mod 2) ,1); -} - -function getOddEven_ansi( in hexstring pl_GT) return bitstring -{ - if( (lengthof(pl_GT) mod 2) == 0 ) { return '0010'B;} //even - else { return '0001'B;} //odd -} - -//****************************************************************** -//function setAddresses_gti0001() runs on MTC_CT -// Sets CalledAddress and CallingAddress as a gti001-type address -// according to the cfg file. -//****************************************************************** - -function setAddresses_gti0001() runs on MTC_CT -{ - if( (tsp_sccp_serviceType == "mtp3_itu") or - (tsp_sccp_serviceType == "mtp3b_itu") or - (tsp_sccp_serviceType == "mtp3_ttc") or - (tsp_sccp_serviceType == "mtp3b_ttc") - ) { - v_CalledAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0001:= { - natureOfAddress := '0000011'B, - oddeven := getOddEven( tsp_remote_GT ), - globalTitleAddress := tsp_remote_GT - } - }//globalTitle - } // v_CalledAddress - - v_CallingAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_own_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP.ttcn - subsystemNumber := tsp_SSN, - globalTitle:= { - gti0001 := { - natureOfAddress := '0000011'B, - oddeven := getOddEven( tsp_own_GT ), - globalTitleAddress := tsp_own_GT - } - }//globalTitle - } // v_CallingAddress - - } else if( - (tsp_sccp_serviceType == "mtp3_ansi") or - (tsp_sccp_serviceType == "mtp3b_ansi") - ) { - - v_CalledAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0011:= { - translationType := int2oct(7,1), - encodingScheme := getOddEven_ansi( tsp_remote_GT ), - numberingPlan := '0111'B, //ISDN/mobile numbering plan, see T1.112.3-2001/3.4.2.3.1 - globalTitleAddress:= tsp_remote_GT - } - }//globalTitle - } // v_CalledAddress - - v_CallingAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0011:= { - translationType := int2oct(7,1), - encodingScheme := getOddEven_ansi( tsp_own_GT ), - numberingPlan := '0111'B, //ISDN/mobile numbering plan, see T1.112.3-2001/3.4.2.3.1 - globalTitleAddress:= tsp_own_GT - } - }//globalTitle - } // v_CallingAddress - }//if - -}//setAddresses_gti001 - -function f_SendAndReceive1N_UNITDATA(in octetstring pl_userdata) runs on MTC_CT -{ - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - timer TL_timer:= 120.0; - TL_timer.start; - A_PORT.send( t_ASP_N_UNITDATA_req( v_CalledAddress, - v_CallingAddress, - '00000001'B, //sequence control - '00000001'B, //return option - pl_userdata, - omit ) ); - alt { - [] A_PORT.receive( tr_ASP_N_UNITDATA_ind ) -> value vl_N_UNITDATA_ind - { - - if( (vl_N_UNITDATA_ind.calledAddress == v_CalledAddress ) and - (vl_N_UNITDATA_ind.callingAddress == v_CallingAddress) and - (vl_N_UNITDATA_ind.userData == pl_userdata) ) - { - log("Correct CalledAddress, CallingAddress and userData received, data are correct"); - setverdict(pass); - } - else - { - log("Some data corrupted"); - setverdict( fail ); - } - }; - [] TL_timer.timeout - { - setverdict( fail ); - log("Timeout...."); - }; - } //alt - TL_timer.stop; -}//f_SendAndReceive1N_UNITDATA - -/**************************************************** -Connection Oriented Part -****************************************************/ - -/**************************************************** -function f_connect -Establishes a connection -(Sends an ASP_SCCP_N_CONNECT_req on A_PORT and waits for -N_CONNECT_ind on B_PORT. If it is received, -it sends back an ASP_SCCP_N_CONNECT_res on B_PORT and waits for -N_CONNECT_cfm on A_PORT) -****************************************************/ -function f_connect() runs on MTC_CT return boolean -{ - var ASP_SCCP_N_CONNECT_ind vl_N_CONNECT_ind; - var ASP_SCCP_N_CONNECT_cfm vl_N_CONNECT_cfm; - setverdict(none); - v_cid_A := 13; - timer TL_timer:= 120.0; - TL_timer.start; - - A_PORT.send( t_ASP_N_CONNECT_req( v_CalledAddress, - v_CallingAddress, - omit, //expeditedDataSel - omit, //QoS - omit, //userData - v_cid_A, - omit //importance - ) ); - - alt { - [] A_PORT.receive( tr_ASP_N_CONNECT_cfm ) -> value vl_N_CONNECT_cfm - { - setverdict( pass ); - log("f_connect finished successfully"); - return true; - } - [] TL_timer.timeout - { - setverdict( fail ); - log("Timeout...."); - return false; - } - }// alt - log("f_connect finished"); - return false; -}//f_connect - -/**************************************************** -function f_send -Sends an ASP_SCCP_N_DATA_req on A_PORT and waits for answer in -A_PORT -****************************************************/ -function f_send(in octetstring pl_userdata) runs on MTC_CT -{ - timer TL_timer:= 120.0; - TL_timer.start; - A_PORT.send( t_ASP_N_DATA_req ( pl_userdata, v_cid_A, omit) ) ; - alt { - [] A_PORT.receive - { - setverdict( pass ); - log("f_connect finished successfully"); - - } - [] TL_timer.timeout - { - setverdict( fail ); - log("Timeout...."); - - } - - } //alt -}//f_send - -//f_disconnect with timeout - -function f_disconnect( ) runs on MTC_CT -{ - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - timer TL_timer:= 25.0; - TL_timer.start; - A_PORT.send( t_ASP_N_DISCONNECT_req( omit, // respondingAddress - 0, //reason : end user originated, see 3.11/Q.713 - omit, //userData - v_cid_A, - omit )) - alt { - - [] A_PORT.receive - { - repeat; - } - [] TL_timer.timeout - { - setverdict( pass ); - log("Timeout...."); - }; - }//alt - - -}//f_disconnect - -//=================================================== -// Testcases -//=================================================== - -/**************************************************** -tc_ConnlessSendingShortASP -Sends a 300 octet long userdata in one ASP_SCCP_N_UNITDATA_req -and receives it in one ASP_SCCP_N_UNITDATA_req. -SCCP transfers information -in udp or (forced) xudp packets. -****************************************************/ -testcase tc_ConnlessSendingShortASP() runs on MTC_CT -{ - var octetstring vl_userdata; - init(); - setAddresses_gti0001(); - vl_userdata :='12345678901234567890'O; - f_SendAndReceive1N_UNITDATA( vl_userdata ); - terminate(); - } //tc_ConnlessSendingShortASP - -/**************************************************** - tc_ConnlessSendingLongASP - Sends a 300 octet long userdata in one ASP_SCCP_N_UNITDATA_req - and receives it in one ASP_SCCP_N_UNITDATA_req. - It is used for segmentation and reassembly. - SCCP transfers information -in xudp packets -****************************************************/ -testcase tc_ConnlessSendingLongASP() runs on MTC_CT system MSC_ST -{ - var octetstring vl_userdata; - var integer vl_i; - init(); - setAddresses_gti0001(); - vl_userdata := ''O; - for(vl_i:=0;vl_i<30;vl_i:=vl_i+1) { - vl_userdata := vl_userdata &'12345678901234567890'O; - } - f_SendAndReceive1N_UNITDATA( vl_userdata ); - terminate(); -}//tc_ConnlessSendingLongASP - -/**************************************************** -tc_ConnOrientedShortASPSending -****************************************************/ -testcase tc_ConnOrientedShortASPSending() runs on MTC_CT system MSC_ST -{ - var octetstring vl_userdata; - init(); - setAddresses_gti0001(); - vl_userdata := '12345678901234567890'O; - if(f_connect()) - { - f_send(vl_userdata); - f_disconnect(); - } - terminate(); -} -/**************************************************** -tc_ConnOrientedLongASPSending -****************************************************/ -testcase tc_ConnOrientedLongASPSending() runs on MTC_CT -{ - var octetstring vl_userdata; - var integer vl_i; - init(); - setAddresses_gti0001(); - vl_userdata := ''O; - for(vl_i:=0;vl_i<30;vl_i:=vl_i+1) { - vl_userdata := vl_userdata &'12345678901234567890'O; - } - if(f_connect()) - { - f_send(vl_userdata); - //f_SendAndReceive1N_UNITDATA( vl_userdata ); - f_disconnect(); - } - terminate(); -} -/**************************************************** - CONTROL -****************************************************/ -control -{ - execute( tc_ConnlessSendingShortASP() ); - execute( tc_ConnlessSendingLongASP() ); - execute( tc_ConnOrientedShortASPSending()); - execute( tc_ConnOrientedLongASPSending()); -} - -}//module diff --git a/SCCP_CNL113341/demo/SCCP_Types.ttcn b/SCCP_CNL113341/demo/SCCP_Types.ttcn deleted file mode 120000 index 9aa343b89..000000000 --- a/SCCP_CNL113341/demo/SCCP_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../src/SCCP_Types.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/demo/SCCP_selftest.cfg b/SCCP_CNL113341/demo/SCCP_selftest.cfg deleted file mode 100644 index 67e0762d1..000000000 --- a/SCCP_CNL113341/demo/SCCP_selftest.cfg +++ /dev/null @@ -1,52 +0,0 @@ -[LOGGING] -#FileName := "SCCP_selftest.cfg" -FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -#ConsoleMask := LOG_ALL -ConsoleMask := TTCN_WARNING | TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_PORTEVENT -#ConsoleMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING -#LogFile := "My.log" -#TimeStampFormat := Time -LogSourceInfo := Yes - -[EXECUTE] -SCCP_selftest.tc_ConnlessSendingShortASP -#SCCP_selftest.tc_ConnlessSendingLongASP -[TESTPORT_PARAMETERS] -// ******************************************************* -// * DO NOT FORGET TO SET THE FOLLOWING TWO LINE TO YOUR SEA * -// ******************************************************* -system.*.Hostname := "karasea" //sea server name -system.*.HttpPort := "5000" //sea http port -system.*.IID_String := "b303d76a-266c-11d4-b8f5-08002090d3da" - //Device Type ID -system.*.Loop:= "ON" -system.*.Filter:= "OFF" -system.*.MTP3ServiceType := "MTP3ttc" //"MTP3itu" ["MTP3itu" (default)|"MTP3ansi" | "M3UA" | "MTP3ttc" ] - -// CMGW6 -> SCTP_ASSOC_10.2.110.102 -// CMGW3 data: SCTP_ASSOC_10.2.110.2 -system.CMGW6.EntityName := "S7ST-0" //device name to connect -system.CMGW6.NI := "2" -system.CMGW6.SUT_Pc:= "461086" // 07-09-30 =0x07091E see command: s7stp:st=s7stg-0&&-32; -system.CMGW6.TESTER_Pc:= "461087" //07-09-31=0x07091F -system.CMGW6.M3UA_version:= "1" - -[MODULE_PARAMETERS] -//for sccp: -tsp_own_GT := '14377760'H -tsp_remote_GT := '14375760'H -tsp_SSN := 2 //8:MSC 5:MAP see 3.4.2.2/Q.713 -tsp_SIO := '03'O //SCCP national -tsp_own_SPC := 2351 //16382 -tsp_remote_SPC := 2300 //16383 // max value on 14 bits -#tsp_own_SPC := 461087 // =0x07091E -#tsp_remote_SPC := 461086 // =0x07091D -tsp_SLS := 0 -#tsp_sccp_serviceType := "mtp3_itu" -#tsp_sccp_serviceType := "mtp3_ansi" -tsp_sccp_serviceType := "mtp3_ttc" - -#for mtp3_itu/gti0011 or mtp3_ansi/gti0001 : -#tsp_translationType := 7 -tsp_SIF_MaxLength := 272 -tsp_force_xudt := 1 // 1:yes, 0:no diff --git a/SCCP_CNL113341/demo/SCCP_selftest.ttcn b/SCCP_CNL113341/demo/SCCP_selftest.ttcn deleted file mode 100644 index c6497045f..000000000 --- a/SCCP_CNL113341/demo/SCCP_selftest.ttcn +++ /dev/null @@ -1,607 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// -// -// Copyright Test Competence Center (TCC) ETH 2007 -// -// -// -// 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_selftest.ttcn -// Description: SS7 SCCP basic test -// according to specification ITU-T SS7 SCCP, ANSI ..., TCC ... -// References: ITU-T: Recommendation Q.711-Q.714, -// ANSI , -// TCC -// Rev: -// Updated: 2007-04.12 -// Contact: http://ttcn.ericsson.se -// - -module SCCP_selftest -{//startmodule - -modulepar -{ - hexstring tsp_own_GT := '0614377760'H; - hexstring tsp_remote_GT := '0614375760'H; - integer tsp_SSN := 2; //8:MSC 5:MAP see 3.4.2.2/Q.713 - octetstring tsp_SIO := '83'O;//SCCP national - integer tsp_own_SPC := 461087; // =0x07091E - integer tsp_remote_SPC := 461086; // =0x07091D - integer tsp_SLS := 0; - charstring tsp_sccp_serviceType := "mtp3_itu" -}//modulepar - -import from General_Types all; - -import from MTP3asp_Types all; -import from MTP3asp_PortType all; - -import from SCCPasp_Types all; -import from SCCP_Types all; -import from SCCP_Emulation all; - - -//================================================================== -// MTPsim component -// Description: Simulates two MTP stacks for two MTP3-User -// to implement this configuration: -// MTPsim includes MTP3/1 and MTP3/2 -// MTPsim only receives TRANSFER_req and sends TRANSFER_ind -// with the same content -// +----------+ +----------+ -// |SCCP-userA| <--->|SCCP-userB| = MTC -// +----------+ +----------+ -// | A | B -// +----------+ +----------+ -// | SCCP A | <--->| SCCP B | -// +----------+ +----------+ -// | A | B -// +-----------------------------+ -// | MTP3 1. | MTP3 2.| = MTP3sim -// +----------------------------+ -// -//================================================================== - -group MTPsim -{ - - -type component MTPsim_CT { - port MTP3asp_SP_PT MTP_A_PORT - port MTP3asp_SP_PT MTP_B_PORT -} - -function MTPsim_EventHandler( ) runs on MTPsim_CT -{ - var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq; - var ASP_MTP3_TRANSFERind vl_MTP3_TRANSFERind - alt{ - [] MTP_A_PORT.receive( ASP_MTP3_TRANSFERreq:? ) -> value vl_MTP3_TRANSFERreq - - { - MTP_B_PORT.send( t_ASP_MTP3_TRANSFERind( - vl_MTP3_TRANSFERreq.sio, - vl_MTP3_TRANSFERreq.opc, - vl_MTP3_TRANSFERreq.dpc, - vl_MTP3_TRANSFERreq.sls, - vl_MTP3_TRANSFERreq.data ) ) ; - repeat; - }//A.receive - [] MTP_B_PORT.receive( ASP_MTP3_TRANSFERreq:? ) -> value vl_MTP3_TRANSFERreq - - { - MTP_A_PORT.send( t_ASP_MTP3_TRANSFERind ( - vl_MTP3_TRANSFERreq.sio, - vl_MTP3_TRANSFERreq.opc, - vl_MTP3_TRANSFERreq.dpc, - vl_MTP3_TRANSFERreq.sls, - vl_MTP3_TRANSFERreq.data )); - repeat; - }//B.receive - - }//alt - -} //MTPsim_EventHandler - -}//group MTPsim - -// Main test component with behaviour SCCPuserA andSCCPuserB -type component MTC_CT { - var SCCP_PAR_Address v_CalledAddress, v_CallingAddress; - var integer v_testvalue; - var MTPsim_CT vc_MTPsim; - var SCCP_CT vc_SCCP_A, vc_SCCP_B; - var MSC_SCCP_MTP3_parameters v_BootA; - var MSC_SCCP_MTP3_parameters v_BootB; - var SCCP_PAR_Connection_Id v_cid_A, v_cid_B; - - port SCCPasp_PT A_PORT; //SCCPuserA - port SCCPasp_PT B_PORT //SCCPuserB - -} - -function initBootParams() runs on MTC_CT -{ - v_BootA := - { sio:= - { ni:= substr(oct2bit(tsp_SIO),0,2), - prio:= substr(oct2bit(tsp_SIO),2,2), - si:= substr(oct2bit(tsp_SIO),4,4) - }, - opc:=tsp_own_SPC, - dpc:=tsp_remote_SPC, - sls:=tsp_SLS, - sccp_serviceType:=tsp_sccp_serviceType, - ssn:= tsp_SSN - }; - - v_BootB := - { sio:= - { ni:= substr(oct2bit(tsp_SIO),0,2), - prio:= substr(oct2bit(tsp_SIO),2,2), - si:= substr(oct2bit(tsp_SIO),4,4) - }, - opc:=tsp_remote_SPC, - dpc:=tsp_own_SPC, - sls:=tsp_SLS, - sccp_serviceType:=tsp_sccp_serviceType, - ssn:= tsp_SSN - }; - return; -} //initBootParams -function init() runs on MTC_CT -{ - - - initBootParams(); - log("v_BootA:",v_BootA); - log("v_BootB: ",v_BootB); - vc_MTPsim:= MTPsim_CT.create; - - // Protocol Stack A creation & connections: - vc_SCCP_A:=SCCP_CT.create; - connect(vc_SCCP_A:MTP3_SCCP_PORT,vc_MTPsim:MTP_A_PORT); - connect(self:A_PORT,vc_SCCP_A:SCCP_SP_PORT); - - // Protocol Stack B creation & connections: - vc_SCCP_B:=SCCP_CT.create; - connect(vc_SCCP_B:MTP3_SCCP_PORT,vc_MTPsim:MTP_B_PORT); - connect(self:B_PORT,vc_SCCP_B:SCCP_SP_PORT); - - // Start stacks: - vc_MTPsim.start( MTPsim_EventHandler() ); - - vc_SCCP_A.start( SCCPStart( v_BootA ) ); // Bootparameters !!! cont here!!! - - vc_SCCP_B.start( SCCPStart(v_BootB)); - log( "init() is done"); - -}// init - -function terminate( ) runs on MTC_CT -{ - log( "termitate() started"); - /*while( all component.running != true ) - { - //waits - }*/ - all component.stop; - disconnect(vc_SCCP_A:MTP3_SCCP_PORT, vc_MTPsim:MTP_A_PORT); - disconnect(self:A_PORT,vc_SCCP_A:SCCP_SP_PORT); - - disconnect(vc_SCCP_B:MTP3_SCCP_PORT,vc_MTPsim:MTP_B_PORT); - disconnect(self:B_PORT,vc_SCCP_B:SCCP_SP_PORT); - log(" all components stopped"); - self.stop; -} //terminate - -// function getOddEven returns '0' -// if even number of dec digit can be found in GT see Q.713 -function getOddEven( in hexstring pl_GT) return bitstring -{ - return int2bit( (lengthof(pl_GT) mod 2) ,1); -} - -function getOddEvenEnc( in hexstring pl_GT) return bitstring -{ - if( (lengthof(pl_GT) mod 2) == 0 ) { return '0010'B;} //even - else { return '0001'B;} //odd -} - -//****************************************************************** -//function setAddresses_gti0001() runs on MTC_CT -// Sets CalledAddress and CallingAddress as a gti001-type address -// according to the cfg file. -//****************************************************************** - -function setAddresses_gti0001() runs on MTC_CT -{ - if( (tsp_sccp_serviceType == "mtp3_itu") or - (tsp_sccp_serviceType == "mtp3b_itu") or - (tsp_sccp_serviceType == "mtp3_ttc") or - (tsp_sccp_serviceType == "mtp3b_ttc") - ) { - v_CalledAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP_Emulation.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0001:= { - natureOfAddress := '0000011'B, - oddeven := getOddEven( tsp_remote_GT ), - globalTitleAddress := tsp_remote_GT - } - }//globalTitle - } // v_CalledAddress - - v_CallingAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_own_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP_Emulation.ttcn - subsystemNumber := tsp_SSN, - globalTitle:= { - gti0001 := { - natureOfAddress := '0000011'B, - oddeven := getOddEven( tsp_own_GT ), - globalTitleAddress := tsp_own_GT - } - }//globalTitle - } // v_CallingAddress - - } else if( - (tsp_sccp_serviceType == "mtp3_ansi") or - (tsp_sccp_serviceType == "mtp3b_ansi") ) - { - - v_CalledAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP_Emulation.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0011:= { - translationType := int2oct(7,1), - encodingScheme := getOddEvenEnc( tsp_remote_GT ), - numberingPlan := '0111'B, //ISDN/mobile numbering plan, see T1.112.3-2001/3.4.2.3.1 - globalTitleAddress:= tsp_remote_GT - } - }//globalTitle - } // v_CalledAddress - - v_CallingAddress :={ - addressIndicator := { - pointCodeIndic := '1'B, - ssnIndicator := '1'B, - globalTitleIndic := '0001'B, - routingIndicator := '0'B - },//addressIndicator - signPointCode := SCCP_SPC_int2bit(tsp_remote_SPC, tsp_sccp_serviceType, tsp_SIO), // see SCCP_Emulation.ttcn - subsystemNumber := tsp_SSN, - globalTitle := { - gti0011:= { - translationType := int2oct(7,1), - encodingScheme := getOddEvenEnc( tsp_own_GT ), - numberingPlan := '0111'B, //ISDN/mobile numbering plan, see T1.112.3-2001/3.4.2.3.1 - globalTitleAddress:= tsp_own_GT - } - }//globalTitle - } // v_CallingAddress - - }//if - else - { - log( "wrong tsp_sccp_serviceType ->exit "); - setverdict( fail ); - } -}//setAddresses_gti001 - -function f_SendAndReceive1N_UNITDATA(in octetstring pl_userdata) runs on MTC_CT -{ - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - timer TL_timer:= 40.0; - TL_timer.start; - log("A_PORT.send follows"); - log("Addresses:",v_CalledAddress, v_CallingAddress); - A_PORT.send( t_ASP_N_UNITDATA_req( v_CalledAddress, - v_CallingAddress, - '00000001'B, //sequence control - '00000001'B, //return option - pl_userdata, - omit ) ); - log("A_PORT.send executed"); - alt { - [] B_PORT.receive( tr_ASP_N_UNITDATA_ind ) -> value vl_N_UNITDATA_ind - { - - if( (vl_N_UNITDATA_ind.calledAddress == v_CalledAddress ) and - (vl_N_UNITDATA_ind.callingAddress == v_CallingAddress) and - (vl_N_UNITDATA_ind.userData == pl_userdata) ) - { - log("Correct CalledAddress, CallingAddress and userData received, data are correct"); - setverdict(pass); - } - else - { - log("Some data corrupted"); - log("Original data:", v_CalledAddress, v_CallingAddress, pl_userdata); - setverdict( fail ); - } - }; - [] TL_timer.timeout - { - setverdict( fail ); - log("Timeout...."); - }; - } //alt - TL_timer.stop; -}//f_SendAndReceive1N_UNITDATA - -/**************************************************** -Connection Oriented Part -****************************************************/ - -/**************************************************** -function f_connect -Establishes a connection -(Sends an ASP_SCCP_N_CONNECT_req on A_PORT and waits for -N_CONNECT_ind on B_PORT. If it is received, -it sends back an ASP_SCCP_N_CONNECT_res on B_PORT and waits for -N_CONNECT_cfm on A_PORT) -****************************************************/ -function f_connect() runs on MTC_CT return boolean -{ - var ASP_SCCP_N_CONNECT_ind vl_N_CONNECT_ind; - var ASP_SCCP_N_CONNECT_cfm vl_N_CONNECT_cfm; - setverdict(none); - v_cid_A := 13; - timer TL_timer:= 40.0; - TL_timer.start; - // A Sends ASP_SCCP_N_CONNECT_req , receives - A_PORT.send( t_ASP_N_CONNECT_req( v_CalledAddress, - v_CallingAddress, - omit, //expeditedDataSel - omit, //QoS - omit, //userData - v_cid_A, - omit //importance - ) ); - alt { - [] B_PORT.receive( tr_ASP_N_CONNECT_ind ) -> value vl_N_CONNECT_ind - { - v_cid_B := vl_N_CONNECT_ind.connectionId; - B_PORT.send( t_ASP_N_CONNECT_res( omit,// respondingAddress - omit,//expeditedDataSel - omit,//qualityOfService - omit, //userData - v_cid_B, - omit //importance - )); - } - [] B_PORT.receive - { - log( "unexpected asp received for ASP_SCCP_N_CONNECT_req, failed"); - setverdict( fail ); - return false; - } - [] TL_timer.timeout - { - setverdict( pass ); - log("Timeout...."); - return false; - } - } - - // receives ASP_SCCP_N_CONNECT_cfm - alt { - [] A_PORT.receive( tr_ASP_N_CONNECT_cfm ) -> value vl_N_CONNECT_cfm - { - setverdict( pass ); - log("f_connect finished successfully"); - return true; - } - [] TL_timer.timeout - { - setverdict( pass ); - log("Timeout...."); - return false; - } - }// alt - log("f_connect finished"); - return false; -}//f_connect - -/**************************************************** -function f_send -Sends an ASP_SCCP_N_DATA_req on A_PORT and waits for answer in -B_PORT -****************************************************/ -function f_send(in octetstring pl_userdata) runs on MTC_CT -{ - var ASP_SCCP_N_DATA_ind vl_N_DATA_ind; - timer TL_timer:= 120.0; - TL_timer.start; - A_PORT.send( t_ASP_N_DATA_req ( pl_userdata, v_cid_A, omit) ) ; - alt { - [] B_PORT.receive( tr_ASP_N_DATA_ind ) -> value vl_N_DATA_ind - { - if( vl_N_DATA_ind.userData == pl_userdata ) - { - log( "userData received correctly" ); - setverdict( pass ); - } - else - { - log("user data mismatch error in f_send()") - setverdict(fail); - } - - }//B_PORT.receive( tr_ASP_N_DATA_ind ) - - [] B_PORT.receive - { - log( "unexpected asp received for ASP_SCCP_N_DATA_req, failed"); - setverdict( fail ); - } - [] TL_timer.timeout - { - setverdict( pass ); - log("Timeout...."); - } - - } //alt -}//f_send - -//f_disconnect with timeout - -function f_disconnect( ) runs on MTC_CT -{ - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - timer TL_timer:= 5.0; - TL_timer.start; - A_PORT.send(t_ASP_N_DISCONNECT_req( omit, // respondingAddress - 0, //reason : end user originated, see 3.11/Q.713 - omit, //userData - v_cid_A, - omit )) - alt { - [] B_PORT.receive(tr_ASP_N_DISCONNECT_ind) -> value vl_N_DISCONNECT_ind - { - setverdict( pass ); - } - [] B_PORT.receive - { - log("unexpected asp received on B_PORT instead of ASP_SCCP_N_DISCONNECT_ind"); - //repeat; - setverdict(fail); - } - [] TL_timer.timeout - { - setverdict( fail ); - log("Timeout...."); - }; - }//alt - - //give time for inner release complete (rlc): - alt { - [] TL_timer.timeout - { - setverdict( pass ); - log("Stopped with expected timeout"); - }; - } -}//f_disconnect - -//=================================================== -// Testcases -//=================================================== - -/**************************************************** -tc_ConnlessSendingShortASP -Sends a 300 octet long userdata in one ASP_SCCP_N_UNITDATA_req -and receives it in one ASP_SCCP_N_UNITDATA_req. -SCCP transfers information -in udp or (forced) xudp packets. -****************************************************/ -testcase tc_ConnlessSendingShortASP() runs on MTC_CT -{ - var octetstring vl_userdata; - init(); - setAddresses_gti0001(); - vl_userdata :='12345678901234567890'O; - f_SendAndReceive1N_UNITDATA( vl_userdata ); - terminate(); - } //tc_ConnlessSendingShortASP - -/**************************************************** - tc_ConnlessSendingLongASP - Sends a 300 octet long userdata in one ASP_SCCP_N_UNITDATA_req - and receives it in one ASP_SCCP_N_UNITDATA_req. - It is used for segmentation and reassembly. - SCCP transfers information -in xudp packets -****************************************************/ -testcase tc_ConnlessSendingLongASP() runs on MTC_CT -{ - var octetstring vl_userdata; - var integer vl_i; - init(); - setAddresses_gti0001(); - vl_userdata := ''O; - for(vl_i:=0;vl_i<30;vl_i:=vl_i+1) { - vl_userdata := vl_userdata &'12345678901234567890'O; - } - f_SendAndReceive1N_UNITDATA( vl_userdata ); - terminate(); -}//tc_ConnlessSendingLongASP - -/**************************************************** -tc_ConnOrientedShortASPSending -****************************************************/ -testcase tc_ConnOrientedShortASPSending() runs on MTC_CT -{ - var octetstring vl_userdata; - init(); - setAddresses_gti0001(); - vl_userdata := '12345678901234567890'O; - if(f_connect( )) - { - f_send(vl_userdata); - f_disconnect(); - } - terminate(); -} -/**************************************************** -tc_ConnOrientedLongASPSending -****************************************************/ -testcase tc_ConnOrientedLongASPSending() runs on MTC_CT -{ - var octetstring vl_userdata; - var integer vl_i; - init(); - setAddresses_gti0001(); - vl_userdata := ''O; - for(vl_i:=0;vl_i<30;vl_i:=vl_i+1) { - vl_userdata := vl_userdata &'12345678901234567890'O; - } - if(f_connect( )) - { - f_send(vl_userdata); - //f_SendAndReceive1N_UNITDATA( vl_userdata ); - f_disconnect(); - } - terminate(); -} -/**************************************************** - CONTROL -****************************************************/ -control -{ - execute( tc_ConnlessSendingShortASP() ); - execute( tc_ConnlessSendingLongASP() ); - execute( tc_ConnOrientedShortASPSending()); - execute( tc_ConnOrientedLongASPSending()); -} - -}//module diff --git a/SCCP_CNL113341/demo/SCCPasp_Types.ttcn b/SCCP_CNL113341/demo/SCCPasp_Types.ttcn deleted file mode 120000 index f7668d7f4..000000000 --- a/SCCP_CNL113341/demo/SCCPasp_Types.ttcn +++ /dev/null @@ -1 +0,0 @@ -../src/SCCPasp_Types.ttcn \ No newline at end of file diff --git a/SCCP_CNL113341/src/SCCP_Emulation.ttcn b/SCCP_CNL113341/src/SCCP_Emulation.ttcn deleted file mode 100644 index dbfa08c56..000000000 --- a/SCCP_CNL113341/src/SCCP_Emulation.ttcn +++ /dev/null @@ -1,6043 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// 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_Emulation.ttcn -// Description: SS7 SCCP definitions and dynamic part according to -// specification ITU-T SS7 SCCP, ANSI ..., ttc ... -// References: ITU-T: Recommendation Q.711-Q.714, -// ANSI : T1.111-2001 (MTP) and T1.112-2001 (SCCP) -// TTC : JT-Q711 -// Rev: R6A05 -// Prodnr: CNL 113 341 -// Updated: 2009-01-26 -// Contact: http://ttcn.ericsson.se - -module SCCP_Emulation -{//startmodule - -modulepar -{ - float tsp_maxLocalReference := 16777216.0; //loc ref= 0...tsp_maxLocalReference-1 - float tsp_max_ConnectionId := 16777216.0; //max connection id = 0..tsp_max_ConnectionId -1 - integer tsp_force_xudt := 0; - integer tsp_SIF_MaxLength := 272 -} - -import from General_Types all; -import from MTP3asp_Types all; -import from MTP3asp_PortType all; -import from SCCP_Types all; -import from SCCPasp_Types all; -import from SCCP_Mapping all; - -group SCCPConstants -{//startgroup SCCPConstants - -//------------------------------------------------------------------------------ -// Subsystem Numbers -//------------------------------------------------------------------------------ - -const integer cg_SSN_notKnown:=0; -const integer cg_SSN_sCCPmanagement:=1; -const integer cg_SSN_reservedForITU:=2; -const integer cg_SSN_iSUP:=3; -const integer cg_SSN_oMAP:=4; -const integer cg_SSN_mAP:=5; -const integer cg_SSN_hLR:=6; -const integer cg_SSN_vLR:=7; -const integer cg_SSN_mSC:=8; -const integer cg_SSN_eIC:=9; -const integer cg_SSN_aUC:=10; -const integer cg_SSN_isdnSS:=11; -const integer cg_SSN_reservedForIntUse:=12; -const integer cg_SSN_bISDNe2e:=13; -const integer cg_SSN_tCtestResponder:=14; -const integer cg_SSN_rANAP:=142; -const integer cg_SSN_bSSAP:=254; -// TCAP has not SSN - -//------------------------------------------------------------------------------ -// Routing Indicator values ITU: 3.4.1/Q713. -//------------------------------------------------------------------------------ -const BIT1n cg_route_on_SSN := '1'B; -const BIT1n cg_route_on_GT := '0'B; - -//------------------------------------------------------------------------------ -// Release Cause -//------------------------------------------------------------------------------ - - -const integer cg_Rel_endUserOrig:=0; -const integer cg_Rel_endUserCong:=1; -const integer cg_Rel_endUserFailure:=2; -const integer cg_Rel_sCCPUserOrig:=3; -const integer cg_Rel_remProcError:=4; -const integer cg_Rel_inconsConnData:=5; -const integer cg_Rel_accessFailure:=6; -const integer cg_Rel_accessCongestion:=7; -const integer cg_Rel_subsystFailure:=8; -const integer cg_Rel_subsystCongest:=9; -const integer cg_Rel_mTPFailure:=10; -const integer cg_Rel_networkCongest:=11; -const integer cg_Rel_expResetTimer:=12; -const integer cg_Rel_expRecInacTimer:=13; -const integer cg_Rel_reserved:=14; -const integer cg_Rel_unqualified:=15; -const integer cg_Rel_sCCPFailure:=16; - -//------------------------------------------------------------------------------ -// Return Cause -//------------------------------------------------------------------------------ - -const integer cg_Ret_noTransl4AddrNature:=0; -const integer cg_Ret_noTransl4SpecifAddr:=1; -const integer cg_Ret_subsystemCongestion:=2; -const integer cg_Ret_subsystemFailure:=3; -const integer cg_Ret_unequippedUser:=4; -const integer cg_Ret_mTPFailure:=5; -const integer cg_Ret_networkCongestion:=6; -const integer cg_Ret_unqualified:=7; -const integer cg_Ret_errorMessageTransport:=8; -const integer cg_Ret_errorLocalProcessing:=9; -const integer cg_Ret_destNoReassembly:=10; -const integer cg_Ret_sCCPFailure:=11; -const integer cg_Ret_hopCounterViolation:=12; -const integer cg_Ret_segmeNotSupported:=13; -const integer cg_Ret_segmentationFailure:=14; - -//------------------------------------------------------------------------------ -// Reset Cause -//------------------------------------------------------------------------------ - - -const integer cg_Res_endUserOrig:=0; -const integer cg_Res_sCCPUserOrig:=1; -const integer cg_Res_messOutOfOrder_incPs:=2; -const integer cg_Res_messOutOfOrder_incPr:=3; -const integer cg_Res_remProcErr_messOutOfWindow:=4; -const integer cg_Res_remProcErr_IncPsAfterReinit:=5; -const integer cg_Res_remProcErr_general:=6; -const integer cg_Res_remEndUserOperational:=7; -const integer cg_Res_networkOperational:=8; -const integer cg_Res_accessOperational:=9; -const integer cg_Res_networkCongestion:=10; -const integer cg_Res_reserved:=11; -const integer cg_Res_unqualified:=12; - -//------------------------------------------------------------------------------ -//Error Cause -//------------------------------------------------------------------------------ - -const integer cg_Err_unassignedDestinationLRN:=0 ; -const integer cg_Err_inconsistentSourceLRN:=1 ; -const integer cg_Err_pointCodeMismatch:=2 ; -const integer cg_Err_serviceClassMismatch:=3 ; -const integer cg_Err_unqualified:=4 ; - -//------------------------------------------------------------------------------ -//Refusal Cause -//------------------------------------------------------------------------------ - -const integer cg_Ref_endUserOrigin:=0; -const integer cg_Ref_endUserConges:=1; -const integer cg_Ref_endUserFailure:=2; -const integer cg_Ref_sCCPUserOrigin:=3; -const integer cg_Ref_destAddrUnkn:=4; -const integer cg_Ref_destInaccess:=5; -const integer cg_Ref_qOSNotAvail_nonTransient:=6; -const integer cg_Ref_qOSNotAvail_transient:=7; -const integer cg_Ref_accessFailure:=8; -const integer cg_Ref_accessCongestion:=9; -const integer cg_Ref_subsystemFailure:=10; -const integer cg_Ref_subsystemCongest:=11; -const integer cg_Ref_expConnEstTimer:=12; -const integer cg_Ref_incomUserData:=13; -const integer cg_Ref_reserved:=14; -const integer cg_Ref_unqualified:=15; -const integer cg_Ref_hopCounterViol:=16; -const integer cg_Ref_sCCPFailure:=17; -const integer cg_Ref_noTransl4address:=18; -const integer cg_Ref_unequippedUser:=19; - -//------------------------------------------------------------------------------ -// Originator -//------------------------------------------------------------------------------ - -const integer cg_Undefined:=0; -const integer cg_NSU:=1; -const integer cg_NSP:=2; - - -//------------------------------------------------------------------------------ -// CREF Reason -//------------------------------------------------------------------------------ - -const integer cg_CREF_endUserOrig:=0; -const integer cg_CREF_endUserCong:=1; -const integer cg_CREF_endUserFailure:=2; -const integer cg_CREF_SCCPUserOrig:=3; -const integer cg_CREF_destAddrUnknwn_NT:=4; -const integer cg_CREF_destInaccg_T:=5; -const integer cg_CREF_QOSUnavail_NT:=6; -const integer cg_CREF_QOSUnavail_T:=7; -const integer cg_CREF_accessFailure:=8; -const integer cg_CREF_accessCong:=9; -const integer cg_CREF_destInaccg_NT:=10; -const integer cg_CREF_subsystCong:=11; -const integer cg_CREF_unspec_T:=12; -const integer cg_CREF_incompInfo:=13; -const integer cg_CREF_unspec_NT:=15; -const integer cg_CREF_undef:=16; -const integer cg_CREF_hopCntrViolation:=18; - -//------------------------------------------------------------------------------ -// DISC Reason -//------------------------------------------------------------------------------ - -const integer cg_DISC_normal:=20; -const integer cg_DISC_endUserCong:=21; -const integer cg_DISC_endUserFailure:=22; -const integer cg_DISC_SCCPUserOrig:=23; -const integer cg_DISC_abnormal_T:=24; -const integer cg_DISC_accessFailure:=28; -const integer cg_DISC_accessCong:=29; -const integer cg_DISC_abnormal_NT:=30; -const integer cg_DISC_subsystCong:=31; -const integer cg_DISC_undef:=32; -const integer cg_DISC_incompInfo:=33; -const integer cg_DISC_abnormal:=35; - -//------------------------------------------------------------------------------ -// RESET Reason -//------------------------------------------------------------------------------ -const integer cg_RESET_userSynch:= 40 ; -const integer cg_RESET_unspec:= 41 ; -const integer cg_RESET_netCong:= 42 ; -const integer cg_RESET_undef:= 43 ; - -//------------------------------------------------------------------------------ -//Mapping Refusal Cause to Reason and Originator A.1/Q.713 -//------------------------------------------------------------------------------ - -const integer cg_Mapping_RefCause_Orig[20]:= -{ - cg_NSU, - cg_NSU, - cg_NSU, - cg_NSU, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSU, - cg_NSU, - cg_NSP, - cg_NSU, - cg_NSP, - cg_NSU, - cg_NSP, - cg_Undefined, - cg_NSP, - cg_Undefined, - cg_NSP, - cg_NSP -}; - - -const integer cg_Mapping_RefCause_Reason[20]:= -{ - cg_CREF_endUserOrig, - cg_CREF_endUserCong, - cg_CREF_endUserFailure, - cg_CREF_SCCPUserOrig, - cg_CREF_destAddrUnknwn_NT, - cg_CREF_destInaccg_T, - cg_CREF_QOSUnavail_NT, - cg_CREF_QOSUnavail_T, - cg_CREF_accessFailure, - cg_CREF_accessCong, - cg_CREF_destInaccg_NT, - cg_CREF_subsystCong, - cg_CREF_unspec_T, - cg_CREF_incompInfo, - cg_CREF_unspec_T, - cg_CREF_undef, - cg_CREF_hopCntrViolation, - cg_CREF_undef, - cg_CREF_destAddrUnknwn_NT, - cg_CREF_destInaccg_NT -}; - -//------------------------------------------------------------------------------ -//Mapping Release Cause to Reason and Originator A.2/Q.713 -//------------------------------------------------------------------------------ - -const integer cg_Mapping_RelCause_Orig[17]:= -{ - cg_NSU, - cg_NSU, - cg_NSU, - cg_NSU, - cg_NSP, - cg_NSP, - cg_NSU, - cg_NSU, - cg_NSP, - cg_NSU, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSP, - cg_Undefined, - cg_Undefined, - cg_NSP -}; - -//mapping CREF-> ASP_SCCP_N_DISCONNECT_ind: -//Reason:=cg_Mapping_RefCause_Reason[RefCause]; -//Originator:=cg_Mapping_RefCause_Orig[RefCause]; - - -//mapping ASP_SCCP_N_DISCONNECT_req-> CREF: -// - -const integer cg_Mapping_RelCause_Reason[17]:= { - cg_DISC_normal, - cg_DISC_endUserCong, - cg_DISC_endUserFailure, - cg_DISC_SCCPUserOrig, - cg_DISC_abnormal_T, - cg_DISC_abnormal_T, - cg_DISC_accessFailure, - cg_DISC_accessCong, - cg_DISC_abnormal_NT, - cg_DISC_subsystCong, - cg_DISC_abnormal_NT, - cg_DISC_abnormal_T, - cg_DISC_abnormal_T, - cg_DISC_abnormal_T, - cg_DISC_undef, - cg_DISC_undef, - cg_DISC_abnormal_NT -}; - - - -//mapping RLSD-> ASP_SCCP_N_DISCONNECT_ind: -//Reason:=cg_Mapping_RelCause_Reason[RelCause]; -//Originator:=cg_Mapping_RelCause_Orig[RelCause]; - -//mapping ASP_SCCP_N_DISCONNECT_req-> RLSD: -// - - -//------------------------------------------------------------------------------ -//Mapping Reset Cause to Reason and Originator A.2/Q.713 -//------------------------------------------------------------------------------ - - -const integer cg_Mapping_ResCause_Orig[12]:= { - cg_NSU, - cg_NSU, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSP, - cg_NSU, - cg_NSP, - cg_NSU, - cg_NSP, - cg_Undefined -}; - - -const integer cg_Mapping_ResCause_Reason[12]:= { - cg_RESET_userSynch, - cg_RESET_userSynch, - cg_RESET_unspec, - cg_RESET_unspec, - cg_RESET_unspec, - cg_RESET_unspec, - cg_RESET_unspec, - cg_RESET_userSynch, - cg_RESET_unspec, - cg_RESET_userSynch, - cg_RESET_netCong, - cg_RESET_undef -}; - -//mapping RSR-> ASP_SCCP_N_DISCONNECT_ind: -//Reason:=cg_Mapping_ResCause_Reason[ResCause]; -//Originator:=cg_Mapping_ResCause_Orig[ResCause]; - -//mapping ASP_SCCP_N_DISCONNECT_req-> RSR: -// - -const integer cg_TimerArraySize := 16; - -}//endgroup SCCPConstants - -//****************************************************************************** -// PDU templates -//****************************************************************************** - - -group PDUTemplateDefinitionsSending -{ - - - -//****************************************************************************** -// Message Connection Request (CR) (Q713 $4.2) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ConnectionRequest t_PDU_SCCP_ConnectionRequest -( - SCCP_param_SourceLocalReference pl_SLR, - SCCP_param_ProtocolClass pl_Proto_Class, - SCCP_param_CPartyAddressEnc pl_CalledAddress, -template SCCP_param_Credit_opt pl_credit, -template SCCP_param_CPartyAddressEnc_opt pl_CallingAddress , -template SCCP_param_Data_opt pl_Data, -template SCCP_param_HopCounter_opt pl_HopCntr, -template SCCP_param_Importance_opt pl_Imp, -template SCCP_param_EndOfOptionalParams pl_eop - -):= - { - messageType:=cr, - sourceLocRef:=pl_SLR, - protClass:=pl_Proto_Class, - pointer1:=2, - pointer2:=0, - calledPAddress:=pl_CalledAddress, - optionalPart:= { - credit:=pl_credit, - callingPAddress:=pl_CallingAddress, - data:=pl_Data, - hopCounter:=pl_HopCntr, - importance:=pl_Imp - }, - eop:=pl_eop - } - - - -//****************************************************************************** -// Message Connection Confirm (CC) (Q713 $4.3) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ConnectionConfirm t_PDU_SCCP_ConnectionConfirm -( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_SourceLocalReference pl_SLR, - SCCP_param_ProtocolClass pl_Proto_Class, -template SCCP_param_Credit_opt pl_credit, -template SCCP_param_CPartyAddressEnc_opt pl_CalledAddress, -template SCCP_param_Data_opt pl_Data, -template SCCP_param_Importance_opt pl_Imp, -template SCCP_param_EndOfOptionalParams pl_eop -):= - { - messageType:=cc, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR, - protClass:=pl_Proto_Class, - pointer1:=1, - optionalPart:= { - credit:=pl_credit, - calledPAddress:=pl_CalledAddress, - data:=pl_Data, - importance:=pl_Imp - }, - eop:=pl_eop - } - - -//****************************************************************************** -// Message Connection Refused (CREF) (Q713 $4.4) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ConnectionRefused t_PDU_SCCP_ConnectionRefused -( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_RefusalCause pl_RefCause, -template SCCP_param_CPartyAddressEnc_opt pl_CalledAddress, -template SCCP_param_Data_opt pl_Data, -template SCCP_param_Importance_opt pl_Imp, -template SCCP_param_EndOfOptionalParams pl_eop -):= - { - messageType:=cref, - destLocRef:=pl_DLR, - refusalCause:=pl_RefCause, - pointer1:=1, - optionalPart:= { - calledPAddress:=pl_CalledAddress, - data:=pl_Data, - importance:=pl_Imp - }, - eop:=pl_eop - } - - -//****************************************************************************** -// Message Released (RLSD) (Q713 $4.5) -//****************************************************************************** - - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_Released t_PDU_SCCP_Released -( - OCT3 pl_DLR, - OCT3 pl_SLR, - SCCP_param_ReleaseCause pl_RelCause, -template SCCP_param_Data_opt pl_Data, -template SCCP_param_Importance_opt pl_Imp, -template SCCP_param_EndOfOptionalParams pl_eop -):= - { - messageType:=rlsd, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR, - releaseCause:=pl_RelCause, - pointer1:=1, - optionalPart:= { - data:=pl_Data, - importance:=pl_Imp - }, - eop:=pl_eop - } - -//****************************************************************************** -// Message Release Complete (RLC) (Q713 $4.6) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ReleaseComplete t_PDU_SCCP_ReleaseComplete -( - OCT3 pl_DLR, - OCT3 pl_SLR -):= - { - messageType:=rlc, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR - } - - - -//****************************************************************************** -// Message Data form 1 (DT1) (Q713 $4.7) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_DataForm1 t_PDU_SCCP_DataForm1 -( - OCT3 pl_DLR, - SCCP_param_SegmentingReassembl pl_SegmReasm, - SCCP_param_Data pl_Data -):= - { - messageType:=dt1, - destLocRef:=pl_DLR, - segmentingReassembl:=pl_SegmReasm, - pointer1:=1, - data:=pl_Data - } - - - -//****************************************************************************** -// Message Data form 2 (DT2) (Q713 $4.8) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Data Acknowledgement (AK) (Q713 $4.9) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Unitdata (UDT) (Q713 $4.10) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_Unitdata t_PDU_SCCP_Unitdata -( - SCCP_param_ProtocolClass pl_Proto_Class, - SCCP_param_CPartyAddressEnc pl_CalledAddress, - SCCP_param_CPartyAddressEnc pl_CallingAddress, - SCCP_param_Data pl_Data -):= - { - messageType :=udt, - protClass :=pl_Proto_Class, - pointer1:=3, - pointer2:=0, - pointer3:=0, - calledPAddress := pl_CalledAddress, - callingPAddress := pl_CallingAddress, - data:=pl_Data - } - - - -//****************************************************************************** -// Message Unitdata service (UDTS) (Q713 $4.11) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_UnitdataService t_PDU_SCCP_UnitdataService -( - SCCP_param_ReturnCause pl_RetCause, - SCCP_param_CPartyAddressEnc pl_CalledAddress, - SCCP_param_CPartyAddressEnc pl_CallingAddress, - SCCP_param_Data pl_Data -):= - { - messageType:=udts, - returnCause:=pl_RetCause, - pointer1:=3, - pointer2:=0, - pointer3:=0, - calledPAddress:=pl_CalledAddress, - callingPAddress:=pl_CallingAddress, - data:=pl_Data - } - -//****************************************************************************** -// Message Expedited Data (ED) (Q713 $4.12) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Expedited Data Acknowledgement (EA) (Q713 $4.13) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Reset Request (RSR) (Q713 $4.14) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ResetRequest t_PDU_SCCP_ResetRequest -( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_SourceLocalReference pl_SLR, - SCCP_param_ResetCause pl_ResCause -):= - { - messageType:=rsr, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR, - resetCause:=pl_ResCause - } - - -//****************************************************************************** -// Message Reset Confirmation (RSC) (Q713 $4.15) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ - template PDU_SCCP_ResetConfirm t_PDU_SCCP_ResetConfirm - ( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_SourceLocalReference pl_SLR - ):= - { - messageType:=rsr, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR - } - -//****************************************************************************** -// Message Protocol data unit error (ERR) (Q713 $4.16) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ProtDataUnitError t_PDU_SCCP_ProtDataUnitError -( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_ErrorCause pl_ErrCause -):= - { - messageType:=rsr, - destLocRef:=pl_DLR, - errorCause:=pl_ErrCause - } - - -//****************************************************************************** -// Message Inactivity test (IT) (Q713 $4.17) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_InactivityTest t_PDU_SCCP_InactivityTest -( - SCCP_param_DestLocalReference pl_DLR, - SCCP_param_SourceLocalReference pl_SLR, - SCCP_param_ProtocolClass pl_Proto_Class, - SCCP_param_SequencingSegmenting pl_SeqSegm, - SCCP_param_Credit pl_credit -):= - { - messageType:=it, - destLocRef:=pl_DLR, - sourceLocRef:=pl_SLR, - protClass:=pl_Proto_Class, - sequencingSegmenting:=pl_SeqSegm, - credit:=pl_credit - } - - -//****************************************************************************** -// Message Extended Unitdata (XUDT) (Q713 $4.18) -//****************************************************************************** -//------------------------------------------------------------------------------ - -template PDU_SCCP_ExtUnitdata t_PDU_SCCP_ExtUnitdata -( - SCCP_param_ProtocolClass pl_Proto_Class, - SCCP_param_HopCounter pl_hopCounter, - SCCP_param_CPartyAddressEnc pl_calledPAddress, - SCCP_param_CPartyAddressEnc pl_callingPAddress, - SCCP_param_Data pl_data, -template SCCP_param_Segmentation_opt pl_segm, -template SCCP_param_Importance_opt pl_imp -):= - { - messageType:= xudt, - protClass:=pl_Proto_Class, - hopCounter:=pl_hopCounter, - pointer1:=0, - pointer2:=0, - pointer3:=0, - pointer4:=0, - calledPAddress:=pl_calledPAddress, - callingPAddress:=pl_callingPAddress, - data := pl_data, - optionalPart:= { - segmentation:=pl_segm, - importance := pl_imp - }, - eop:= { paramName:=con_SCCP_eop } - } - - -//****************************************************************************** -// Message Extended Unitdata Service(XUDTS) (Q713 $4.19) -//****************************************************************************** -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - - -//****************************************************************************** -// Message Long Unitdata (LUDT) (Q713 $4.20) -//****************************************************************************** -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Long Unitdata Service (LUDTS) (Q713 $4.21) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// SCCP management messages (Q713 $5.3) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - - -}//endgroup PDUTemplateDefinitionsSending - -//****************************************************************************** - -group PDUTemplateDefinitionsReceiving -{ - - - -//****************************************************************************** -// Message Connection Request (CR) (Q713 $4.2) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ - template PDU_SCCP_ConnectionRequest tr_PDU_SCCP_ConnectionRequest:= - { - messageType:=cr, - sourceLocRef:=?, - protClass:=?, - pointer1:=?, - pointer2:=?, - calledPAddress:=?, - optionalPart:= { - credit:=*, - callingPAddress:=*, - data:=*, - hopCounter:=*, - importance:=* - }, - eop:=* - } - - - -//****************************************************************************** -// Message Connection Confirm (CC) (Q713 $4.3) -//****************************************************************************** - - - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ConnectionConfirm tr_PDU_SCCP_ConnectionConfirm:= -{ - messageType:=cc, - destLocRef:=?, - sourceLocRef:=?, - protClass:=?, - pointer1:=?, - optionalPart:= { - credit:=*, - calledPAddress:=*, - data:=*, - importance:=* - }, - eop:=* -} - - -//****************************************************************************** -// Message Connection Refused (CREF) (Q713 $4.4) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_ConnectionRefused tr_PDU_SCCP_ConnectionRefused:= -{ - messageType:=cref, - destLocRef:=?, - refusalCause:=?, - pointer1:=?, - optionalPart:= { - calledPAddress:=*, - data:=*, - importance:=* - }, - eop:=* -} - - -//****************************************************************************** -// Message Released (RLSD) (Q713 $4.5) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_Released tr_PDU_SCCP_Released:= -{ - messageType:=rlsd, - destLocRef:=?, - sourceLocRef:=?, - releaseCause:=?, - pointer1:=?, - optionalPart:= { - data:=*, - importance:=* - }, - eop:=* -} - - - -//****************************************************************************** -// Message Release Complete (RLC) (Q713 $4.6) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ - -template PDU_SCCP_ReleaseComplete tr_PDU_SCCP_ReleaseComplete:= -{ - messageType:=rlc, - destLocRef:=?, - sourceLocRef:=? -} - - - -//****************************************************************************** -// Message Data form 1 (DT1) (Q713 $4.7) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ -template PDU_SCCP_DataForm1 tr_PDU_SCCP_DataForm1:= -{ - messageType:=dt1, - destLocRef:=?, - segmentingReassembl:=?, - pointer1:=?, - data:=? -} - -//****************************************************************************** -// Message Data form 2 (DT2) (Q713 $4.8) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Data Acknowledgement (AK) (Q713 $4.9) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Unitdata (UDT) (Q713 $4.10) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ - -template PDU_SCCP_Unitdata tr_PDU_SCCP_Unitdata:= -{ - messageType:=udt, - protClass:=?, - pointer1:=?, - pointer2:=?, - pointer3:=?, - calledPAddress:=?, - callingPAddress:=?, - data:=? -} - -//****************************************************************************** -// Message Unitdata service (UDTS) (Q713 $4.11) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Message definition -//------------------------------------------------------------------------------ - -template PDU_SCCP_UnitdataService tr_PDU_SCCP_UnitdataService:= -{ - messageType:=udts, - returnCause:=?, - pointer1:=?, - pointer2:=?, - pointer3:=?, - calledPAddress:=?, - callingPAddress:=?, - data:=? -} - -//****************************************************************************** -// Message Expedited Data (ED) (Q713 $4.12) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Expedited Data Acknowledgement (EA) (Q713 $4.13) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Reset Request (RSR) (Q713 $4.14) -//****************************************************************************** - -template PDU_SCCP_ResetRequest tr_PDU_SCCP_ResetRequest:= -{ - messageType:=rsr, - destLocRef:=?, - sourceLocRef:=?, - resetCause:=? -} - -//****************************************************************************** -// Message Reset Confirmation (RSC) (Q713 $4.15) -//****************************************************************************** - -template PDU_SCCP_ResetConfirm tr_PDU_SCCP_ResetConfirm:= -{ - messageType:=rsr, - destLocRef:=?, - sourceLocRef:=? -} - -//****************************************************************************** -// Message Protocol data unit error (ERR) (Q713 $4.16) -//****************************************************************************** - -template PDU_SCCP_ProtDataUnitError tr_PDU_SCCP_ProtDataUnitError:= -{ - messageType:=rsr, - destLocRef:=?, - errorCause:=? -} - -//****************************************************************************** -// Message Inactivity test (IT) (Q713 $4.17) -//****************************************************************************** - -template PDU_SCCP_InactivityTest tr_PDU_SCCP_InactivityTest:= -{ - messageType:=it, - destLocRef:=?, - sourceLocRef:=?, - protClass:=?, - sequencingSegmenting:=?, - credit:=? -} - -//****************************************************************************** -// Message Extended Unitdata (XUDT) (Q713 $4.18) -//****************************************************************************** - - -template PDU_SCCP_ExtUnitdata tr_PDU_SCCP_ExtUnitdata := -{ - messageType:=xudt, - protClass:= ?, //connection oriented but no flow control - hopCounter:=?, - pointer1:=?, - pointer2:=?, - pointer3:=?, - pointer4:=?, - calledPAddress:=?, - callingPAddress:=?, - data := ?, - optionalPart:= { - segmentation:=*, - importance := * - }, - eop:= * -} - -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Extended Unitdata Service(XUDTS) (Q713 $4.19) -//****************************************************************************** -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - -//****************************************************************************** -// Message Long Unitdata (LUDT) (Q713 $4.20) -//****************************************************************************** -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// Message Long Unitdata Service (LUDTS) (Q713 $4.21) -//****************************************************************************** - -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - -//****************************************************************************** -// SCCP management messages (Q713 $5.3) -//****************************************************************************** -//------------------------------------------------------------------------------ -// Not supported -//------------------------------------------------------------------------------ - - - -}//endgroup PDUTemplateDefinitionsReceiving - -type record of boolean Timer_Snapshot; -type enumerated TimerIdentifierType {conn_est, ias, iar, rel, repeat_rel, int, reset,internal_reset, t_guard}; - - -type component SCCP_CT -{ //startcomponent SCCP_CT - - //Component variables - //*************************************************************** - // Connection Oriented Signalling: - // StateTransition-> ConnectionData; - var ConnectionData ConnectionTable[16]; //16 connections 0 to 15 - var integer v_session; // actual conn. oriented session index - - // Connectioenless Signalling: - //== sending == - var OCT3 segmLocRefTable[16]; - var integer v_segmLocRefIndex; // last index in segmLocRefTable, cyclical incremented - //==receiving== - var ClessRcvBuff ClessRcvBuffTable[16]; - - var integer v_reference; // not used ??? - - var hexstring v_own_GT; - var hexstring v_remote_GT; - var integer v_SSN; - var OCT1 v_SIO; - var integer v_NI; //network indicator, if NI<2 => international - var integer v_own_SPC; - var integer v_remote_SPC; - var integer v_SLS; - - var SCCP_ServiceType v_SCCPServiceType; //enum: itu, ansi, ttc or mpt - //var v_maxLocalReference; // Local Reference max. value, see in SCCP.ttcn - var integer v_PC_length; //length of point code, calculated at start! NOT USED - var integer v_RoutingLabelLen; //in bytes - var integer v_sccp_data_maxlen; // dt1 payload length upper limit - var integer v_sccp_pdu_maxlen; // SIF len -routing label len - - var Timer_Snapshot v_T_conn_est; - var Timer_Snapshot v_T_ias; - var Timer_Snapshot v_T_iar; - var Timer_Snapshot v_T_rel; - var Timer_Snapshot v_T_repeat_rel; - var Timer_Snapshot v_T_int; - var Timer_Snapshot v_T_reset; - var Timer_Snapshot v_T_internal_reset; - var Timer_Snapshot v_T_guard; - //var Timer_Snapshot v_T_T_guard; - //*************************************************************** - - port SCCPasp_SP_PT SCCP_SP_PORT;//port type defined in SCCP_ASPs - port MTP3asp_SCCP_PT MTP3_SCCP_PORT; - - //component timers - - timer T_conn_est[cg_TimerArraySize]:= { tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est, - tspc_timer_T_conn_est,tspc_timer_T_conn_est }; - - timer T_ias[cg_TimerArraySize]:= { tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias, - tspc_timer_T_ias,tspc_timer_T_ias }; - - timer T_iar[cg_TimerArraySize]:= { tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar, - tspc_timer_T_iar,tspc_timer_T_iar }; - - timer T_rel[cg_TimerArraySize]:= { tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel, - tspc_timer_T_rel,tspc_timer_T_rel }; - - timer T_repeat_rel[cg_TimerArraySize]:= { tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel, - tspc_timer_T_repeat_rel,tspc_timer_T_repeat_rel }; - - timer T_int[cg_TimerArraySize]:= { tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int, - tspc_timer_T_int,tspc_timer_T_int }; - - -/* timer T_T_guard[cg_TimerArraySize]:= { tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard, - tspc_timer_T_guard,tspc_timer_T_guard }; -*/ - - timer T_reset[cg_TimerArraySize]:= { tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset, - tspc_timer_T_reset,tspc_timer_T_reset }; - - - timer T_internal_reset[cg_TimerArraySize]:= { tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset, - tspc_timer_T_internal_reset,tspc_timer_T_internal_reset }; - - - timer T_guard[cg_TimerArraySize]:= { tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard, - tspc_timer_guard,tspc_timer_guard }; - -}//endcomponent SCCP_CT - - -group SCCPFunctions -{//startgroup SCCPFunctions - //****************************************************************** - function f_StartTimer(TimerIdentifierType pl_TimerIdentifier,integer pl_TimerIndex,float pl_duration := -1.0) runs on SCCP_CT - //****************************************************************** - { - select (pl_TimerIdentifier) - { - case(conn_est) - { - if(pl_duration < 0.0){ - T_conn_est[pl_TimerIndex].start; - v_T_conn_est[pl_TimerIndex] := true; - } - else{ - T_conn_est[pl_TimerIndex].start(pl_duration); - v_T_conn_est[pl_TimerIndex] := true; - } - } - case(ias) - { - if(pl_duration < 0.0){ - T_ias[pl_TimerIndex].start; - v_T_ias[pl_TimerIndex] := true; - } - else{ - T_ias[pl_TimerIndex].start(pl_duration); - v_T_ias[pl_TimerIndex] := true; - } - } - case(iar) - { - if(pl_duration < 0.0){ - T_iar[pl_TimerIndex].start; - v_T_iar[pl_TimerIndex] := true; - } - else{ - T_iar[pl_TimerIndex].start(pl_duration); - v_T_iar[pl_TimerIndex] := true; - } - } - case(rel) - { - if(pl_duration < 0.0){ - T_rel[pl_TimerIndex].start; - v_T_rel[pl_TimerIndex] := true; - } - else{ - T_rel[pl_TimerIndex].start(pl_duration); - v_T_rel[pl_TimerIndex] := true; - } - } - case(repeat_rel) - { - if(pl_duration < 0.0){ - T_repeat_rel[pl_TimerIndex].start; - v_T_repeat_rel[pl_TimerIndex] := true; - } - else{ - T_repeat_rel[pl_TimerIndex].start(pl_duration); - v_T_repeat_rel[pl_TimerIndex] := true; - } - } - case(int) - { - if(pl_duration < 0.0){ - T_int[pl_TimerIndex].start; - v_T_int[pl_TimerIndex] := true; - } - else{ - T_int[pl_TimerIndex].start(pl_duration); - v_T_int[pl_TimerIndex] := true; - } - } - case(reset) - { - if(pl_duration < 0.0){ - T_reset[pl_TimerIndex].start; - v_T_reset[pl_TimerIndex] := true; - } - else{ - T_reset[pl_TimerIndex].start(pl_duration); - v_T_reset[pl_TimerIndex] := true; - } - } - case(internal_reset) - { - if(pl_duration < 0.0){ - T_internal_reset[pl_TimerIndex].start; - v_T_internal_reset[pl_TimerIndex] := true; - } - else{ - T_internal_reset[pl_TimerIndex].start(pl_duration); - v_T_internal_reset[pl_TimerIndex] := true; - } - } - case(t_guard) - { - if(pl_duration < 0.0){ - T_guard[pl_TimerIndex].start; - v_T_guard[pl_TimerIndex] := true; - } - else{ - T_guard[pl_TimerIndex].start(pl_duration); - v_T_guard[pl_TimerIndex] := true; - } - } - case else - {log("Warning: Incorrect Timer!")} - } - } - //****************************************************************** - function f_StopTimer(TimerIdentifierType pl_TimerIdentifier,integer pl_TimerIndex) runs on SCCP_CT - //****************************************************************** - { - select (pl_TimerIdentifier) - { - case(conn_est) - { - T_conn_est[pl_TimerIndex].stop; - v_T_conn_est[pl_TimerIndex] := false; - } - case(ias) - { - T_ias[pl_TimerIndex].stop; - v_T_ias[pl_TimerIndex] := false; - } - case(iar) - { - T_iar[pl_TimerIndex].stop; - v_T_iar[pl_TimerIndex] := false; - } - case(rel) - { - T_rel[pl_TimerIndex].stop; - v_T_rel[pl_TimerIndex] := false; - } - case(repeat_rel) - { - T_repeat_rel[pl_TimerIndex].stop; - v_T_repeat_rel[pl_TimerIndex] := false; - } - case(int) - { - T_int[pl_TimerIndex].stop; - v_T_int[pl_TimerIndex] := false; - } - case(reset) - { - T_reset[pl_TimerIndex].stop; - v_T_reset[pl_TimerIndex] := false; - } - case(internal_reset) - { - T_internal_reset[pl_TimerIndex].stop; - v_T_internal_reset[pl_TimerIndex] := false; - } - case(t_guard) - { - T_guard[pl_TimerIndex].stop; - v_T_guard[pl_TimerIndex] := false; - } - case else - {log("Warning: Incorrect Timer!")} - } - } - - //****************************************************************** - function f_initialize_timer_states() runs on SCCP_CT - //****************************************************************** - { - var integer i; - for (i:=0; i= 2) { v_RoutingLabelLen := 5; } - else { v_RoutingLabelLen := 4; } - } - else if( v_SCCPServiceType == m3ua ) - { - v_RoutingLabelLen := 4; // not really... - //v_sccp_data_maxlen := 261; - } - else if ( (v_SCCPServiceType == mtp3_mpt)) - { - if(v_NI== 2) { v_RoutingLabelLen := 7; } - else { v_RoutingLabelLen := 4; } - } - else - { - log( "Wrong SCCPServiceType value was selected in the config file"); - log("Modified for default value 'mtp3_itu'."); - v_SCCPServiceType := mtp3_itu; - v_RoutingLabelLen := 4; //itu - - } - - // mtp3_itu_b i.e. itu mtp3b - // SCCP_ansi_b i.e ansi mtp3b settings ??? - //272= max length of SIF, see Fig3-3B/T1.111.4-2001 - //temp for test: 10 ? - //tsp_SIF_MaxLength = 272 - v_sccp_pdu_maxlen := tsp_SIF_MaxLength - v_RoutingLabelLen; // -; //7: msg_type+locref+ptr+len - log("v_sccp_pdu_maxlen:",v_sccp_pdu_maxlen); - v_sccp_data_maxlen := v_sccp_pdu_maxlen-7; // dt1 payload // -7: msg_type+locref+ptr+len - - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - ConnectionTable[vl_j].localReference :='000000'O; - ConnectionTable[vl_j].remoteReference:='000000'O; - ConnectionTable[vl_j].state :=idle; - ConnectionTable[vl_j].connectionId :=0; - ConnectionTable[vl_j].reassembler_buffer.buffer :=''O; - ConnectionTable[vl_j].reassembler_buffer.actlen := 0; - ConnectionTable[vl_j].reassembler_buffer.maxlen := 16*v_sccp_data_maxlen; //???? - segmLocRefTable[vl_j] := '000000'O; - reallocate_ClessRcvBuff(vl_j); - - }//endfor - - //starts SCCP execution - ScanEvents(); - }//endfunction of SCCPStart - - - //****************************************************************** - function ReleaseResources(in integer pl_session) runs on SCCP_CT - //****************************************************************** - {//startfunction - - //release resources - ConnectionTable[pl_session].remoteReference:='000000'O; - ConnectionTable[pl_session].localReference:='000000'O; - ConnectionTable[pl_session].connectionId:=0; - Stop_sessionTimers(pl_session); - ConnectionTable[pl_session].state:=idle; - ConnectionTable[pl_session].reassembler_buffer.buffer:=''O; - ConnectionTable[pl_session].reassembler_buffer.actlen:=0; - }//endfunction ReleaseResources - - //****************************************************************** - function GuardTimer_Expired(in integer pl_session) runs on SCCP_CT - //no answer to ASP_SCCP_N_CONNECT_ind received - //****************************************************************** - {//startfunction - - //local declarations - var PDU_SCCP vl_PDU_SCCP; - - //Action Table follows - - if (ConnectionTable[pl_session].state==connection_pending_IC) - {//startif - - //send Released-this should disconnect the other end - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[pl_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_Rel_endUserOrig; - vl_PDU_SCCP.released.pointer1:=0; - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - //release resources, return to idle - ReleaseResources(pl_session); - - }//endif - - }//endfunction GuardTimer_Expired - - - //****************************************************************** - function InternalResetTimer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - {//startfunction - - //local declarations - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_RESET_ind vl_N_RESET_ind; - - //Action Table follows - - if (ConnectionTable[pl_session].state==active) - {//startif - //send ASP_SCCP_N_RESET_ind - //assemble ASP_SCCP_N_ASP - vl_N_RESET_ind.originator:=cg_NSP; - vl_N_RESET_ind.reason:=cg_DISC_abnormal_T; - vl_N_RESET_ind.connectionId:=ConnectionTable[pl_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_RESET_ind( - vl_N_RESET_ind.originator, - vl_N_RESET_ind.reason, - vl_N_RESET_ind.connectionId - ));//send ASP_SCCP_N_RESET_ind - //send Reset Request - - vl_PDU_SCCP.resetreq.messageType:=rsr; - vl_PDU_SCCP.resetreq.destLocRef:=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.resetreq.sourceLocRef:=ConnectionTable[pl_session].localReference; - vl_PDU_SCCP.resetreq.resetCause:=cg_Res_endUserOrig; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Reset Request - - //start reset timer - - f_StartTimer(reset,pl_session); - //restart send inactivity timer - f_StopTimer(ias,pl_session);//to avoid warnings - f_StartTimer(ias,pl_session); - //reset variables etc. - //change state - ConnectionTable[pl_session].state:=reset_bothway; - - }//endif - }//InternalResetTimer_Expired - - //****************************************************************** - function Reset_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - {//startfunction - - //local declarations - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //Action Table follows - if (ConnectionTable[pl_session].state==reset_bothway) - {//startif - - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_NSP; - vl_N_DISCONNECT_ind.reason:=cg_DISC_abnormal_T; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[pl_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources, stop inactivity timers, change state to idle - ReleaseResources(pl_session); - }//endif - - }//Reset_Timer_Expired - - //****************************************************************** - function Interval_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - {//startfunction - - //Action Table follows - if (ConnectionTable[pl_session].state==disconnect_pending) - { - log ("Interval timer expired"); - //release resources - ReleaseResources(pl_session); - } - - }//Interval_Timer_Expired - - - - //****************************************************************** - function RepeatRelease_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - { - - //local declarations - var PDU_SCCP vl_PDU_SCCP; - - //Action Table follows - if (ConnectionTable[pl_session].state==disconnect_pending) - { - //assemble and route MTP3_ASP - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[pl_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_Res_endUserOrig; - vl_PDU_SCCP.released.pointer1:=0; - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - //restart repeat release timer - f_StopTimer(repeat_rel,pl_session);//to avoid warnings - f_StartTimer(repeat_rel,pl_session); - //no state change, return - } - - }//RepeatRelease_Timer_Expired - - - //****************************************************************** - function Release_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - { - - //local declarations - var PDU_SCCP vl_PDU_SCCP; - - //Action Table follows - if (ConnectionTable[pl_session].state==disconnect_pending) - { - //assemble and route MTP3_ASP - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[pl_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_Res_endUserOrig;//? - vl_PDU_SCCP.released.pointer1:=0; - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - f_StartTimer(repeat_rel,pl_session); - f_StartTimer(int,pl_session); - //no state change, return - - }//endif - - }//Release_Timer_Expired - - - //****************************************************************** - function ReceiveInactivity_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - { - //local declarations - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //Action Table follows - if (ConnectionTable[pl_session].state==idle){} - else if (ConnectionTable[pl_session].state==active) - { - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_NSP; - vl_N_DISCONNECT_ind.reason:=cg_DISC_endUserFailure;//? - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[pl_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //stop inactivity timers - f_StopTimer(ias,pl_session); - f_StopTimer(iar,pl_session); - - //assemble and route MTP3_ASP - - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[pl_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_Rel_expRecInacTimer; - vl_PDU_SCCP.released.pointer1:=0;// No options - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - //start release timer - f_StartTimer(rel,pl_session); - ConnectionTable[pl_session].state:=disconnect_pending; - - }//endif - - }//ReceiveInactivity_Timer_Expired - - - //****************************************************************** - function SendInactivity_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - { - - //local declarations - var PDU_SCCP vl_PDU_SCCP; - - //Action Table follows - - if (ConnectionTable[pl_session].state==active) - { - - //assemble and route MTP3_ASP - vl_PDU_SCCP.inacttest.messageType :=it; - vl_PDU_SCCP.inacttest.destLocRef :=ConnectionTable[pl_session].remoteReference; - vl_PDU_SCCP.inacttest.sourceLocRef:=ConnectionTable[pl_session].localReference; - - vl_PDU_SCCP.inacttest.protClass:={ - class:='0010'B, - messageHandling:='0000'B - };//protocol class 2 - - vl_PDU_SCCP.inacttest.sequencingSegmenting:={ - reserved:='0'B, - p_s:='0000000'B, - more:='0'B, - pr:='0000000'B - };//it will be ignored - - vl_PDU_SCCP.inacttest.credit:='00'O; - //Param name credit(9), length 1, credit 0 -it will be mercifully ignored anyhow - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send inactivity test - - //restart send inactivity timer - f_StopTimer(ias,pl_session);//to avoid warnings - f_StartTimer(ias,pl_session); - - }//endif - - }//endfunction - - //****************************************************************** - function Conn_Timer_Expired(integer pl_session) runs on SCCP_CT - //****************************************************************** - { - - //local declarations - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - if (ConnectionTable[pl_session].state==connection_pending_OG) - { - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_NSP; - vl_N_DISCONNECT_ind.reason:=cg_DISC_abnormal_T; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[pl_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources - ReleaseResources(pl_session); - } - else if (ConnectionTable[pl_session].state==wait_conn_confirm) - { - ReleaseResources(pl_session); - } - - }//Conn_Timer_Expired - - //****************************************************************** - function GenerateLocalReference() runs on SCCP_CT return OCT3 - //****************************************************************** - { - var OCT3 vl_LocalReference; - - do - { - vl_LocalReference := int2oct(float2int(rnd()*tsp_maxLocalReference), 3 ); - } - while ( Retrieve_session( vl_LocalReference ) != -1 ); - return vl_LocalReference; - - }//GenerateLocalReference - - //****************************************************************** - function GenerateConnectionId() runs on SCCP_CT return integer - //****************************************************************** - { - var integer vl_ConnectionId; - - do { vl_ConnectionId := float2int(rnd()*tsp_max_ConnectionId); } - while ( Retrieve_session_connectionId( vl_ConnectionId ) != -1 ); - - return vl_ConnectionId; - }//GenerateConnectionId - - //****************************************************************** - function Stop_sessionTimers ( integer pl_session) runs on SCCP_CT - //****************************************************************** - { - if (T_conn_est[pl_session].running) - { f_StopTimer(conn_est,pl_session);} - if (T_ias[pl_session].running) - { f_StopTimer(ias,pl_session);} - if (T_iar[pl_session].running) - { f_StopTimer(iar,pl_session);} - if (T_rel[pl_session].running) - { f_StopTimer(rel,pl_session);} - if (T_repeat_rel[pl_session].running) - { f_StopTimer(repeat_rel,pl_session);} - if (T_int[pl_session].running) - { f_StopTimer(int,pl_session);} - // if (T_T_guard[pl_session].running) - // { f_StopTimer(t_t_guard,pl_session);} - if (T_reset[pl_session].running) - { f_StopTimer(reset,pl_session);} - //T_reassembly[pl_session].stop; - - }//Stop_sessionTimers - - //****************************************************************** - function CheckIdleIndividuals() runs on SCCP_CT return integer - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].state==idle) - { - log("First idle individual index:",vl_j); - return vl_j; - } - } - - return -1; - - }//CheckIdleIndividuals - - //****************************************************************** - function ConnectionAlreadyEstablished( OCT3 pl_LocRef) runs on SCCP_CT return boolean - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].localReference==pl_LocRef) - { - return true; - } - } - return false; - - } //ConnectionAlreadyEstablished - - //****************************************************************** - function ConnectionAlreadyEstablished_remote( OCT3 pl_LocRef) runs on SCCP_CT return boolean - //****************************************************************** - { - var integer vl_j; - - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].remoteReference==pl_LocRef) - { - return true; - } - } - return false; - - } //ConnectionAlreadyEstablished_remote - - //****************************************************************** - function ConnectionAlreadyEstablished_connectionId(integer pl_ConnId) runs on SCCP_CT return boolean - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].connectionId==pl_ConnId) - { - return true; - } - } - - return false; - - } //ConnectionAlreadyEstablished_connectionId - - //****************************************************************** - function Retrieve_session( OCT3 pl_LocRef ) runs on SCCP_CT return integer - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - - if (ConnectionTable[vl_j].localReference==pl_LocRef) - { - log("Session index based on local reference:",vl_j); - return vl_j; - } - } - - return -1; - - } //Retrieve_session - - //****************************************************************** - function Retrieve_session_remote( OCT3 pl_LocRef ) - runs on SCCP_CT return integer - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].remoteReference==pl_LocRef) - { - log("Session index based on remote reference:",vl_j); - return vl_j; - } - } - return -1; - - } //Retrieve_session_remote - - //****************************************************************** - function Retrieve_session_connectionId( integer pl_ConnId ) - runs on SCCP_CT return integer - //****************************************************************** - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if (ConnectionTable[vl_j].connectionId==pl_ConnId) - { - log("Session index based on connection ID:",vl_j); - return vl_j; - } - } - return -1; - - } //Retrieve_session_connectionId - - //================================================================== - // Connectionless Segmented Data Handling/ - //================================================================== - //================================================================== - // SENDING: SCCP->MTP3 Segmentation Local Reference Handling - // Handles segmLocRefTable,v_segmLocRefIndex, - // which are defined in SCCP_typedefs.ttcn - //================================================================== - - //****************************************************************** - //function exist_segmLocalRef - //****************************************************************** - - function exist_segmLocalRef( in OCT3 pl_segLocRef) - runs on SCCP_CT return boolean - { - if( get_segmLocalRefIndex(pl_segLocRef) == -1 ) { return false;} - else { return true; }; - } //exist_segmLocalRef - - //****************************************************************** - //function get_segLocalRefIndex - //****************************************************************** - - function get_segmLocalRefIndex(in OCT3 pl_segmLocRef) - runs on SCCP_CT return integer - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if( segmLocRefTable[vl_j] == pl_segmLocRef ) { return vl_j;} - } - return -1; - }//get_segLocalRefIndex - - //****************************************************************** - //function reset_segmLocalRef - //****************************************************************** - function reset_segmLocalRef(in OCT3 pl_segmLocRef) - runs on SCCP_CT - { - var integer vl_j; - vl_j:= get_segmLocalRefIndex( pl_segmLocRef ) - segmLocRefTable[vl_j] := '000000'O; - } - - //****************************************************************** - // function create_segmLocalRef - //****************************************************************** - - function create_segmLocalRef() - runs on SCCP_CT return OCT3 - { - var OCT3 vl_segmLocRef; - v_segmLocRefIndex := (v_segmLocRefIndex +1) mod 16; - do - { - vl_segmLocRef := int2oct(float2int( rnd() *tsp_maxLocalReference), 3 ); - } - while ( exist_segmLocalRef( vl_segmLocRef ) ); - - return vl_segmLocRef; - }//create_segmLocalRef - - //================================================================== - // RECEIVING CONNECTIONLESS PDUs BY SCCP - //================================================================== - - //****************************************************************** - //function exist_ClessRcvBuff - //****************************************************************** - function exist_ClessRcvBuff( in OCT3 pl_segmRemRef) - runs on SCCP_CT return boolean - { - if( get_ClessRcvBuffIndex(pl_segmRemRef) == -1 ) { return false;} - else { return true; }; - } //exist_ClessRcvBuff - - //****************************************************************** - //function get_segRemoteRefIndex - //****************************************************************** - function get_ClessRcvBuffIndex(in OCT3 pl_segmRemRef) - runs on SCCP_CT return integer - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if( ClessRcvBuffTable[vl_j].segmRemoteRef == pl_segmRemRef ) - { return vl_j;} - } - return -1; - }//get_ClessRcvBuffIndex - - //****************************************************************** - //function get_idle_ClessRcvBuffIndex - //****************************************************************** - function get_idle_ClessRcvBuffIndex( ) - runs on SCCP_CT return integer - { - var integer vl_j; - for (vl_j:=0;vl_j<16;vl_j:=vl_j+1) - { - if( ClessRcvBuffTable[vl_j].state == segmLocRef_idle ) { return vl_j;} - } - return -1; - }//get_idle_ClessRcvBuffIndex - - //****************************************************************** - //function allocate_ClessRcvBuff - //****************************************************************** - function allocate_ClessRcvBuff(in OCT3 pl_segmRemRef) - runs on SCCP_CT return integer - { - var OCT3 vl_segmRemRef; - var integer vl_j; - - if( exist_ClessRcvBuff(pl_segmRemRef) ){ return -1;}; - - vl_j := get_idle_ClessRcvBuffIndex(); - ClessRcvBuffTable[vl_j].state := segmLocRef_busy; - ClessRcvBuffTable[vl_j].segmRemoteRef := pl_segmRemRef; - ClessRcvBuffTable[vl_j].reassembler_buffer.buffer:=''O; - ClessRcvBuffTable[vl_j].reassembler_buffer.actlen:=0; - return vl_j; - - }//allocate_ClessRcvBuff - //****************************************************************** - //function reallocate_ClessRcvBuff - //****************************************************************** - function reallocate_ClessRcvBuff(in integer pl_index ) - runs on SCCP_CT - { - ClessRcvBuffTable[pl_index].state := segmLocRef_idle; - // maybe unnecessaryy - ClessRcvBuffTable[pl_index].segmRemoteRef := '000000'O; - ClessRcvBuffTable[pl_index].reassembler_buffer.buffer:=''O; - ClessRcvBuffTable[pl_index].reassembler_buffer.actlen:=0; - return; - } - - //****************************************************************** - //function store_segmData - //****************************************************************** - function store_segmData(in integer pl_index, in PDU_SCCP_ExtUnitdata pl_PDU_SCCP_ExtUnitdata) - runs on SCCP_CT - { - ClessRcvBuffTable[pl_index].reassembler_buffer.buffer:= - ClessRcvBuffTable[pl_index].reassembler_buffer.buffer& - pl_PDU_SCCP_ExtUnitdata.data.data; - ClessRcvBuffTable[pl_index].reassembler_buffer.actlen:= - ClessRcvBuffTable[pl_index].reassembler_buffer.actlen+ - pl_PDU_SCCP_ExtUnitdata.data.paramLength; - } //store_segmData - - //****************************************************************** - //function send_ClessRcvBuff_in_N_UNITDATAind - //****************************************************************** - function send_ClessRcvBuff_in_N_UNITDATAind ( - in integer pl_index, - in PDU_SCCP_ExtUnitdata pl_PDU_SCCP_ExtUnitdata) - runs on SCCP_CT - { - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - - vl_N_UNITDATA_ind.calledAddress := - ConvertPDUEncodedAddressToASPAddress( pl_PDU_SCCP_ExtUnitdata.calledPAddress ); - - vl_N_UNITDATA_ind.callingAddress := - ConvertPDUEncodedAddressToASPAddress( pl_PDU_SCCP_ExtUnitdata.callingPAddress ); - - vl_N_UNITDATA_ind.sequenceControl:= - '0000000'B&pl_PDU_SCCP_ExtUnitdata.protClass.class[3]; - if( pl_PDU_SCCP_ExtUnitdata.protClass.messageHandling == '1000'B ) - { vl_N_UNITDATA_ind.returnOption := '00000001'B; } - else - { vl_N_UNITDATA_ind.returnOption := '00000000'B; } - - vl_N_UNITDATA_ind.userData := ClessRcvBuffTable[pl_index].reassembler_buffer.buffer; - - vl_N_UNITDATA_ind.importance := omit; - - SCCP_SP_PORT.send( vl_N_UNITDATA_ind ); - - return; - }//send_ClessRcvBuff_in_N_UNITDATAind - - //****************************************************************** - //function send_ClessData_in_N_UNITDATAind - // unbuffered data sending - //****************************************************************** - - function send_ClessData_in_N_UNITDATAind ( - in PDU_SCCP_ExtUnitdata pl_PDU_SCCP_ExtUnitdata) - runs on SCCP_CT - { - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - - vl_N_UNITDATA_ind.calledAddress := - ConvertPDUEncodedAddressToASPAddress( pl_PDU_SCCP_ExtUnitdata.calledPAddress ); - - vl_N_UNITDATA_ind.callingAddress := - ConvertPDUEncodedAddressToASPAddress( pl_PDU_SCCP_ExtUnitdata.callingPAddress ); - - vl_N_UNITDATA_ind.sequenceControl:= - '0000000'B&pl_PDU_SCCP_ExtUnitdata.protClass.class[3]; - if( pl_PDU_SCCP_ExtUnitdata.protClass.messageHandling == '1000'B ) - { vl_N_UNITDATA_ind.returnOption := '00000001'B; } - else - { vl_N_UNITDATA_ind.returnOption := '00000000'B; } - - vl_N_UNITDATA_ind.userData := pl_PDU_SCCP_ExtUnitdata.data.data; - - vl_N_UNITDATA_ind.importance := omit; - - SCCP_SP_PORT.send( vl_N_UNITDATA_ind ); - return; - }//send_ClessData_in_N_UNITDATAind - - //****************************************************************** - // CONN.ORIENTED SEGMENTING/REASSEMBLING - //****************************************************************** - - //****************************************************************** - // SEGMENTING - //****************************************************************** - - //****************************************************************** - // function sending_dataform1s_in_ASP_MTP_TRANSFERreqs - // segmentates data and sends segments in dataform1 messages - // included in asp_MTP3_TRANSFERreq PDUs - // == segmentation - connection oriented case == - // counterpair: buffered_sending_ASP_N_DATA_ind - //****************************************************************** - function sending_dataform1s_in_ASP_MTP_TRANSFERreqs( in ASP_SCCP_N_DATA_req pl_N_DATA_req ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var integer vl_len; - var integer vl_actdatalen; - var SCCP_PAR_UserData vl_data; - var integer vl_from; // first position in vl_data to be sent - vl_data := pl_N_DATA_req.userData; - vl_from := 0; - // fixed part of messages: - vl_PDU_SCCP.dataform1.messageType:=dt1; - vl_PDU_SCCP.dataform1.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.dataform1.segmentingReassembl:={ - more:='1'B, - reserved:='0000000'B - }; - vl_PDU_SCCP.dataform1.pointer1:=1; - // variable part of messages: - vl_len := lengthof(vl_data); - - while ( vl_len > 0 ) - { - - log("vl_len:",vl_len); - log("vl_from",vl_from); - if(vl_len > v_sccp_data_maxlen) - { - vl_actdatalen := v_sccp_data_maxlen; - vl_PDU_SCCP.dataform1.segmentingReassembl.more :='1'B; - } - else - { - vl_actdatalen := vl_len; - vl_PDU_SCCP.dataform1.segmentingReassembl.more :='0'B; - }; - - vl_PDU_SCCP.dataform1.data.data:= substr( vl_data, vl_from, vl_actdatalen); - vl_PDU_SCCP.dataform1.data.paramLength:= vl_actdatalen; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Data Form1 - - log( "data sent by MTP3_SCCP_PORT: ",vl_PDU_SCCP.dataform1.data.data); - - //restart send inactivity timer - f_StopTimer(ias,v_session);//to avoid warnings - f_StartTimer(ias,v_session); - - vl_from := vl_from + vl_actdatalen; - vl_len := vl_len - vl_actdatalen; - - }//while - } //sending_dataform1s_in_ASP_MTP_TRANSFERreqs - - //****************************************************************** - // REASSEMBLING - //****************************************************************** - - //****************************************************************** - // function buffered_sending_ASP_N_DATA_ind - // counterpair of sending_dataform1s_in_ASP_MTP_TRANSFERreqs - //****************************************************************** - - function buffered_sending_ASP_N_DATA_ind( in PDU_SCCP_DataForm1 pl_PDU_SCCP_DataForm1 ) - runs on SCCP_CT - { - // Investigate this shorcut (not implemented): - // if actlen==0 and more==0=> send immediately - - // DT1 should be put to the reassembly buffer - var integer vl_newbufflen; - log("DT1 will be put to the reassembly buffer"); - //log( ConnectionTable[v_session].connectionId ); - vl_newbufflen := ConnectionTable[v_session].reassembler_buffer.actlen + - pl_PDU_SCCP_DataForm1.data.paramLength; - - if( vl_newbufflen <= ConnectionTable[v_session].reassembler_buffer.maxlen) - { - ConnectionTable[v_session].reassembler_buffer.buffer := - ConnectionTable[v_session].reassembler_buffer.buffer & - pl_PDU_SCCP_DataForm1.data.data; - ConnectionTable[v_session].reassembler_buffer.actlen := vl_newbufflen; - log("DT1 data has been put to the reassembly buffer"); - } - else - { - //send as much as possible OR error ???? NOT READY YET !!!! - //CONT HERE, ask LAFA - log("Unexpected/unimplemented program branch"); - } - - // sending: - if( pl_PDU_SCCP_DataForm1.segmentingReassembl.more == '0'B ) - { - log("DT1/segmentingReassembl/more==0 received=> send ASP_SCCP_N_DATA comes"); - //send: - SCCP_SP_PORT.send( t_ASP_N_DATA_ind( - ConnectionTable[v_session].reassembler_buffer.buffer, - ConnectionTable[v_session].connectionId, - omit)); - - //restart send inactivity timer - f_StopTimer(ias,v_session);//to avoid warnings - f_StartTimer(ias,v_session); - - // clear the buffer: - ConnectionTable[v_session].reassembler_buffer.buffer :=''O; - ConnectionTable[v_session].reassembler_buffer.actlen := 0; - } - else - { - log("DT1/segmentingReassembl/more==1 received=> sent to buffer only"); - } - }//buffered_sending_ASP_N_DATA_ind - - - //****************************************************************** - // CONVERSIONS - //****************************************************************** - // - // Differences between standards are hidden here !!!! - // - // 3 different functions working on different structures with the - // virtually indentical code - - //****************************************************************** - // Functions coding ASP address into octetstream - //****************************************************************** - - // ITU - - function ConvertASPAddressToEncodedAddress_itu( in SCCP_PAR_Address pl_ASPAddress) - runs on SCCP_CT - return SCCP_param_CPartyAddressEnc - { - - var SCCP_param_CPartyAddress_itu vl_PDUAddress; //structured fit to encoding - var SCCP_param_CPartyAddressEnc vl_PDUAddressEncoded; - - vl_PDUAddress.addressIndicator.pointCodeIndic:= - pl_ASPAddress.addressIndicator.pointCodeIndic; - - vl_PDUAddress.addressIndicator.ssnIndicator:= - pl_ASPAddress.addressIndicator.ssnIndicator; - - vl_PDUAddress.addressIndicator.globalTitleIndic:= - pl_ASPAddress.addressIndicator.globalTitleIndic; - - vl_PDUAddress.addressIndicator.routingIndicator:= - pl_ASPAddress.addressIndicator.routingIndicator; - - vl_PDUAddress.addressIndicator.reserved:='0'B; - // if (ischosen(pl_ASPAddress.signPointCode) ) not used because it is mandatory field (???) - - //----signPointCode handling - if ( ispresent( pl_ASPAddress.signPointCode )) { - vl_PDUAddress.signPointCode := - '00'B&pl_ASPAddress.signPointCode; - } else { - vl_PDUAddress.signPointCode := omit; - }; - - //----subsystemNumber handling - if ( ispresent( pl_ASPAddress.subsystemNumber ) ){ - vl_PDUAddress.subsystemNumber := pl_ASPAddress.subsystemNumber; - } else { - vl_PDUAddress.subsystemNumber :=omit; - }; - - // --- globalTitle handling-- - if ( ispresent(pl_ASPAddress.globalTitle)) - {//startif1 - - var SCCP_ASPfield_GlobalTitle tmpGT ; - tmpGT := pl_ASPAddress.globalTitle; - - if (ischosen(tmpGT.gti0001)) - { - vl_PDUAddress.globalTitle.gti0001.natureOfAddress:=tmpGT.gti0001.natureOfAddress; - vl_PDUAddress.globalTitle.gti0001.oddeven:=tmpGT.gti0001.oddeven; - vl_PDUAddress.globalTitle.gti0001.globalTitleAddress:=tmpGT.gti0001.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0010)) - { - vl_PDUAddress.globalTitle.gti0010.translationType:=tmpGT.gti0010.translationType; - vl_PDUAddress.globalTitle.gti0010.globalTitleAddress:=tmpGT.gti0010.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0011)) - { - vl_PDUAddress.globalTitle.gti0011.translationType:=tmpGT.gti0011.translationType; - vl_PDUAddress.globalTitle.gti0011.encodingScheme:=tmpGT.gti0011.encodingScheme; - vl_PDUAddress.globalTitle.gti0011.numberingPlan:=tmpGT.gti0011.numberingPlan; - vl_PDUAddress.globalTitle.gti0011.globalTitleAddress:=tmpGT.gti0011.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0100)) - { - vl_PDUAddress.globalTitle.gti0100.translationType:=tmpGT.gti0100.translationType; - vl_PDUAddress.globalTitle.gti0100.encodingScheme:=tmpGT.gti0100.encodingScheme; - vl_PDUAddress.globalTitle.gti0100.numberingPlan:=tmpGT.gti0100.numberingPlan; - vl_PDUAddress.globalTitle.gti0100.natureOfAddress:=tmpGT.gti0100.natureOfAddress; - vl_PDUAddress.globalTitle.gti0100.reserved:='0'B; - vl_PDUAddress.globalTitle.gti0100.globalTitleAddress:=tmpGT.gti0100.globalTitleAddress; - } - } - else - { - vl_PDUAddress.globalTitle := omit; - }; - - vl_PDUAddressEncoded.addr:= enc_PDU_SCCP_Address_itu( vl_PDUAddress); - vl_PDUAddressEncoded.paramLength:= lengthof(vl_PDUAddressEncoded.addr); - - return vl_PDUAddressEncoded; - - } //ConvertASPAddressToEncodedAddress_itu - - //****************************************************************** - - // ANSI - function ConvertASPAddressToEncodedAddress_ansi(in SCCP_PAR_Address pl_ASPAddress) - runs on SCCP_CT return SCCP_param_CPartyAddressEnc - { - - var SCCP_param_CPartyAddress_ansi vl_PDUAddress; //structured fit to encoding - var SCCP_param_CPartyAddressEnc vl_PDUAddressEncoded; - - vl_PDUAddress.addressIndicator.pointCodeIndic:= - pl_ASPAddress.addressIndicator.pointCodeIndic; - - vl_PDUAddress.addressIndicator.ssnIndicator:= - pl_ASPAddress.addressIndicator.ssnIndicator; - - vl_PDUAddress.addressIndicator.globalTitleIndic:= - pl_ASPAddress.addressIndicator.globalTitleIndic; - - vl_PDUAddress.addressIndicator.routingIndicator:= - pl_ASPAddress.addressIndicator.routingIndicator; - - vl_PDUAddress.addressIndicator.reserved:='1'B; - - //----signPointCode handling - if ( ispresent( pl_ASPAddress.signPointCode )){ - vl_PDUAddress.signPointCode := pl_ASPAddress.signPointCode; - } else { - vl_PDUAddress.signPointCode := omit; - }; - - //----subsystemNumber handling - if ( ispresent( pl_ASPAddress.subsystemNumber )) { - vl_PDUAddress.subsystemNumber:=pl_ASPAddress.subsystemNumber; - } else { - vl_PDUAddress.subsystemNumber :=omit; - }; - - if (ispresent(pl_ASPAddress.globalTitle)) - {//startif1 - - var SCCP_ASPfield_GlobalTitle tmpGT := pl_ASPAddress.globalTitle; - - - if (ischosen(tmpGT.gti0010)) - { - vl_PDUAddress.globalTitle.gti0010.translationType:=tmpGT.gti0010.translationType; - vl_PDUAddress.globalTitle.gti0010.globalTitleAddress:=tmpGT.gti0010.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0011)) //ansi gti001, meaning: - //used GT: SCCP_field_GlobalTitle_TT_NP_ES - { - //the left side is ANSI!!!: - vl_PDUAddress.globalTitle.gti0001.translationType:=tmpGT.gti0011.translationType; - vl_PDUAddress.globalTitle.gti0001.encodingScheme:=tmpGT.gti0011.encodingScheme; - vl_PDUAddress.globalTitle.gti0001.numberingPlan:=tmpGT.gti0011.numberingPlan; - vl_PDUAddress.globalTitle.gti0001.globalTitleAddress:=tmpGT.gti0011.globalTitleAddress; - }; - - } - else - { - vl_PDUAddress.globalTitle := omit; - }; - - // SCCP_param_CPartyAddress_ansi -> octetstring - vl_PDUAddressEncoded.addr:= enc_PDU_SCCP_Address_ansi( vl_PDUAddress); - vl_PDUAddressEncoded.paramLength:= lengthof(vl_PDUAddressEncoded.addr); - - return vl_PDUAddressEncoded - - } //ConvertASPAddressToEncodedAddress_ansi - - // ttc national: - - function ConvertASPAddressToEncodedAddress_ttc( in SCCP_PAR_Address pl_ASPAddress) - runs on SCCP_CT - return SCCP_param_CPartyAddressEnc - { - - var SCCP_param_CPartyAddress_ttc vl_PDUAddress; //structured fit to encoding - var SCCP_param_CPartyAddressEnc vl_PDUAddressEncoded; - - vl_PDUAddress.addressIndicator.pointCodeIndic:= - pl_ASPAddress.addressIndicator.pointCodeIndic; - - vl_PDUAddress.addressIndicator.ssnIndicator:= - pl_ASPAddress.addressIndicator.ssnIndicator; - - vl_PDUAddress.addressIndicator.globalTitleIndic:= - pl_ASPAddress.addressIndicator.globalTitleIndic; - - vl_PDUAddress.addressIndicator.routingIndicator:= - pl_ASPAddress.addressIndicator.routingIndicator; - - vl_PDUAddress.addressIndicator.reserved:='1'B; - - //----signPointCode handling - if ( ispresent( pl_ASPAddress.signPointCode )) { - vl_PDUAddress.signPointCode := pl_ASPAddress.signPointCode; - } else { - vl_PDUAddress.signPointCode := omit; - }; - - //----subsystemNumber handling - if ( ispresent( pl_ASPAddress.subsystemNumber ) ){ - vl_PDUAddress.subsystemNumber:= pl_ASPAddress.subsystemNumber; - } else { - vl_PDUAddress.subsystemNumber :=omit; - }; - - // --- globalTitle handling-- - if ( ispresent(pl_ASPAddress.globalTitle)) - {//startif1 - - var SCCP_ASPfield_GlobalTitle tmpGT ; - tmpGT := pl_ASPAddress.globalTitle; - - if (ischosen(tmpGT.gti0001)) - { - vl_PDUAddress.globalTitle.gti0001.natureOfAddress:=tmpGT.gti0001.natureOfAddress; - vl_PDUAddress.globalTitle.gti0001.oddeven:=tmpGT.gti0001.oddeven; - vl_PDUAddress.globalTitle.gti0001.globalTitleAddress:=tmpGT.gti0001.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0010)) - { - vl_PDUAddress.globalTitle.gti0010.translationType:=tmpGT.gti0010.translationType; - vl_PDUAddress.globalTitle.gti0010.globalTitleAddress:=tmpGT.gti0010.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0011)) - { - vl_PDUAddress.globalTitle.gti0011.translationType:=tmpGT.gti0011.translationType; - vl_PDUAddress.globalTitle.gti0011.encodingScheme:=tmpGT.gti0011.encodingScheme; - vl_PDUAddress.globalTitle.gti0011.numberingPlan:=tmpGT.gti0011.numberingPlan; - vl_PDUAddress.globalTitle.gti0011.globalTitleAddress:=tmpGT.gti0011.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0100)) - { - vl_PDUAddress.globalTitle.gti0100.translationType:=tmpGT.gti0100.translationType; - vl_PDUAddress.globalTitle.gti0100.encodingScheme:=tmpGT.gti0100.encodingScheme; - vl_PDUAddress.globalTitle.gti0100.numberingPlan:=tmpGT.gti0100.numberingPlan; - vl_PDUAddress.globalTitle.gti0100.natureOfAddress:=tmpGT.gti0100.natureOfAddress; - vl_PDUAddress.globalTitle.gti0100.reserved:='0'B; - vl_PDUAddress.globalTitle.gti0100.globalTitleAddress:=tmpGT.gti0100.globalTitleAddress; - }; - } - else - { - vl_PDUAddress.globalTitle := omit; - }; - - vl_PDUAddressEncoded.addr:= enc_PDU_SCCP_Address_ttc( vl_PDUAddress); - vl_PDUAddressEncoded.paramLength:= lengthof(vl_PDUAddressEncoded.addr); - - return vl_PDUAddressEncoded; - - } //ConvertASPAddressToEncodedAddress_ttc - - // mpt national: - - function ConvertASPAddressToEncodedAddress_mpt( in SCCP_PAR_Address pl_ASPAddress) - runs on SCCP_CT - return SCCP_param_CPartyAddressEnc - { - - var SCCP_param_CPartyAddress_mpt vl_PDUAddress; //structured fit to encoding - var SCCP_param_CPartyAddressEnc vl_PDUAddressEncoded; - - vl_PDUAddress.addressIndicator.pointCodeIndic:= - pl_ASPAddress.addressIndicator.pointCodeIndic; - - vl_PDUAddress.addressIndicator.ssnIndicator:= - pl_ASPAddress.addressIndicator.ssnIndicator; - - vl_PDUAddress.addressIndicator.globalTitleIndic:= - pl_ASPAddress.addressIndicator.globalTitleIndic; - - vl_PDUAddress.addressIndicator.routingIndicator:= - pl_ASPAddress.addressIndicator.routingIndicator; - - vl_PDUAddress.addressIndicator.reserved:='1'B; - - //----signPointCode handling - if ( ispresent( pl_ASPAddress.signPointCode )) { - vl_PDUAddress.signPointCode := pl_ASPAddress.signPointCode; - } else { - vl_PDUAddress.signPointCode := omit; - }; - - //----subsystemNumber handling - if ( ispresent( pl_ASPAddress.subsystemNumber ) ){ - vl_PDUAddress.subsystemNumber:= pl_ASPAddress.subsystemNumber; - } else { - vl_PDUAddress.subsystemNumber :=omit; - }; - - // --- globalTitle handling-- - if ( ispresent(pl_ASPAddress.globalTitle)) - {//startif1 - - var SCCP_ASPfield_GlobalTitle tmpGT ; - tmpGT := pl_ASPAddress.globalTitle; - - if (ischosen(tmpGT.gti0001)) - { - vl_PDUAddress.globalTitle.gti0001.natureOfAddress:=tmpGT.gti0001.natureOfAddress; - vl_PDUAddress.globalTitle.gti0001.oddeven:=tmpGT.gti0001.oddeven; - vl_PDUAddress.globalTitle.gti0001.globalTitleAddress:=tmpGT.gti0001.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0010)) - { - vl_PDUAddress.globalTitle.gti0010.translationType:=tmpGT.gti0010.translationType; - vl_PDUAddress.globalTitle.gti0010.globalTitleAddress:=tmpGT.gti0010.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0011)) - { - vl_PDUAddress.globalTitle.gti0011.translationType:=tmpGT.gti0011.translationType; - vl_PDUAddress.globalTitle.gti0011.encodingScheme:=tmpGT.gti0011.encodingScheme; - vl_PDUAddress.globalTitle.gti0011.numberingPlan:=tmpGT.gti0011.numberingPlan; - vl_PDUAddress.globalTitle.gti0011.globalTitleAddress:=tmpGT.gti0011.globalTitleAddress; - } - else if (ischosen(tmpGT.gti0100)) - { - vl_PDUAddress.globalTitle.gti0100.translationType:=tmpGT.gti0100.translationType; - vl_PDUAddress.globalTitle.gti0100.encodingScheme:=tmpGT.gti0100.encodingScheme; - vl_PDUAddress.globalTitle.gti0100.numberingPlan:=tmpGT.gti0100.numberingPlan; - vl_PDUAddress.globalTitle.gti0100.natureOfAddress:=tmpGT.gti0100.natureOfAddress; - vl_PDUAddress.globalTitle.gti0100.reserved:='0'B; - vl_PDUAddress.globalTitle.gti0100.globalTitleAddress:=tmpGT.gti0100.globalTitleAddress; - }; - } - else - { - vl_PDUAddress.globalTitle := omit; - }; - - vl_PDUAddressEncoded.addr:= enc_PDU_SCCP_Address_mpt( vl_PDUAddress); - vl_PDUAddressEncoded.paramLength:= lengthof(vl_PDUAddressEncoded.addr); - - return vl_PDUAddressEncoded; - - } //ConvertASPAddressToEncodedAddress_mpt - - //****************************************************************** - - //****************************************************************** - // CONVERSION / DECODING - //****************************************************************** - - //****************************************************************** - // function ConvertPDUEncodedAddressToASPAddress_itu - // converts Encoded PDU Address into sturctured ASP Address - // according to ITU - //****************************************************************** - function ConvertPDUEncodedAddressToASPAddress_itu( in SCCP_param_CPartyAddressEnc pl_PDUAddress) - runs on SCCP_CT return SCCP_PAR_Address - { - var SCCP_PAR_Address vl_ASPAddress; - var SCCP_ASPfield_GlobalTitle tmpGT; // the same for itu, ansi and ttc - var SCCP_param_CPartyAddress_itu vl_PDUAddress; - - //new code detail (ethbaat 2003.11.04: - // decoding from octetstring to structure "SCCP_param_CPartyAddress_itu": - vl_PDUAddress := dec_PDU_SCCP_Address_itu( pl_PDUAddress.addr ); - - vl_ASPAddress.addressIndicator.pointCodeIndic := - vl_PDUAddress.addressIndicator.pointCodeIndic; - - vl_ASPAddress.addressIndicator.ssnIndicator := - vl_PDUAddress.addressIndicator.ssnIndicator; - - vl_ASPAddress.addressIndicator.globalTitleIndic := - vl_PDUAddress.addressIndicator.globalTitleIndic; - - vl_ASPAddress.addressIndicator.routingIndicator := - vl_PDUAddress.addressIndicator.routingIndicator; - - if (ispresent ( vl_PDUAddress.signPointCode)) { - vl_ASPAddress.signPointCode:= substr(vl_PDUAddress.signPointCode,2,14); - } - else { - vl_ASPAddress.signPointCode := omit; //ethbaat 2003.11.04 - } - - if (ispresent (vl_PDUAddress.subsystemNumber )) { //always suggested ... - vl_ASPAddress.subsystemNumber:= vl_PDUAddress.subsystemNumber; - } - else { - vl_ASPAddress.subsystemNumber:=omit; //ethbaat 2003.11.04 - } - - if( ispresent( vl_PDUAddress.globalTitle ) ){ - if (ischosen (vl_PDUAddress.globalTitle.gti0001)) - { - tmpGT.gti0001.natureOfAddress:=vl_PDUAddress.globalTitle.gti0001.natureOfAddress; - tmpGT.gti0001.oddeven:=vl_PDUAddress.globalTitle.gti0001.oddeven; - tmpGT.gti0001.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0001.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0010)) - { - tmpGT.gti0010.translationType:=vl_PDUAddress.globalTitle.gti0010.translationType; - tmpGT.gti0010.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0010.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0011)) - { - tmpGT.gti0011.translationType :=vl_PDUAddress.globalTitle.gti0011.translationType; - tmpGT.gti0011.encodingScheme :=vl_PDUAddress.globalTitle.gti0011.encodingScheme; - tmpGT.gti0011.numberingPlan :=vl_PDUAddress.globalTitle.gti0011.numberingPlan; - tmpGT.gti0011.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0011.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0100)) - { - tmpGT.gti0100.translationType :=vl_PDUAddress.globalTitle.gti0100.translationType; - tmpGT.gti0100.encodingScheme :=vl_PDUAddress.globalTitle.gti0100.encodingScheme; - tmpGT.gti0100.numberingPlan :=vl_PDUAddress.globalTitle.gti0100.numberingPlan; - tmpGT.gti0100.natureOfAddress :=vl_PDUAddress.globalTitle.gti0100.natureOfAddress - //tmpGT.gti0100.reserved:='00'B; - tmpGT.gti0100.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0100.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - } - } - else - { - vl_ASPAddress.globalTitle:= omit; - }; - - return vl_ASPAddress; - } //ConvertPDUEncodedAddressToASPAddress_itu - - //****************************************************************** - // function ConvertPDUEncodedAddressToASPAddress_ansi - // converts Encoded PDU Address into sturctured ASP Address - // according to ANSI - //****************************************************************** - - function ConvertPDUEncodedAddressToASPAddress_ansi( in SCCP_param_CPartyAddressEnc pl_PDUAddress) - runs on SCCP_CT return SCCP_PAR_Address - { - var SCCP_PAR_Address vl_ASPAddress; - var SCCP_ASPfield_GlobalTitle tmpGT; // the same for itu, ansi and ttc - var SCCP_param_CPartyAddress_ansi vl_PDUAddress; - - //new code detail (ethbaat 2003.11.04: - // decoding from octetstring to structure "SCCP_param_CPartyAddress_itu": - vl_PDUAddress := dec_PDU_SCCP_Address_ansi( pl_PDUAddress.addr ); - - vl_ASPAddress.addressIndicator.pointCodeIndic := - vl_PDUAddress.addressIndicator.pointCodeIndic; - - vl_ASPAddress.addressIndicator.ssnIndicator := - vl_PDUAddress.addressIndicator.ssnIndicator; - - vl_ASPAddress.addressIndicator.globalTitleIndic := - vl_PDUAddress.addressIndicator.globalTitleIndic; - - vl_ASPAddress.addressIndicator.routingIndicator := - vl_PDUAddress.addressIndicator.routingIndicator; - - if (ispresent (vl_PDUAddress.signPointCode )) { - vl_ASPAddress.signPointCode:= vl_PDUAddress.signPointCode; - } - else { - //vl_ASPAddress.signPointCode.pointCode:='0000000000000000'B; //or empty??? ( 16len bitstring - vl_ASPAddress.signPointCode:= omit; //ethbaat 2003.11.11 - } - - if (ispresent (vl_PDUAddress.subsystemNumber)) { //always suggested ... - vl_ASPAddress.subsystemNumber:= vl_PDUAddress.subsystemNumber; - } - else { - vl_ASPAddress.subsystemNumber:=omit; //ethbaat 2003.11.04 - //vl_ASPAddress.subsystemNumber:= 0; - }; - - if( ispresent( vl_PDUAddress.globalTitle ) ){ - if (ischosen (vl_PDUAddress.globalTitle.gti0001)) - { - tmpGT.gti0011.translationType :=vl_PDUAddress.globalTitle.gti0001.translationType; - tmpGT.gti0011.encodingScheme :=vl_PDUAddress.globalTitle.gti0001.encodingScheme; - tmpGT.gti0011.numberingPlan :=vl_PDUAddress.globalTitle.gti0001.numberingPlan; - tmpGT.gti0011.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0001.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - } - if (ischosen (vl_PDUAddress.globalTitle.gti0010)) - { - tmpGT.gti0010.translationType:=vl_PDUAddress.globalTitle.gti0010.translationType; - tmpGT.gti0010.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0010.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - }; - } - else - { - vl_ASPAddress.globalTitle:= omit; - }; - - return vl_ASPAddress; - } //ConvertPDUEncodedAddressToASPAddress_ansi - - //****************************************************************** - // function ConvertPDUEncodedAddressToASPAddress_ttc - // converts Encoded PDU Address into sturctured ASP Address - // according to ttc - //****************************************************************** - function ConvertPDUEncodedAddressToASPAddress_ttc( in SCCP_param_CPartyAddressEnc pl_PDUAddress) - runs on SCCP_CT return SCCP_PAR_Address - { - var SCCP_PAR_Address vl_ASPAddress; - var SCCP_ASPfield_GlobalTitle tmpGT; // the same for itu, ansi and ttc - var SCCP_param_CPartyAddress_ttc vl_PDUAddress; - - //new code detail (ethbaat 2003.11.04: - // decoding from octetstring to structure "SCCP_param_CPartyAddress_itu": - vl_PDUAddress := dec_PDU_SCCP_Address_ttc( pl_PDUAddress.addr ); - - vl_ASPAddress.addressIndicator.pointCodeIndic := - vl_PDUAddress.addressIndicator.pointCodeIndic; - - vl_ASPAddress.addressIndicator.ssnIndicator := - vl_PDUAddress.addressIndicator.ssnIndicator; - - vl_ASPAddress.addressIndicator.globalTitleIndic := - vl_PDUAddress.addressIndicator.globalTitleIndic; - - vl_ASPAddress.addressIndicator.routingIndicator := - vl_PDUAddress.addressIndicator.routingIndicator; - - if (ispresent ( vl_PDUAddress.signPointCode)) { - vl_ASPAddress.signPointCode:= vl_PDUAddress.signPointCode; //old:substr(vl_PDUAddress.signPointCode,2,16); - } - else { - vl_ASPAddress.signPointCode := omit; //ethbaat 2003.11.04 - } - - if (ispresent (vl_PDUAddress.subsystemNumber )) { //always suggested ... - vl_ASPAddress.subsystemNumber:= vl_PDUAddress.subsystemNumber; - } - else { - vl_ASPAddress.subsystemNumber:=omit; //ethbaat 2003.11.04 - } - - if( ispresent( vl_PDUAddress.globalTitle)){ - if (ischosen (vl_PDUAddress.globalTitle.gti0001)) - { - tmpGT.gti0001.natureOfAddress:=vl_PDUAddress.globalTitle.gti0001.natureOfAddress; - tmpGT.gti0001.oddeven:=vl_PDUAddress.globalTitle.gti0001.oddeven; - tmpGT.gti0001.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0001.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0010)) - { - tmpGT.gti0010.translationType:=vl_PDUAddress.globalTitle.gti0010.translationType; - tmpGT.gti0010.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0010.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0011)) - { - tmpGT.gti0011.translationType :=vl_PDUAddress.globalTitle.gti0011.translationType; - tmpGT.gti0011.encodingScheme :=vl_PDUAddress.globalTitle.gti0011.encodingScheme; - tmpGT.gti0011.numberingPlan :=vl_PDUAddress.globalTitle.gti0011.numberingPlan; - tmpGT.gti0011.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0011.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0100)) - { - tmpGT.gti0100.translationType :=vl_PDUAddress.globalTitle.gti0100.translationType; - tmpGT.gti0100.encodingScheme :=vl_PDUAddress.globalTitle.gti0100.encodingScheme; - tmpGT.gti0100.numberingPlan :=vl_PDUAddress.globalTitle.gti0100.numberingPlan; - tmpGT.gti0100.natureOfAddress :=vl_PDUAddress.globalTitle.gti0100.natureOfAddress; - //tmpGT.gti0100.reserved:='00'B; - tmpGT.gti0100.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0100.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - }; - } - else - { - vl_ASPAddress.globalTitle:= omit; - }; - - return vl_ASPAddress; - } //ConvertPDUEncodedAddressToASPAddress_ttc - - //****************************************************************** - // function ConvertPDUEncodedAddressToASPAddress_mpt - // converts Encoded PDU Address into sturctured ASP Address - // according to mpt - //****************************************************************** - function ConvertPDUEncodedAddressToASPAddress_mpt( in SCCP_param_CPartyAddressEnc pl_PDUAddress) - runs on SCCP_CT return SCCP_PAR_Address - { - var SCCP_PAR_Address vl_ASPAddress; - var SCCP_ASPfield_GlobalTitle tmpGT; // the same for itu, ansi and ttc - var SCCP_param_CPartyAddress_mpt vl_PDUAddress; - - vl_PDUAddress := dec_PDU_SCCP_Address_mpt( pl_PDUAddress.addr ); - - vl_ASPAddress.addressIndicator.pointCodeIndic := - vl_PDUAddress.addressIndicator.pointCodeIndic; - - vl_ASPAddress.addressIndicator.ssnIndicator := - vl_PDUAddress.addressIndicator.ssnIndicator; - - vl_ASPAddress.addressIndicator.globalTitleIndic := - vl_PDUAddress.addressIndicator.globalTitleIndic; - - vl_ASPAddress.addressIndicator.routingIndicator := - vl_PDUAddress.addressIndicator.routingIndicator; - - if (ispresent ( vl_PDUAddress.signPointCode)) { - vl_ASPAddress.signPointCode:= vl_PDUAddress.signPointCode; - } - else { - vl_ASPAddress.signPointCode := omit; - } - - if (ispresent (vl_PDUAddress.subsystemNumber )) { //always suggested ... - vl_ASPAddress.subsystemNumber:= vl_PDUAddress.subsystemNumber; - } - else { - vl_ASPAddress.subsystemNumber:=omit; - } - - if( ispresent( vl_PDUAddress.globalTitle)){ - if (ischosen (vl_PDUAddress.globalTitle.gti0001)) - { - tmpGT.gti0001.natureOfAddress:=vl_PDUAddress.globalTitle.gti0001.natureOfAddress; - tmpGT.gti0001.oddeven:=vl_PDUAddress.globalTitle.gti0001.oddeven; - tmpGT.gti0001.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0001.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0010)) - { - tmpGT.gti0010.translationType:=vl_PDUAddress.globalTitle.gti0010.translationType; - tmpGT.gti0010.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0010.globalTitleAddress; - vl_ASPAddress.globalTitle:=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0011)) - { - tmpGT.gti0011.translationType :=vl_PDUAddress.globalTitle.gti0011.translationType; - tmpGT.gti0011.encodingScheme :=vl_PDUAddress.globalTitle.gti0011.encodingScheme; - tmpGT.gti0011.numberingPlan :=vl_PDUAddress.globalTitle.gti0011.numberingPlan; - tmpGT.gti0011.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0011.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - } - else if (ischosen (vl_PDUAddress.globalTitle.gti0100)) - { - tmpGT.gti0100.translationType :=vl_PDUAddress.globalTitle.gti0100.translationType; - tmpGT.gti0100.encodingScheme :=vl_PDUAddress.globalTitle.gti0100.encodingScheme; - tmpGT.gti0100.numberingPlan :=vl_PDUAddress.globalTitle.gti0100.numberingPlan; - tmpGT.gti0100.natureOfAddress :=vl_PDUAddress.globalTitle.gti0100.natureOfAddress; - //tmpGT.gti0100.reserved:='00'B; - tmpGT.gti0100.globalTitleAddress:=vl_PDUAddress.globalTitle.gti0100.globalTitleAddress; - vl_ASPAddress.globalTitle :=tmpGT; - }; - } - else - { - vl_ASPAddress.globalTitle:= omit; - }; - - return vl_ASPAddress; - } //ConvertPDUEncodedAddressToASPAddress_mpt - - //================================================================== - // MAIN CONVERSION FUNCTIONS: - //================================================================== - - //****************************************************************** - // function ConvertASPAddressToEncodedAddress - // converts ASP address structure to PDU address structure - // THIS IS THE MAIN ENCODE FUNCTION (coordinator) - //****************************************************************** - - function ConvertASPAddressToEncodedAddress( in SCCP_PAR_Address pl_ASPAddress) - runs on SCCP_CT return SCCP_param_CPartyAddressEnc - { - var SCCP_param_CPartyAddressEnc vl_PDUAddressEncoded; - if( ( v_SCCPServiceType == mtp3_itu) or - ( v_SCCPServiceType == mtp3b_itu)) - { - return ConvertASPAddressToEncodedAddress_itu( pl_ASPAddress ); - } - else if( (v_SCCPServiceType == mtp3_ansi) or - (v_SCCPServiceType == mtp3b_ansi)) - { - return ConvertASPAddressToEncodedAddress_ansi( pl_ASPAddress ); - } - else if((v_SCCPServiceType == mtp3_ttc) or - (v_SCCPServiceType == mtp3b_ttc)) - { - if( (v_SIO == '83'O) or (v_SIO == '43'O) or (v_SIO == 'C3'O) ) //ttc national - { - return ConvertASPAddressToEncodedAddress_ttc( pl_ASPAddress ); - } - else - { //international == itu - return ConvertASPAddressToEncodedAddress_itu( pl_ASPAddress ); - } - }//if1 - else if((v_SCCPServiceType == mtp3_mpt)) - { - if( v_NI == 2 ) //mpt national - { - return ConvertASPAddressToEncodedAddress_mpt( pl_ASPAddress ); - } - else - { //international == itu - return ConvertASPAddressToEncodedAddress_itu( pl_ASPAddress ); - } - }//if1 - else { - log("Error in ConvertASPAddressToEncodedAddress: Unknown SCCPServiceType"); - stop; - } - return vl_PDUAddressEncoded; // error!!! - } - - //****************************************************************** - // function ConvertPDUEncodedAddressToASPAddress - // converts Encoded PDU Address into sturctured ASP Address - // THIS IS THE MAIN DECODE FUNCTION (coordinator) - //****************************************************************** - - - function ConvertPDUEncodedAddressToASPAddress( in SCCP_param_CPartyAddressEnc pl_PDUAddress) - runs on SCCP_CT return SCCP_PAR_Address - { - var SCCP_PAR_Address vl_dummyretval; - - if( (v_SCCPServiceType == mtp3_itu) or - (v_SCCPServiceType == mtp3b_itu) ) - { - return ConvertPDUEncodedAddressToASPAddress_itu( pl_PDUAddress ); - } - else if( (v_SCCPServiceType == mtp3_ansi) or - (v_SCCPServiceType == mtp3b_ansi) ) - { - return ConvertPDUEncodedAddressToASPAddress_ansi( pl_PDUAddress ); - } - else if( (v_SCCPServiceType == mtp3_ttc) or - (v_SCCPServiceType == mtp3b_ttc)){ - if( (v_SIO == '83'O) or (v_SIO == '43'O) or (v_SIO == 'C3'O) ) - { - //ttc national - return ConvertPDUEncodedAddressToASPAddress_ttc( pl_PDUAddress ); - } - else { - return ConvertPDUEncodedAddressToASPAddress_itu( pl_PDUAddress ); - } - } - else if((v_SCCPServiceType == mtp3_mpt)) - { - if( v_NI == 2 ) //mpt national - { - return ConvertPDUEncodedAddressToASPAddress_mpt( pl_PDUAddress ); - } - else - { //international == itu - return ConvertPDUEncodedAddressToASPAddress_itu( pl_PDUAddress ); - } - } - else { - log("Error in function ConvertPDUEncodedAddressToASPAddress, Unknown SCCPSCCPType"); - stop; - } - return vl_dummyretval; - }//ConvertPDUEncodedAddressToASPAddress -/* -//************************************************************************* -//************************************************************************* -//EncDec ComponentBehaviour -//************************************************************************* -//************************************************************************* - - // TO DO:Desk check it! As I see, it's OK, but the meaning has been changed\ - // because structure of PDU_SCCP has been changed - - //************************************************************************* - function ScanRAWPorts() runs on SCCP_EncDec_CT - //************************************************************************* - { - //local declarations - var ASP_MTP3_TRANSFERind vl_ASP_MTP3_TRANSFERind; - var ASP_MTP3_TRANSFERreq vl_ASP_MTP3_TRANSFERreq; - var ASP_MTP3_TRANSFERreq_sccp vl_ASP_MTP3_TRANSFERreq_sccp - - var PDU_SCCP vl_PDU_SCCP; - var integer vl_msg_type; - - while (true) - { - alt - { - - //******************************************************************** - //message received from SCCP , containing a PDU to be encoded - //******************************************************************** - - []MTP3_SCCP_SP_PORT.receive( tr_ASP_MTP3_TRANSFERreq_sccp) -> value vl_ASP_MTP3_TRANSFERreq_sccp - { - var bitstring vl_sio_bit := oct2bit(vl_ASP_MTP3_TRANSFERreq_sccp.sio); - var MTP3_Field_sio vl_sio_struct; - vl_sio_struct.ni := substr(vl_sio_bit,0,2); - vl_sio_struct.prio := substr(vl_sio_bit,2,2); - vl_sio_struct.si := substr(vl_sio_bit,4,4); - - MTP3_PORT.send(t_ASP_MTP3_TRANSFERreq( - vl_sio_struct, - vl_ASP_MTP3_TRANSFERreq_sccp.opc, - vl_ASP_MTP3_TRANSFERreq_sccp.dpc, - vl_ASP_MTP3_TRANSFERreq_sccp.sls, - enc_PDU_SCCP(vl_ASP_MTP3_TRANSFERreq_sccp.data) - )); - } - - //******************************************************************** - //message received from MTP3 , containing an octetstring to be decoded: - //******************************************************************** - - []MTP3_PORT.receive(tr_ASP_MTP3_TRANSFERind) -> value vl_ASP_MTP3_TRANSFERind - {//startStatementBlock - if (vl_ASP_MTP3_TRANSFERind.sio.si != '0011'B) - { - log("The received message is not SCCP. Ignored."); - repeat; - } - vl_msg_type:= oct2int( vl_ASP_MTP3_TRANSFERind.data[0] ); - - select(vl_msg_type) - { - case (xudt) // '11'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - MTP3_SCCP_SP_PORT.send( vl_PDU_SCCP.extudata ); - } - case (udt) //'09'O - { - //decode octetstring - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_Unitdata( - vl_PDU_SCCP.unitdata.protClass, - vl_PDU_SCCP.unitdata.calledPAddress, - vl_PDU_SCCP.unitdata.callingPAddress, - vl_PDU_SCCP.unitdata.data)); - - }//endif - case (dt1)//'06'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_DataForm1( - vl_PDU_SCCP.dataform1.destLocRef, - vl_PDU_SCCP.dataform1.segmentingReassembl, - vl_PDU_SCCP.dataform1.data - )); - } - case (cr) //'01'O - {//startif - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - if (ispresent(vl_PDU_SCCP.connrequest.eop)) - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionRequest( - vl_PDU_SCCP.connrequest.sourceLocRef, - vl_PDU_SCCP.connrequest.protClass, - vl_PDU_SCCP.connrequest.calledPAddress, - vl_PDU_SCCP.connrequest.optionalPart.credit, - vl_PDU_SCCP.connrequest.optionalPart.callingPAddress, - vl_PDU_SCCP.connrequest.optionalPart.data, - vl_PDU_SCCP.connrequest.optionalPart.hopCounter, - vl_PDU_SCCP.connrequest.optionalPart.importance, - vl_PDU_SCCP.connrequest.eop - )); - } - else - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionRequest( - vl_PDU_SCCP.connrequest.sourceLocRef, - vl_PDU_SCCP.connrequest.protClass, - vl_PDU_SCCP.connrequest.calledPAddress, - vl_PDU_SCCP.connrequest.optionalPart.credit, - vl_PDU_SCCP.connrequest.optionalPart.callingPAddress, - vl_PDU_SCCP.connrequest.optionalPart.data, - vl_PDU_SCCP.connrequest.optionalPart.hopCounter, - vl_PDU_SCCP.connrequest.optionalPart.importance, - omit - )); - } - - } - case (cc) //'02'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - if (ispresent(vl_PDU_SCCP.connconfirm.eop)) - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionConfirm( - vl_PDU_SCCP.connconfirm.destLocRef, - vl_PDU_SCCP.connconfirm.sourceLocRef, - vl_PDU_SCCP.connconfirm.protClass, - vl_PDU_SCCP.connconfirm.optionalPart.credit, - vl_PDU_SCCP.connconfirm.optionalPart.calledPAddress, - vl_PDU_SCCP.connconfirm.optionalPart.data, - vl_PDU_SCCP.connconfirm.optionalPart.importance, - vl_PDU_SCCP.connconfirm.eop )); - } - else - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionConfirm( - vl_PDU_SCCP.connconfirm.destLocRef, - vl_PDU_SCCP.connconfirm.sourceLocRef, - vl_PDU_SCCP.connconfirm.protClass, - vl_PDU_SCCP.connconfirm.optionalPart.credit, - vl_PDU_SCCP.connconfirm.optionalPart.calledPAddress, - vl_PDU_SCCP.connconfirm.optionalPart.data, - vl_PDU_SCCP.connconfirm.optionalPart.importance, - omit)); - } - - } - case (udts) //'0A'O - {//startif - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_UnitdataService( - vl_PDU_SCCP.udataserv.returnCause, - vl_PDU_SCCP.udataserv.calledPAddress, - vl_PDU_SCCP.udataserv.callingPAddress, - vl_PDU_SCCP.udataserv.data)); - - }//endif - case (rlsd) //'04'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - if (ispresent(vl_PDU_SCCP.released.eop)) - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_Released( - vl_PDU_SCCP.released.destLocRef, - vl_PDU_SCCP.released.sourceLocRef, - vl_PDU_SCCP.released.releaseCause, - vl_PDU_SCCP.released.optionalPart.data, - vl_PDU_SCCP.released.optionalPart.importance, - vl_PDU_SCCP.released.eop - )); - } - else - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_Released( - vl_PDU_SCCP.released.destLocRef, - vl_PDU_SCCP.released.sourceLocRef, - vl_PDU_SCCP.released.releaseCause, - vl_PDU_SCCP.released.optionalPart.data, - vl_PDU_SCCP.released.optionalPart.importance, - omit - )); - } - - } - case (err)//'0F'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ProtDataUnitError( - vl_PDU_SCCP.pduerror.destLocRef, - vl_PDU_SCCP.pduerror.errorCause - )); - } - case (rlc)//'05'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ReleaseComplete( - vl_PDU_SCCP.relcomp.destLocRef, - vl_PDU_SCCP.relcomp.sourceLocRef - )); - } - case (it)//'10'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_InactivityTest( - vl_PDU_SCCP.inacttest.destLocRef, - vl_PDU_SCCP.inacttest.sourceLocRef, - vl_PDU_SCCP.inacttest.protClass, - vl_PDU_SCCP.inacttest.sequencingSegmenting, - vl_PDU_SCCP.inacttest.credit - )); - } - case (rsr)//'0D'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ResetRequest( - vl_PDU_SCCP.resetreq.destLocRef, - vl_PDU_SCCP.resetreq.sourceLocRef, - vl_PDU_SCCP.resetreq.resetCause - )); - } - case (rsc)//'0E'O - { - - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ResetConfirm( - vl_PDU_SCCP.resconf.destLocRef, - vl_PDU_SCCP.resconf.sourceLocRef - )); - }//endif - case (cref)//'03'O - { - vl_PDU_SCCP:=dec_PDU_SCCP(vl_ASP_MTP3_TRANSFERind.data); - - if (ispresent(vl_PDU_SCCP.connrefused.eop)) - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionRefused( - vl_PDU_SCCP.connrefused.destLocRef, - vl_PDU_SCCP.connrefused.refusalCause, - vl_PDU_SCCP.connrefused.optionalPart.calledPAddress, - vl_PDU_SCCP.connrefused.optionalPart.data, - vl_PDU_SCCP.connrefused.optionalPart.importance, - vl_PDU_SCCP.connrefused.eop - )); - } - else - { - MTP3_SCCP_SP_PORT.send( t_PDU_SCCP_ConnectionRefused( - vl_PDU_SCCP.connrefused.destLocRef, - vl_PDU_SCCP.connrefused.refusalCause, - vl_PDU_SCCP.connrefused.optionalPart.calledPAddress, - vl_PDU_SCCP.connrefused.optionalPart.data, - vl_PDU_SCCP.connrefused.optionalPart.importance, - omit - )); - } - } - case (xudts,ludt,ludts) - { - log ("Unsupported connectionless message ((-XUDT or)) XUDTS or LUDT or LUDTS - received and discarded"); - } - case (dt2,ak,ed,ea ) - { - log ("Unsupported connection-oriented message -DT2 or AK or ED or EA - received and discarded"); - } - case else { log ("Unrecognized message received and discarded"); } - } - }//endStatementBlock - - }//endalt - - }//endwhile - - }//endfunction -*/ - -//****************************************************************** -// -// working functions for ScanEvents -// -//****************************************************************** - -//****************************************************************** -// Part 1 : Receiving msg on port "MTP3_SCCP_PORT" -//****************************************************************** - - - //****************************************************************** - // processing_PDU_SCCP_Unitdata - //****************************************************************** - function processing_PDU_SCCP_Unitdata( in PDU_SCCP_Unitdata pl_PDU_SCCP_Unitdata) - runs on SCCP_CT - { - //var PDU_SCCP_Unitdata vl_PDU_SCCP_Unitdata; - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - - vl_PDU_SCCP.unitdata:= pl_PDU_SCCP_Unitdata; - - // it should be decoded to structure to read if it is a mgmt message or not - vl_N_UNITDATA_ind.calledAddress := - ConvertPDUEncodedAddressToASPAddress(pl_PDU_SCCP_Unitdata.calledPAddress); - - if ( ispresent(vl_N_UNITDATA_ind.calledAddress.subsystemNumber) and - vl_N_UNITDATA_ind.calledAddress.subsystemNumber != cg_SSN_sCCPmanagement) - //SCCP mgmt message - {//startif1 - - //no SCCP or node congestion assumed - //'route on SSN' assumed - - //subsystems are assumed equipped and available - //as the message is received from MTP3 , DPC is assumed to be matching the PC of the own node without - // any further checks - - //assemble ASP_SCCP_N_ - vl_N_UNITDATA_ind.callingAddress:= - ConvertPDUEncodedAddressToASPAddress(pl_PDU_SCCP_Unitdata.callingPAddress); - - // Wrong old: - //vl_N_UNITDATA_ind.sequenceControl:= - // '0000000'B&pl_PDU_SCCP_Unitdata.protClass.class[0]; // Q.713/3.6 0.bit=1=>seq msb??? - - vl_N_UNITDATA_ind.sequenceControl:= - '0000000'B&pl_PDU_SCCP_Unitdata.protClass.class[3]; - - if( pl_PDU_SCCP_Unitdata.protClass.messageHandling == '1000'B ) - { vl_N_UNITDATA_ind.returnOption := '00000001'B; } - else - { vl_N_UNITDATA_ind.returnOption := '00000000'B; } - - //connectionless-class 0 or 1 - //protocol class 0- SCCP_sequence_ctrl_off - //protocol class 1- SCCP_sequence_ctrl_on - // wrong: vl_N_UNITDATA_ind.returnOption :='0000000'B&pl_PDU_SCCP_Unitdata.protClass.messageHandling[3]; - - //only two values( '0000'B -no special options - //and '1000'B -return message on error) assumed - //octetstring vs. length+octetstring - vl_N_UNITDATA_ind.userData :=pl_PDU_SCCP_Unitdata.data.data; - vl_N_UNITDATA_ind.importance := omit; - SCCP_SP_PORT.send( vl_N_UNITDATA_ind ); - - - }//endif1 - else { //startelse1-SCCPmanagement message - - log ("SCCP management message received"); - var octetstring vl_data; - vl_data:=pl_PDU_SCCP_Unitdata.data.data; - - vl_PDU_SCCP.unitdata.messageType:=udt ; - vl_PDU_SCCP.unitdata.calledPAddress:=pl_PDU_SCCP_Unitdata.callingPAddress; - vl_PDU_SCCP.unitdata.callingPAddress:=pl_PDU_SCCP_Unitdata.calledPAddress; - - if ((vl_data[0]=='03'O) and //SST message - ((v_SSN==0) or (oct2int(vl_data[1])==v_SSN))) //right SSN - {//startif2 - - //send Unitdata with SSA - vl_PDU_SCCP.unitdata.data.data[0]:='01'O;//Change to SSA - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Unitdata_SSA - - }//endif2 - else if ((vl_data[0]=='02'O) and //SSP message - ((v_SSN==0) or (oct2int(vl_data[1])==v_SSN))) //right SSN - {//startif2 - - //send Unitdata with SST - vl_PDU_SCCP.unitdata.data.data[0]:='03'O;//Change to SST - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Unitdata_SST - - }//endif2 - else if ((vl_data[0]=='01'O) and //SSA message - ((v_SSN==0) or (oct2int(vl_data[1])==v_SSN))) //right SSN - {//startif2 - - //send Unitdata with SS - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP ));//send Unitdata_SSA - - }//endif2 - else - { - log("Unsupported (or containing inconsistent SSN)SCCP management message received and discarded") - } - }//endelse1 - return; - } // processing_PDU_SCCP_Unitdata() - - //****************************************************************** - // processing_PDU_SCCP_UnitdataService - //****************************************************************** - function processing_PDU_SCCP_UnitdataService( in PDU_SCCP_UnitdataService pl_PDU_SCCP_UnitdataService ) - runs on SCCP_CT - { - - var ASP_SCCP_N_NOTICE_ind vl_N_NOTICE_ind; - - //no SCCP or node congestion assumed - //'route on SSN' assumed - - //subsystems are assumed equipped and available - //as the message is received from MTP3 , DPC is assumed to be the PC of the own node without - // any further checks - - //assemble ASP_SCCP_N_ - - vl_N_NOTICE_ind.calledAddress :=ConvertPDUEncodedAddressToASPAddress(pl_PDU_SCCP_UnitdataService.calledPAddress ); - vl_N_NOTICE_ind.callingAddress:=ConvertPDUEncodedAddressToASPAddress(pl_PDU_SCCP_UnitdataService.callingPAddress); - //one to one mapping between reasonForReturn and returnCause -Q713 A5 - vl_N_NOTICE_ind.reasonForReturn := pl_PDU_SCCP_UnitdataService.returnCause ; - vl_N_NOTICE_ind.userData := pl_PDU_SCCP_UnitdataService.data.data ; - - SCCP_SP_PORT.send( t_ASP_N_NOTICE_ind( - vl_N_NOTICE_ind.calledAddress , - vl_N_NOTICE_ind.callingAddress, - vl_N_NOTICE_ind.reasonForReturn, - vl_N_NOTICE_ind.userData , - omit)); - - }// processing_PDU_SCCP_UnitdataService - - - //****************************************************************** - // processing_PDU_SCCP_ConnectionRequest - //****************************************************************** - function processing_PDU_SCCP_ConnectionRequest( in PDU_SCCP_ConnectionRequest pl_PDU_SCCP_ConnectionRequest) - runs on SCCP_CT - { - //no SCCP or node congestion assumed - //we assume that routing is done on SSN; we are in the dest.node - //SS is equipped and available - - //check if connection already established - //local reference not assigned yet; search has to be done based on remote reference, - // to prevent erroneous situations - //for all other MTP3_ASPs, search is done based on destLocRef, containing the local - //reference sent to the neighbouring node - - if (ConnectionAlreadyEstablished_remote(pl_PDU_SCCP_ConnectionRequest.sourceLocRef)) - {//startif3 - v_session :=Retrieve_session_remote(pl_PDU_SCCP_ConnectionRequest.sourceLocRef); - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - { log("CR received with reference for an already established conn. in state:idle");}//no source ref known - else if (ConnectionTable[v_session].state==active) - { log("CR received with reference for an already established conn. in state:active");} - else if (ConnectionTable[v_session].state==reset_bothway) - { log("CR received with reference for an already established conn. in state:reset_bothway");} - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("CR received with reference for an already established conn. in state:connection_pending_IC");} - //discard message, return - else if (ConnectionTable[v_session].state==disconnect_pending) - { log("CR received with reference for an already established conn. in state:disconnect_pending");}//discard message, return - else if (ConnectionTable[v_session].state==reset_IC) {//startif4 - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the dummy timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - - }//endif4 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif4 - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif4 - }//endif3 - else {//startelse - - //************************************************************************* - //connection not yet established - new v_session - //check if resources available - v_session:=CheckIdleIndividuals() - - //idle individual found , resources available, 0<=v_session<=15 - if ( v_session!=-1 ) - {//startif3 - // - ConnectionTable[v_session].localReference := GenerateLocalReference(); - ConnectionTable[v_session].remoteReference:= pl_PDU_SCCP_ConnectionRequest.sourceLocRef; - //local reference assigned here!!(see Fig. C.3/Q714) - - ConnectionTable[v_session].connectionId := GenerateConnectionId(); - - //once local reference is assigned , a session is considered established - //determine protocol class - //assemble ASP_SCCP_N_ - //start guard timer T_guard ;if no answer to ASP_SCCP_N_CONNECT_ind is received, timer will release - - var ASP_SCCP_N_CONNECT_ind vl_N_CONNECT_ind; - f_StartTimer(t_guard,v_session); - - vl_N_CONNECT_ind.calledAddress:=ConvertPDUEncodedAddressToASPAddress(pl_PDU_SCCP_ConnectionRequest.calledPAddress); - - if (ispresent(pl_PDU_SCCP_ConnectionRequest.optionalPart)) - { - if (ispresent(pl_PDU_SCCP_ConnectionRequest.optionalPart.callingPAddress)) - {//startif4 - - //temporary variable to avoid type conversion problems - var SCCP_param_CPartyAddressEnc vl_PDUAddress; - vl_PDUAddress.addr := pl_PDU_SCCP_ConnectionRequest.optionalPart.callingPAddress.addr; - vl_PDUAddress.paramLength := pl_PDU_SCCP_ConnectionRequest.optionalPart.callingPAddress.paramLength; - vl_N_CONNECT_ind.callingAddress:= ConvertPDUEncodedAddressToASPAddress(vl_PDUAddress); - - }//endif4 - else {vl_N_CONNECT_ind.callingAddress:=omit} - - if (ispresent(pl_PDU_SCCP_ConnectionRequest.optionalPart.data)) - {//startif4 - //temporary variable to avoid type conversion problems - var SCCP_param_Data_opt vl_SCCP_param_Data_opt; - - vl_SCCP_param_Data_opt:=pl_PDU_SCCP_ConnectionRequest.optionalPart.data; - vl_N_CONNECT_ind.userData:=vl_SCCP_param_Data_opt.data; - - }//endif4 - else {vl_N_CONNECT_ind.userData:=omit} - } - else - { - vl_N_CONNECT_ind.callingAddress:=omit; - vl_N_CONNECT_ind.userData:=omit; - } - - vl_N_CONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_CONNECT_ind( - vl_N_CONNECT_ind.calledAddress, - vl_N_CONNECT_ind.callingAddress, - omit, - vl_N_CONNECT_ind.userData, //ethcky - vl_N_CONNECT_ind.connectionId, - omit));//send ASP_SCCP_N_CONNECT_ind - - //restart send inactivity timer (baat) - f_StopTimer(ias,v_session);//to avoid warnings - f_StartTimer(ias,v_session); - ConnectionTable[v_session].state:=connection_pending_IC; - - }//endif3 - - //no idle individual found , no resources available , v_session=-1 - if (v_session==-1) - {//startif3 - - var PDU_SCCP vl_PDU_SCCP; - //assemble and route MTP3 ASP - vl_PDU_SCCP.connrefused.messageType:=cref; - vl_PDU_SCCP.connrefused.destLocRef:=pl_PDU_SCCP_ConnectionRequest.sourceLocRef; - vl_PDU_SCCP.connrefused.refusalCause:=1;//End user congestion - vl_PDU_SCCP.connrefused.pointer1:=0;// No options - vl_PDU_SCCP.connrefused.optionalPart:=omit; - vl_PDU_SCCP.connrefused.eop:=omit; - MTP3_SCCP_PORT.send ( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Connection refused, no idle individuals - //return to idle - }//endif3 - }//endelse - - }//processing_PDU_SCCP_ConnectionRequest - -//****************************************************************** -// processing_PDU_SCCP_ConnectionConfirm -//****************************************************************** - function processing_PDU_SCCP_ConnectionConfirm( in PDU_SCCP_ConnectionConfirm pl_PDU_SCCP_ConnectionConfirm) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_CONNECT_cfm vl_N_CONNECT_cfm; - - log(pl_PDU_SCCP_ConnectionConfirm); - - //Store data parameter - var template SCCP_PAR_UserData tl_data := omit; - if (ispresent(pl_PDU_SCCP_ConnectionConfirm.optionalPart)) - { - if (ispresent(pl_PDU_SCCP_ConnectionConfirm.optionalPart.data)) - { - tl_data := pl_PDU_SCCP_ConnectionConfirm.optionalPart.data.data; - } - } - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ConnectionConfirm.destLocRef)) - {//startif2 - v_session :=Retrieve_session(pl_PDU_SCCP_ConnectionConfirm.destLocRef); - //Action Table follows - if (ConnectionTable[v_session].state==idle) - { - //assemble and route MTP3_ASP - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - //then return to idle - } - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("CC received in state:connection_pending_IC"); }//discard message, return - else if (ConnectionTable[v_session].state==disconnect_pending) - { log("CC received in state:disconnect_pending"); }//discard message, return - else if (ConnectionTable[v_session].state==active) - { log("CC received in state:active"); }//do nothing, return - else if (ConnectionTable[v_session].state==reset_bothway) - { log("CC received in state:reset_bothway"); }// - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - //stop connection timer - f_StopTimer(conn_est,v_session); - //start inactivity timers - f_StartTimer(ias,v_session); - f_StartTimer(iar,v_session); - //assign protocol class:=2, associate remote reference - ConnectionTable[v_session].remoteReference:=pl_PDU_SCCP_ConnectionConfirm.sourceLocRef; - //assemble ASP_SCCP_N_ - vl_N_CONNECT_cfm.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_CONNECT_cfm( - omit, - omit, - tl_data, - vl_N_CONNECT_cfm.connectionId, - omit - ));//send ASP_SCCP_N_CONNECT_confirm - - ConnectionTable[v_session].state:=active; - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm)//connection is confirmed , - // but it has meanwhile been disconnected by the user - {//startif3 - //stop connection timer - f_StopTimer(conn_est,v_session); - //associate remote reference to connection - ConnectionTable[v_session].remoteReference:=pl_PDU_SCCP_ConnectionConfirm.sourceLocRef; - //assemble and route MTP3_ASP - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[v_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_DISC_normal; - vl_PDU_SCCP.released.pointer1:=0;//No options - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - //start release timer - f_StartTimer(rel,v_session); - ConnectionTable[v_session].state:=disconnect_pending; - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - - }//endif3 - else { log("CC received in an unexpected state"); } - }//endif2 - else {//startelse -Connection confirm received with destLocRef not in ConnectionTable - //send ERR - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=pl_PDU_SCCP_ConnectionConfirm.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - }//endelse - - }//processing_PDU_SCCP_ConnectionConfirm - - //****************************************************************** - // processing_PDU_SCCP_Released - //****************************************************************** - function processing_PDU_SCCP_Released( in PDU_SCCP_Released pl_PDU_SCCP_Released) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //Store data parameter - var template SCCP_PAR_UserData tl_data := omit; - if (ispresent(pl_PDU_SCCP_Released.optionalPart)) - { - if (ispresent(pl_PDU_SCCP_Released.optionalPart.data)) - { - tl_data := pl_PDU_SCCP_Released.optionalPart.data.data; - } - } - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_Released.destLocRef)) - {//startif1 - v_session :=Retrieve_session(pl_PDU_SCCP_Released.destLocRef); - //check if remote reference is correct -Table B.2 /Q.714 - if (ConnectionTable[v_session].remoteReference==pl_PDU_SCCP_Released.sourceLocRef) - {//startif2 - //Action Table follows - if (ConnectionTable[v_session].state==idle)//C.3- 1/6 ????nem valoszinu hogy ez eloallhat - {//startif3 - - //assemble and route MTP3_ASP - vl_PDU_SCCP.relcomp.messageType:=rlc; - vl_PDU_SCCP.relcomp.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.relcomp.sourceLocRef:=ConnectionTable[v_session].localReference; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Release complete - //then return to idle - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("RLSD received in state:connection_pending_IC");}//discard message, return - else if (ConnectionTable[v_session].state==disconnect_pending) - { log("RLSD received in state:disconnect_pending");}//discard message, return - else if (ConnectionTable[v_session].state==active) - {//startif3 - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_Mapping_RelCause_Orig[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.reason:=cg_Mapping_RelCause_Reason[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - tl_data, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //assemble and route MTP3_ASP - - vl_PDU_SCCP.relcomp.messageType :=rlc; - vl_PDU_SCCP.relcomp.destLocRef :=pl_PDU_SCCP_Released.sourceLocRef; - vl_PDU_SCCP.relcomp.sourceLocRef:=pl_PDU_SCCP_Released.destLocRef; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Release complete - - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - //assemble and route MTP3_ASP - vl_PDU_SCCP.relcomp.messageType :=rlc; - vl_PDU_SCCP.relcomp.destLocRef :=pl_PDU_SCCP_Released.sourceLocRef; - vl_PDU_SCCP.relcomp.sourceLocRef:=pl_PDU_SCCP_Released.destLocRef; - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Release complete - - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - - vl_N_DISCONNECT_ind.originator :=cg_Mapping_RelCause_Orig[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.reason :=cg_Mapping_RelCause_Reason[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - tl_data, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - //assemble and route MTP3_ASP - vl_PDU_SCCP.relcomp.messageType :=rlc; - vl_PDU_SCCP.relcomp.destLocRef :=pl_PDU_SCCP_Released.sourceLocRef; - vl_PDU_SCCP.relcomp.sourceLocRef :=pl_PDU_SCCP_Released.destLocRef; - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Release complete - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_Mapping_RelCause_Orig[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.reason :=cg_Mapping_RelCause_Reason[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - tl_data, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources, stop inactivity timers, change state to idle - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==reset_bothway) - {//startif3 - //assemble ASP_SCCP_N_ - - vl_N_DISCONNECT_ind.originator:=cg_Mapping_RelCause_Orig[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.reason :=cg_Mapping_RelCause_Reason[pl_PDU_SCCP_Released.releaseCause]; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - tl_data, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources, stop inactivity timers, change state to idle - ReleaseResources(v_session); - - }//endif3 - else { log("RLSD received in an unexpected state"); } - }//endif2 - else {//remote reference inconsistent, error action follows - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef :=pl_PDU_SCCP_Released.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause :=cg_Err_inconsistentSourceLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - }//endelse - }//endif1 - else {//Released(Y,X) received with destLocRef not in ConnectionTable - //send RLC(X,Y) - - vl_PDU_SCCP.relcomp.messageType :=rlc; - vl_PDU_SCCP.relcomp.destLocRef :=pl_PDU_SCCP_Released.sourceLocRef; - vl_PDU_SCCP.relcomp.sourceLocRef:=pl_PDU_SCCP_Released.destLocRef; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Release complete - - }//endelse - }//processing_PDU_SCCP_Released - - //****************************************************************** - // processing_PDU_SCCP_ProtDataUnitError - //****************************************************************** - function processing_PDU_SCCP_ProtDataUnitError( in PDU_SCCP_ProtDataUnitError pl_PDU_SCCP_ProtDataUnitError) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ProtDataUnitError.destLocRef)) - {//startif2 - v_session :=Retrieve_session(pl_PDU_SCCP_ProtDataUnitError.destLocRef); - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - {//startif3 - //assemble and route MTP3_ASP - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - //then return to idle - - }//endif3 - else if (ConnectionTable[v_session].state==disconnect_pending) - { log("PDUError received in state:disconnect_pending ");}//discard message, return - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("PDUError received in state:connection_pending_IC ");}//discard message, return - else if (ConnectionTable[v_session].state==reset_bothway) - {//startif3 - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator :=cg_Undefined; - vl_N_DISCONNECT_ind.reason :=pl_PDU_SCCP_ProtDataUnitError.errorCause;//? - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources, stop inactivity timers, change state to idle - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==active) - {//startif3 - if (pl_PDU_SCCP_ProtDataUnitError.errorCause!=cg_Err_serviceClassMismatch) - {//startif4 - - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_Undefined; - vl_N_DISCONNECT_ind.reason:=pl_PDU_SCCP_ProtDataUnitError.errorCause;//? - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - - }//endif4 - else {//startelse -Service class mismatch - - //assemble ASP_SCCP_N_ - - vl_N_DISCONNECT_ind.originator :=cg_Undefined; - vl_N_DISCONNECT_ind.reason :=pl_PDU_SCCP_ProtDataUnitError.errorCause; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //stop inactivity timers - f_StopTimer(iar,v_session); - f_StopTimer(ias,v_session); - //send Released - //assemble and route MTP3_ASP - - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[v_session].localReference; - vl_PDU_SCCP.released.releaseCause:=cg_Rel_inconsConnData; - vl_PDU_SCCP.released.pointer1:=0;//No optional part - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - //start release timer - f_StartTimer(rel,v_session); - //change state to diconnect pending - ConnectionTable[v_session].state:=disconnect_pending; - - }//endelse - - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - - vl_N_DISCONNECT_ind.originator :=cg_Undefined; - vl_N_DISCONNECT_ind.reason :=pl_PDU_SCCP_ProtDataUnitError.errorCause; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - - - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_Undefined; - vl_N_DISCONNECT_ind.reason:=pl_PDU_SCCP_ProtDataUnitError.errorCause; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - - //release resources, stop inactivity timers, change state to idle - ReleaseResources(v_session); - - }//endif3 - else { log("PDUError received in an unexpected state"); } - }//endif2 - else {}//PDU_Error received with destLocRef not in ConnectionTable - - }//processing_PDU_SCCP_ProtDataUnitError - - //****************************************************************** - // processing_PDU_SCCP_ReleaseComplete - //****************************************************************** - function processing_PDU_SCCP_ReleaseComplete(in PDU_SCCP_ReleaseComplete pl_PDU_SCCP_ReleaseComplete) - runs on SCCP_CT - { - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ReleaseComplete.destLocRef)) - {//startif1 - - v_session :=Retrieve_session(pl_PDU_SCCP_ReleaseComplete.destLocRef); - //check if remote reference is correct -Table B.2 /Q.714 - if (ConnectionTable[v_session].remoteReference==pl_PDU_SCCP_ReleaseComplete.sourceLocRef) - {//startif2 - - //Action Table follows - if (ConnectionTable[v_session].state==idle) - { log("RLC received in state: idle"); }//C.3 1/6-do nothing-return to idle state - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("RLC received in state: connection_pending_IC"); }//discard message, return - else if (ConnectionTable[v_session].state==active) - { log("RLC received in state: active"); }//do nothing, return - else if (ConnectionTable[v_session].state==reset_bothway) - { log("RLC received in state:reset_bothway "); }// - else if (ConnectionTable[v_session].state==disconnect_pending) - {//startif3 - log("RLC received in state:disconnect_pending "); - //log("release resources"); - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_NSU; - vl_N_DISCONNECT_ind.reason:=cg_DISC_normal; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - log("RLC received in state:wait_conn_confirm"); - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - log("RLC received in state:reset_IC"); - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - }//endif3 - else { log("RLC received in an unexpected state"); } - - }//endif2 - else {}//remote reference inconsistent, discard - - }//endif1 - else {}//Release complete received with destLocRef not in ConnectionTable - //discard - - }//processing_PDU_SCCP_ReleaseComplete - - //****************************************************************** - // processing_PDU_SCCP_InactivityTest - //****************************************************************** - function processing_PDU_SCCP_InactivityTest( in PDU_SCCP_InactivityTest pl_PDU_SCCP_InactivityTest) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_InactivityTest.destLocRef)) - {//startif1 - v_session :=Retrieve_session(pl_PDU_SCCP_InactivityTest.destLocRef); - - //check if remote reference is correct -Table B.2 /Q.714 - if (ConnectionTable[v_session].remoteReference==pl_PDU_SCCP_InactivityTest.sourceLocRef) - {//startif2 - - //Action Table follows - if (ConnectionTable[v_session].state==idle) - { log("IT received in state :idle "); }//C.3 1/6-do nothing-return to idle state - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("IT received in state : connection_pending_IC"); }//discard message, return - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator := cg_NSU; - vl_N_DISCONNECT_ind.reason := cg_DISC_normal; - vl_N_DISCONNECT_ind.connectionId := ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - - }//endif3 - else if (ConnectionTable[v_session].state==disconnect_pending) {} - else if (ConnectionTable[v_session].state==reset_bothway) {}// - else if (ConnectionTable[v_session].state==active) - {//startif3 - //source reference number assumed OK - //or: - //if (ConnectionTable[v_session].remoteReference!=pl_PDU_SCCP_InactivityTest.sourceLocRef) - // release connection - //protocol class assumed 2 - //restart receive inactivity timer - f_StopTimer(iar,v_session);//to avoid warnings - f_StartTimer(iar,v_session); - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - - }//endif3 - else { log("IT received in an unexpected state"); } - }//endif2 - else {//remote reference inconsistent, error action follows - //message received with remote reference not the same as stored - // two RLSD messages are sent back, one to the sored and to the received remote reference - //sent first RLSD-see B.2/Q.714 - - vl_PDU_SCCP.released.messageType :=rlsd; - vl_PDU_SCCP.released.destLocRef :=pl_PDU_SCCP_InactivityTest.sourceLocRef; - vl_PDU_SCCP.released.sourceLocRef:=pl_PDU_SCCP_InactivityTest.destLocRef; - vl_PDU_SCCP.released.releaseCause:=cg_Rel_inconsConnData; - vl_PDU_SCCP.released.pointer1:=0; - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - //sent second RLSD-see B.2/Q.714 - vl_PDU_SCCP.released.destLocRef :=ConnectionTable[v_session].remoteReference; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Released - - }//endelse - - }//endif1 - else {}//Inactivity test received with destLocRef not in ConnectionTable - //discard - - }//processing_PDU_SCCP_InactivityTest - - //****************************************************************** - // processing_PDU_SCCP_ResetRequest - //****************************************************************** - function processing_PDU_SCCP_ResetRequest ( in PDU_SCCP_ResetRequest pl_PDU_SCCP_ResetRequest) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ResetRequest.destLocRef)) - {//startif1 - v_session :=Retrieve_session(pl_PDU_SCCP_ResetRequest.destLocRef); - //check if remote reference is correct -Table B.2 /Q.714 - - if (ConnectionTable[v_session].remoteReference==pl_PDU_SCCP_ResetRequest.sourceLocRef) - {//startif2 - //Action Table follows - if (ConnectionTable[v_session].state==idle) - {//startif3 - - //assemble and route MTP3_ASP - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - //then return to idle - - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_IC) {}//discard message, return - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - vl_N_DISCONNECT_ind.originator:=cg_NSU; - vl_N_DISCONNECT_ind.reason:=cg_DISC_normal; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==disconnect_pending) {} - else if (ConnectionTable[v_session].state==reset_bothway) - {//startif3 - - //assemble ASP_SCCP_N_ - var ASP_SCCP_N_RESET_cfm vl_N_RESET_cfm; - vl_N_RESET_cfm.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_RESET_cfm(vl_N_RESET_cfm.connectionId));//send ASP_SCCP_N_RESET_cfm - - //stop reset timer - f_StopTimer(reset,v_session); - - //restart receive inactivity timer - f_StopTimer(iar,v_session);//to avoid warnings - f_StartTimer(iar,v_session); - //change state - ConnectionTable[v_session].state:=reset_IC; - }//endif3 - else if (ConnectionTable[v_session].state==active) - {//startif3 - //restart receive inactivity timer - f_StopTimer(iar,v_session);//to avoid warnings - f_StartTimer(iar,v_session); - //send ASP_SCCP_N_RESET_ind - //assemble ASP_SCCP_N_ - var ASP_SCCP_N_RESET_ind vl_N_RESET_ind; - vl_N_RESET_ind.originator:=cg_NSU; - vl_N_RESET_ind.reason:=cg_RESET_unspec; - vl_N_RESET_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_RESET_ind( - vl_N_RESET_ind.originator, - vl_N_RESET_ind.reason, - vl_N_RESET_ind.connectionId - ));//send ASP_SCCP_N_RESET_ind - - //reset variables - ConnectionTable[v_session].state:=reset_IC; - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif3 - else { log("RESREQ received in an unexpected state"); } - }//endif2 - else {//remote reference inconsistent, error action follows - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=pl_PDU_SCCP_ResetRequest.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_inconsistentSourceLRN; - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - - }//endelse - }//endif1 - else {//startelse-Reset request received with destLocRef not in ConnectionTable - - //send ERR - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=pl_PDU_SCCP_ResetRequest.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - - }//endelse - - }//processing_PDU_SCCP_ResetRequest - - //****************************************************************** - // processing_PDU_SCCP_ResetConfirm - //****************************************************************** - function processing_PDU_SCCP_ResetConfirm ( in PDU_SCCP_ResetConfirm pl_PDU_SCCP_ResetConfirm) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ResetConfirm.destLocRef)) - {//startif1 - v_session :=Retrieve_session(pl_PDU_SCCP_ResetConfirm.destLocRef); - - //check if remote reference is correct -Table B.2 /Q.714 - if (ConnectionTable[v_session].remoteReference==pl_PDU_SCCP_ResetConfirm.sourceLocRef) - {//startif2 - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - { log("RSC received in state:idle ");}//do nothing-return to idle state, no source ref known - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log("RSC received in state:connection_pending_IC ");}//discard message, return - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ASP - - vl_N_DISCONNECT_ind.originator:=cg_NSU; - vl_N_DISCONNECT_ind.reason:=cg_DISC_normal; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==disconnect_pending) - { log("RSC received in state:disconnect_pending");} - else if (ConnectionTable[v_session].state==reset_bothway) - {//startif3 - //assemble ASP_SCCP_N_ - var ASP_SCCP_N_RESET_cfm vl_N_RESET_cfm; - vl_N_RESET_cfm.connectionId:=ConnectionTable[v_session].connectionId; - SCCP_SP_PORT.send( t_ASP_N_RESET_cfm( - vl_N_RESET_cfm.connectionId - ));//send ASP_SCCP_N_RESET_cfm - - //stop reset timer - f_StopTimer(reset,v_session); - - //restart receive inactivity timer - f_StopTimer(iar,v_session);//to avoid warnings - f_StartTimer(iar,v_session); - //change state - ConnectionTable[v_session].state:=reset_IC; - }//endif3 - else if (ConnectionTable[v_session].state==active) - {//startif3 - //do nothing-return to idle state - log("RSC received in state:active"); - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif3 - else { log("ResConf received in an unexpected state"); } - }//endif2 - else {//remote reference inconsistent, error action follows - - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef :=pl_PDU_SCCP_ResetConfirm.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause :=cg_Err_inconsistentSourceLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - - }//endelse - }//endif1 - else {//startelse-Reset confirm received with destLocRef not in ConnectionTable - - //send ERR - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef :=pl_PDU_SCCP_ResetConfirm.sourceLocRef; - vl_PDU_SCCP.pduerror.errorCause :=cg_Err_unassignedDestinationLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - }//endelse - }//processing_PDU_SCCP_ResetConfirm - - //****************************************************************** - // processing_PDU_SCCP_ConnectionRefused - //****************************************************************** - function processing_PDU_SCCP_ConnectionRefused ( in PDU_SCCP_ConnectionRefused pl_PDU_SCCP_ConnectionRefused) - runs on SCCP_CT - { - //Store data parameter - var template SCCP_PAR_UserData tl_data := omit; - if (ispresent(pl_PDU_SCCP_ConnectionRefused.optionalPart)) - { - if (ispresent(pl_PDU_SCCP_ConnectionRefused.optionalPart.data)) - { - tl_data := pl_PDU_SCCP_ConnectionRefused.optionalPart.data.data; - } - } - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_ConnectionRefused.destLocRef)) - {//startif2 - v_session :=Retrieve_session(pl_PDU_SCCP_ConnectionRefused.destLocRef); - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - { log ("CREF received in state:idle");} //do nothing , return to idle, source ref unknown - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log ("CREF received in state:connection_pending_IC");} - else if (ConnectionTable[v_session].state==active) - { log ("CREF received in state:active");}//do nothing, return - else if (ConnectionTable[v_session].state==disconnect_pending) - { log ("CREF received in state:disconnect_pending");}//discard message, return - else if (ConnectionTable[v_session].state==reset_bothway) - { log ("CREF received in state:reset_bothway");}// - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - //stop connection timer - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_Mapping_RefCause_Orig[pl_PDU_SCCP_ConnectionRefused.refusalCause]; - vl_N_DISCONNECT_ind.reason:=cg_Mapping_RefCause_Reason[pl_PDU_SCCP_ConnectionRefused.refusalCause]; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - tl_data, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - - }//endif3 - else { log("CREF received in an unexpected state"); } - - }//endif2 - else { log("CREF received with destLocRef not in state table"); } - //Connection refused with destLocRef not in ConnectionTable - //discard - - } //processing_PDU_SCCP_ConnectionRefused - - //****************************************************************** - // processing_PDU_SCCP_DataForm1 - //****************************************************************** - function processing_PDU_SCCP_DataForm1 ( in PDU_SCCP_DataForm1 pl_PDU_SCCP_DataForm1) - runs on SCCP_CT - { - - //check if connection already established - if (ConnectionAlreadyEstablished(pl_PDU_SCCP_DataForm1.destLocRef)) - {//startif2 - v_session :=Retrieve_session(pl_PDU_SCCP_DataForm1.destLocRef); - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - {//startif3 - var PDU_SCCP vl_PDU_SCCP; - //assemble and route MTP3_ASP - vl_PDU_SCCP.pduerror.messageType:=err; - vl_PDU_SCCP.pduerror.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.pduerror.errorCause:=cg_Err_unassignedDestinationLRN; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //Send Error - - //then return to idle - }//endif3 - else if (ConnectionTable[v_session].state==connection_pending_IC) - { log ("DT1 received in state:connection_pending_IC");}//discard message, return - else if (ConnectionTable[v_session].state==disconnect_pending) - { log ("DT1 received in state:disconnect_pending");}//discard message, return - else if (ConnectionTable[v_session].state==reset_bothway) - { log ("DT1 received in state:reset_bothway");}// - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif3 - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - f_StopTimer(conn_est,v_session); - //assemble ASP_SCCP_N_ - vl_N_DISCONNECT_ind.originator:=cg_NSU; - vl_N_DISCONNECT_ind.reason:=cg_DISC_normal; - vl_N_DISCONNECT_ind.connectionId:=ConnectionTable[v_session].connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==wait_conn_confirm) - {//startif3 - - //stop connection timer - f_StopTimer(conn_est,v_session); - //release resources - ReleaseResources(v_session); - }//endif3 - else if (ConnectionTable[v_session].state==active) - {//startif3 - - var ASP_SCCP_N_DATA_ind vl_N_DATA_ind; - //restart receive inactivity timer - f_StopTimer(iar,v_session);//to avoid warnings - f_StartTimer(iar,v_session); - - buffered_sending_ASP_N_DATA_ind( pl_PDU_SCCP_DataForm1 ) - //MODIFY-> protocol class assumed 2; M bit assumed 0 (no segm/reassembly) - - }//endif3 - else if (ConnectionTable[v_session].state==reset_IC) - {//startif3 - - //discard received message - f_StartTimer(internal_reset,v_session,0.0);//the timer times out immediately - //state changed to active - ConnectionTable[v_session].state:=active; - - }//endif3 - else { log("DT1 received in an unexpected state"); } - - }//endif2 - else { log("DT1 received with destLocRef not in ConnectionTable"); } - //DT1 received with destLocRef not in ConnectionTable - //discard - - }//processing_PDU_SCCP_DataForm1 - - - //****************************************************************** - // processing_PDU_SCCP_ExtUnitdata - //****************************************************************** - function processing_PDU_SCCP_ExtUnitdata ( in PDU_SCCP_ExtUnitdata pl_PDU_SCCP_ExtUnitdata) - runs on SCCP_CT - { - var integer vl_index; - var OCT3 vl_segmRemoteRef; - if( ispresent( pl_PDU_SCCP_ExtUnitdata.optionalPart) and - ispresent( pl_PDU_SCCP_ExtUnitdata.optionalPart.segmentation) ) - { - vl_segmRemoteRef:= pl_PDU_SCCP_ExtUnitdata.optionalPart.segmentation.segmLocalRef; - if( pl_PDU_SCCP_ExtUnitdata.optionalPart.segmentation.firstSegm =='1'B ) - { - vl_index:=allocate_ClessRcvBuff( vl_segmRemoteRef); - } - else - { - vl_index:=get_ClessRcvBuffIndex( vl_segmRemoteRef ); - }; - if (vl_index == -1) - { - log("Buffer allocation failed, message ignored."); - return; - } - - store_segmData(vl_index,pl_PDU_SCCP_ExtUnitdata); - if( pl_PDU_SCCP_ExtUnitdata.optionalPart.segmentation.remainingSegment == '0000'B ) - { - send_ClessRcvBuff_in_N_UNITDATAind( vl_index,pl_PDU_SCCP_ExtUnitdata ); - reallocate_ClessRcvBuff( vl_index ); - } - } - else - { // not segmented case: - send_ClessData_in_N_UNITDATAind( pl_PDU_SCCP_ExtUnitdata ); - } - return; - - }//processing_PDU_SCCP_ExtUnitdata - -//****************************************************************** -// Part 2 Receiving msg on port "SCCP_PORT" (User Part) -//****************************************************************** - -//****************************************************************** -// processing_ASP_N_CONNECT_req -// / ASP_SCCP_N_CONNECT_req , originating node / -//****************************************************************** - function processing_ASP_N_CONNECT_req( in ASP_SCCP_N_CONNECT_req pl_N_CONNECT_req ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - - if (ConnectionAlreadyEstablished_connectionId(pl_N_CONNECT_req.connectionId)) - // assume connectionId present - {//startif1 - - //something went wrong, we already have a session with the same connection Id - v_session :=Retrieve_session_connectionId(pl_N_CONNECT_req.connectionId); - //table of error actions - - }//endif1 - else - {//startelse1 - - //check if resources available - v_session:=CheckIdleIndividuals(); - if (v_session==-1) //No idle individual found - {//startif2 - - //assemble ASP_SCCP_N_ASP - vl_N_DISCONNECT_ind.originator:=cg_NSP; // network service provider - vl_N_DISCONNECT_ind.reason:=cg_CREF_unspec_T; - vl_N_DISCONNECT_ind.connectionId:=pl_N_CONNECT_req.connectionId; - - SCCP_SP_PORT.send( t_ASP_N_DISCONNECT_ind( - vl_N_DISCONNECT_ind.originator, - omit, - vl_N_DISCONNECT_ind.reason, - omit, - vl_N_DISCONNECT_ind.connectionId, - omit - ));//send ASP_SCCP_N_DISCONNECT_ind - //return to idle - }//endif2 - - if ((v_session<=15)and (v_session>=0)) - {//startif2 - - //assign local reference, SLS:=tsp_MTP3_SLS, protocol class:=2 - ConnectionTable[v_session].localReference:=int2oct(pl_N_CONNECT_req.connectionId,3); - ConnectionTable[v_session].connectionId :=pl_N_CONNECT_req.connectionId; - - //to simplify generation of local reference, connectionID received from user is sent as such - //only local reference is assigned at this point - //send connection request, no coupling - //DPC :remote node - //no coupling reqrd. - //compatibility OK - //no restriction - //assemble and route MTP3_ASP - vl_PDU_SCCP.connrequest.messageType:=cr; - vl_PDU_SCCP.connrequest.sourceLocRef:=ConnectionTable[v_session].localReference; - // send local reference just assigned! - vl_PDU_SCCP.connrequest.protClass:={ - class:='0010'B, - messageHandling:='0000'B - };//class 2 - vl_PDU_SCCP.connrequest.pointer1:=2; - vl_PDU_SCCP.connrequest.calledPAddress:=ConvertASPAddressToEncodedAddress(pl_N_CONNECT_req.calledAddress); //new! - vl_PDU_SCCP.connrequest.pointer2:=vl_PDU_SCCP.connrequest.calledPAddress.paramLength+2; //automatic? - - if(ispresent(pl_N_CONNECT_req.callingAddress)) - {//startif3 - - //temporary variable to avoid type conversion problems - var SCCP_param_CPartyAddressEnc_opt vl_SCCP_param_CPartyAddressEnc_opt; - var SCCP_param_CPartyAddressEnc vl_SCCP_param_CPartyAddressEnc; - - vl_SCCP_param_CPartyAddressEnc:= - ConvertASPAddressToEncodedAddress(pl_N_CONNECT_req.callingAddress); - - vl_SCCP_param_CPartyAddressEnc_opt.paramName :=con_SCCP_cgPA; - vl_SCCP_param_CPartyAddressEnc_opt.paramLength:=vl_SCCP_param_CPartyAddressEnc.paramLength; - vl_SCCP_param_CPartyAddressEnc_opt.addr :=vl_SCCP_param_CPartyAddressEnc.addr; - - vl_PDU_SCCP.connrequest.optionalPart.callingPAddress:=vl_SCCP_param_CPartyAddressEnc_opt; - - }//endif3 - else { vl_PDU_SCCP.connrequest.optionalPart.callingPAddress:=omit } - - if(ispresent(pl_N_CONNECT_req.userData)) - {//startif3 - - //temporary variable to avoid type conversion problems - var SCCP_param_Data_opt vl_SCCP_param_Data_opt; - - vl_SCCP_param_Data_opt.paramName:=con_SCCP_data; - vl_SCCP_param_Data_opt.data:=pl_N_CONNECT_req.userData; - vl_SCCP_param_Data_opt.paramLength:=lengthof(vl_SCCP_param_Data_opt.data); - vl_PDU_SCCP.connrequest.optionalPart.data:=vl_SCCP_param_Data_opt; - - }//endif3 - else { vl_PDU_SCCP.connrequest.optionalPart.data:=omit} - - if(ispresent(pl_N_CONNECT_req.callingAddress) or - ispresent(pl_N_CONNECT_req.userData)) - { - vl_PDU_SCCP.connrequest.optionalPart.credit:=omit; - vl_PDU_SCCP.connrequest.optionalPart.hopCounter:=omit; - vl_PDU_SCCP.connrequest.optionalPart.importance:=omit; - - vl_PDU_SCCP.connrequest.eop:= {paramName:=con_SCCP_eop}; - } - else - { - vl_PDU_SCCP.connrequest.optionalPart := omit; - vl_PDU_SCCP.connrequest.eop := omit; - } - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Connection request - - //start connection timer - f_StartTimer(conn_est,v_session); - ConnectionTable[v_session].state:=connection_pending_OG; - }//endif2 - - }//endelse - - }//processing_ASP_N_CONNECT_req - //****************************************************************** - //End ASP_SCCP_N_CONNECT_req , originating node - //****************************************************************** - - //****************************************************************** - // processing_ASP_N_CONNECT_resp - //****************************************************************** - function processing_ASP_N_CONNECT_res( in ASP_SCCP_N_CONNECT_res pl_N_CONNECT_res ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - - // first see if session exists in the ConnectionTable - //search done based on Connection ID - - if (ConnectionAlreadyEstablished_connectionId(pl_N_CONNECT_res.connectionId)) - //assume connectionId present - {//startif1 - //retrieve session - v_session :=Retrieve_session_connectionId(pl_N_CONNECT_res.connectionId); - - //Action Table follows - - if (ConnectionTable[v_session].state==idle) - { - log("N_CONNECT_resp received in state:idle"); - //do nothing-return to idle state - } - else if (ConnectionTable[v_session].state==connection_pending_IC) - {//startif2 - - //assign SLS:=tsp_MTP3_SLS, assign protocol class=2 (CO, no flow ctrl.) - - //assemble and route MTP3_ASP - - vl_PDU_SCCP.connconfirm.messageType:=cc; - vl_PDU_SCCP.connconfirm.sourceLocRef:=ConnectionTable[v_session].localReference; - vl_PDU_SCCP.connconfirm.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.connconfirm.protClass.class:='0010'B;//protocol class 2 - vl_PDU_SCCP.connconfirm.protClass.messageHandling:='0000'B;//no special treatment - - if(ispresent(pl_N_CONNECT_res.respondingAddress)) - {//startif3 - - //temporary variable to avoid type conversion problems - var SCCP_param_CPartyAddressEnc_opt vl_SCCP_param_CPartyAddressEnc_opt; - var SCCP_param_CPartyAddressEnc vl_SCCP_param_CPartyAddressEnc; - - vl_SCCP_param_CPartyAddressEnc:= - ConvertASPAddressToEncodedAddress(pl_N_CONNECT_res.respondingAddress); - - vl_SCCP_param_CPartyAddressEnc_opt.paramName := con_SCCP_cdPA; // cgPA->cdPA ethbaat, 2003.11.06 - vl_SCCP_param_CPartyAddressEnc_opt.paramLength:= vl_SCCP_param_CPartyAddressEnc.paramLength; - vl_SCCP_param_CPartyAddressEnc_opt.addr := vl_SCCP_param_CPartyAddressEnc.addr; - - vl_PDU_SCCP.connconfirm.optionalPart.calledPAddress:= vl_SCCP_param_CPartyAddressEnc_opt; - }//endif3 - else { vl_PDU_SCCP.connconfirm.optionalPart.calledPAddress:=omit } - - if(ispresent(pl_N_CONNECT_res.userData)) - {//startif3 - - //temporary variable to avoid type conversion problems - var SCCP_param_Data_opt vl_SCCP_param_Data_opt; - - vl_SCCP_param_Data_opt.paramName:=con_SCCP_data; - vl_SCCP_param_Data_opt.data:=pl_N_CONNECT_res.userData; // corrected by ethbaat 2003.10.16 - vl_SCCP_param_Data_opt.paramLength:=lengthof(vl_SCCP_param_Data_opt.data); - - vl_PDU_SCCP.connconfirm.optionalPart.data:=vl_SCCP_param_Data_opt; - }//endif3 - else {vl_PDU_SCCP.connconfirm.optionalPart.data:=omit} - - if(ispresent(pl_N_CONNECT_res.respondingAddress) or - ispresent(pl_N_CONNECT_res.userData)) - { - vl_PDU_SCCP.connconfirm.pointer1:=1; - vl_PDU_SCCP.connconfirm.optionalPart.credit:=omit; - vl_PDU_SCCP.connconfirm.optionalPart.importance:=omit; - vl_PDU_SCCP.connconfirm.eop:= {paramName:=con_SCCP_eop}; - } - else - { - vl_PDU_SCCP.connconfirm.pointer1:=0; - vl_PDU_SCCP.connconfirm.optionalPart := omit; - vl_PDU_SCCP.connconfirm.eop:=omit; - } - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send connection confirm - - f_StartTimer(ias,v_session); // ??? check them!!! - f_StartTimer(iar,v_session); //start inactivity timers - ConnectionTable[v_session].state:=active;//state change - - }//endif2 - else { log("N_CONNECT_resp received in an unexpected state");} - - }//endif1 - - }//processing_ASP_N_CONNECT_resp - - //****************************************************************** - // processing_ASP_N_DATA_req - //****************************************************************** - - function processing_ASP_N_DATA_req( in ASP_SCCP_N_DATA_req pl_N_DATA_req ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - - // first see if session exists in the ConnectionTable - - if (ConnectionAlreadyEstablished_connectionId(pl_N_DATA_req.connectionId)) - //assume connectionId present - {//startif1 - - //retrieve v_session - v_session :=Retrieve_session_connectionId(pl_N_DATA_req.connectionId); - - //Action Table follows - if (ConnectionTable[v_session].state==idle) - { log ("N_DATA_req received in idle state");} - else if (ConnectionTable[v_session].state==reset_bothway) - { log ("N_DATA_req received in reset_bothway state");} - else if (ConnectionTable[v_session].state==active) - {//startif2 - sending_dataform1s_in_ASP_MTP_TRANSFERreqs(pl_N_DATA_req); - //no change of state, remains active - }//endif2 - else { log ("N_DATA_req received in an unexpected state"); } - - }//endif1 - else { log("N_DATA_req with Connection ID not in the state table -- illegal request"); } - - }//processing_ASP_N_DATA_req - - //****************************************************************** - // processing_ASP_N_DISCONNECT_req - //****************************************************************** - - function processing_ASP_N_DISCONNECT_req( in ASP_SCCP_N_DISCONNECT_req pl_N_DISCONNECT_req ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var boolean vl_opt_part_present:=false; - - // first see if session exists in the ConnectionTable - - if (ConnectionAlreadyEstablished_connectionId(pl_N_DISCONNECT_req.connectionId)) - //assume connectionId present - {//startif1 - - //retrieve v_session - v_session :=Retrieve_session_connectionId(pl_N_DISCONNECT_req.connectionId); - - //Action Table follows - if (ConnectionTable[v_session].state==idle) - { log ("N_DISCONNECT_req received in state:idle");} - else if (ConnectionTable[v_session].state==connection_pending_IC) - {//startif2 - - //assemble and route MTP3_ASP - vl_PDU_SCCP.connrefused.messageType:=cref; - vl_PDU_SCCP.connrefused.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.connrefused.refusalCause:=pl_N_DISCONNECT_req.reason; - vl_PDU_SCCP.connrefused.pointer1:=0; //No optional part - vl_PDU_SCCP.connrefused.optionalPart:=omit; - vl_PDU_SCCP.connrefused.eop:=omit; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send connection refused - - //release resources - ReleaseResources(v_session); - - }//endif2 - else if (ConnectionTable[v_session].state==active) - {//startif2 - - //stop inactivity timers - f_StopTimer(ias,v_session); - f_StopTimer(iar,v_session); - - //assemble and route MTP3_ASP - - vl_PDU_SCCP.released.messageType:=rlsd; - vl_PDU_SCCP.released.destLocRef:=ConnectionTable[v_session].remoteReference; - vl_PDU_SCCP.released.sourceLocRef:=ConnectionTable[v_session].localReference; - vl_PDU_SCCP.released.releaseCause:=pl_N_DISCONNECT_req.reason; - if(ispresent(pl_N_DISCONNECT_req.userData)){ - vl_opt_part_present:=true; - vl_PDU_SCCP.released.optionalPart.data.paramName:=con_SCCP_data; - vl_PDU_SCCP.released.optionalPart.data.paramLength:=lengthof(pl_N_DISCONNECT_req.userData); - vl_PDU_SCCP.released.optionalPart.data.data:=pl_N_DISCONNECT_req.userData; - } else { - vl_PDU_SCCP.released.optionalPart.data:=omit; - } - if(ispresent(pl_N_DISCONNECT_req.importance)){ - vl_opt_part_present:=true; - vl_PDU_SCCP.released.optionalPart.importance.paramName:=con_SCCP_imp - vl_PDU_SCCP.released.optionalPart.importance.paramLength:=1 - vl_PDU_SCCP.released.optionalPart.importance.importance:=pl_N_DISCONNECT_req.importance - vl_PDU_SCCP.released.optionalPart.importance.reserved:='00000'B - } else { - vl_PDU_SCCP.released.optionalPart.importance:=omit; - } - if(vl_opt_part_present){ - vl_PDU_SCCP.released.pointer1:=1; - vl_PDU_SCCP.released.eop.paramName:=con_SCCP_eop; - } else { - vl_PDU_SCCP.released.pointer1:=0;//No optional part - vl_PDU_SCCP.released.optionalPart:=omit; - vl_PDU_SCCP.released.eop:=omit; - } - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send released - - //start release timer - f_StartTimer(rel,v_session); - - ConnectionTable[v_session].state:=disconnect_pending; - - }//endif2 - else if (ConnectionTable[v_session].state==connection_pending_OG) - {//startif2 - - //change state to "wait connection confirm " - ConnectionTable[v_session].state:=wait_conn_confirm; - //and return - - }//endif2 - else { log("N_DISCONNECT_req received in an unexpected state");} - - }//endif1 - - }//processing_ASP_N_DISCONNECT_req - - - //****************************************************************** - // function SCCP_SPC_int2bit - working function to processing_ASP_N_UNITDATA_req - // v_sio is local to SCCP_CT - // SCCPServiceType - //****************************************************************** - function SCCP_SPC_int2bit( in integer pl_SPC, in SCCP_ServiceType pl_SCCP_ServiceType, in octetstring pl_SIO ) - return SCCP_ASPfield_SignallingPointCode - { - var SCCP_ASPfield_SignallingPointCode vl_SPC; //bitstring - vl_SPC :='0000000000000000'B; - - if( (pl_SCCP_ServiceType == mtp3_itu) or (pl_SCCP_ServiceType == mtp3b_itu)) - { - //vl_SPC := '00'B&int2bit( pl_SPC, 14); - vl_SPC := int2bit( pl_SPC, 14); - } - else if ( (pl_SCCP_ServiceType == mtp3_ansi) or (pl_SCCP_ServiceType == mtp3b_ansi) ) - { - vl_SPC := int2bit( pl_SPC, 24); - } - else if( (pl_SCCP_ServiceType == mtp3_ttc) or (pl_SCCP_ServiceType == mtp3b_ttc) ) - { - if( (pl_SIO == '83'O) or (pl_SIO == '43'O) or (pl_SIO == 'C3'O) ) //ttc national - { - vl_SPC := int2bit( pl_SPC, 16); - } - else if( pl_SIO == '03'O ) //ttc international - { - //vl_SPC := '00'B&int2bit( pl_SPC, 14); - vl_SPC := int2bit( pl_SPC, 14); - } - else { log ( "SIO setting error"); } - } - else if( pl_SCCP_ServiceType == mtp3_mpt ) - { - var integer vl_NI := oct2int(pl_SIO)/64; - if( vl_NI == 2 ) //mpt national - { - vl_SPC := int2bit( pl_SPC, 24); - } - else //mpt international - { - vl_SPC := int2bit( pl_SPC, 14); - } - } - else - { log ( "ServiceType setting error. Use values", - "mtp3_itu, mtp3b_itu, mtp3_ansi, mtp3b_ansi,", - " mtp3_ttc, mtp3b_ttc, mtp3_mpt or m3ua"); - } - - return vl_SPC; - - }// SCCP_SPC_int2bit - - //****************************************************************** - // sending_udt_in_ASP_MTP_TRANSFERreqs - // sends data in one step - //****************************************************************** - function sending_udt_in_ASP_MTP_TRANSFERreqs( in SCCP_param_ProtocolClass pl_protClass, - in SCCP_param_CPartyAddressEnc pl_CalledPAddress, - in SCCP_param_CPartyAddressEnc pl_CallingPAddress, - in SCCP_param_Data pl_data) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - vl_PDU_SCCP.unitdata.messageType := udt ; - vl_PDU_SCCP.unitdata.protClass := pl_protClass; - vl_PDU_SCCP.unitdata.calledPAddress := pl_CalledPAddress; - vl_PDU_SCCP.unitdata.callingPAddress:= pl_CallingPAddress; - vl_PDU_SCCP.unitdata.data := pl_data; - vl_PDU_SCCP.unitdata.pointer1 := 0; - vl_PDU_SCCP.unitdata.pointer2 := 0; - vl_PDU_SCCP.unitdata.pointer3 := 0; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP));//send Unitdata - return; - - }//sending_udt_in_ASP_MTP_TRANSFERreqs - - //****************************************************************** - // sending_xudt_in_ASP_MTP_TRANSFERreqs - // segmentates and sends data to the encoder - //****************************************************************** - function sending_xudt_in_ASP_MTP_TRANSFERreqs(in SCCP_param_ProtocolClass pl_protClass, - in SCCP_param_CPartyAddressEnc pl_CalledPAddress, - in SCCP_param_CPartyAddressEnc pl_CallingPAddress, - in SCCP_param_Data pl_data) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var integer vl_actdatalen; //without length of paramLength field - var integer vl_len; // remaining data length without length of paramLength field - var integer vl_from; - var integer vl_overhead; - var integer vl_maxdatalen; - var integer vl_numberofPDUs; // ... to be sent - - vl_PDU_SCCP.extudata.messageType := xudt ; //len:1 - vl_PDU_SCCP.extudata.hopCounter := 15; // check it in spec. //len:1 - vl_PDU_SCCP.extudata.protClass := pl_protClass; //len:1 - vl_PDU_SCCP.extudata.pointer1 := 0; //len:4 - vl_PDU_SCCP.extudata.pointer2 := 0; - vl_PDU_SCCP.extudata.pointer3 := 0; - vl_PDU_SCCP.extudata.pointer4 := 0; - vl_PDU_SCCP.extudata.calledPAddress := pl_CalledPAddress; - vl_PDU_SCCP.extudata.callingPAddress := pl_CallingPAddress; - - vl_overhead := 15 + - (vl_PDU_SCCP.extudata.calledPAddress.paramLength+1) + - (vl_PDU_SCCP.extudata.callingPAddress.paramLength+1); - - vl_len := pl_data.paramLength; - vl_maxdatalen := v_sccp_pdu_maxlen - vl_overhead -1; // -1:paramLength - vl_numberofPDUs := vl_len/vl_maxdatalen; // 0 if 1 PDU exists - - // init segmentation: - vl_PDU_SCCP.extudata.optionalPart.segmentation.segmLocalRef:= create_segmLocalRef(); - vl_PDU_SCCP.extudata.optionalPart.segmentation.firstSegm := '1'B; //'yes' - vl_PDU_SCCP.extudata.optionalPart.segmentation.paramName := con_SCCP_segm; - vl_PDU_SCCP.extudata.optionalPart.segmentation.paramLength := 4; - vl_PDU_SCCP.extudata.optionalPart.segmentation.remainingSegment := int2bit(vl_numberofPDUs,4); - vl_PDU_SCCP.extudata.optionalPart.segmentation.reserved := '00'B; - - if( pl_protClass.class == '0001'B ) - { vl_PDU_SCCP.extudata.optionalPart.segmentation.class := '1'B; } - else - { vl_PDU_SCCP.extudata.optionalPart.segmentation.class := '0'B; }; - - vl_PDU_SCCP.extudata.optionalPart.importance:= omit; //len:0 - vl_PDU_SCCP.extudata.eop.paramName := con_SCCP_eop; //len:0 - - vl_from := 0; - - while ( vl_len > 0 ) - { - vl_PDU_SCCP.extudata.optionalPart.segmentation.remainingSegment := int2bit(vl_numberofPDUs,4); - - if ( vl_len > vl_maxdatalen ) - { vl_actdatalen := vl_maxdatalen; } - else - { vl_actdatalen := vl_len; }; - - vl_PDU_SCCP.extudata.data.data := substr( pl_data.data, vl_from, vl_actdatalen ); - vl_PDU_SCCP.extudata.data.paramLength := vl_actdatalen; - - MTP3_SCCP_PORT.send( t_ASP_MTP3_TRANSFERreq_sccp - (v_SIO,v_own_SPC,v_remote_SPC,v_SLS,vl_PDU_SCCP)); //send PDU_SCCP_ExtUnitdata - - vl_PDU_SCCP.extudata.optionalPart.segmentation.firstSegm := '0'B; //'no' - - vl_numberofPDUs := vl_numberofPDUs -1 ; - vl_from := vl_from + vl_actdatalen; - vl_len := vl_len - vl_actdatalen; - }//while - - log("Last remaining Segment:", vl_PDU_SCCP.extudata.optionalPart.segmentation.remainingSegment ); - - // not necessary, remove it: - //reset_segmLocalRef(vl_PDU_SCCP.extudata.optionalPart.segmentation.segmLocalRef); - return; - }//sending_xudt_in_ASP_MTP_TRANSFERreqs - - //****************************************************************** - // processing_ASP_N_UNITDATA_req - //****************************************************************** - - function processing_ASP_N_UNITDATA_req( in ASP_SCCP_N_UNITDATA_req pl_N_UNITDATA_req ) - runs on SCCP_CT - { - var PDU_SCCP vl_PDU_SCCP; - var SCCP_param_ProtocolClass vl_protClass; - var SCCP_param_CPartyAddressEnc vl_CalledPAddress, vl_CallingPAddress; - var integer vl_overhead_length; - var SCCP_param_Data vl_data; - - // Protocol class mapping : - // old: vl_protClass.messageHandling:='0000'B;//no special options - - // 3.6/ Q.713: bit1-4 - if ( ispresent(pl_N_UNITDATA_req.sequenceControl) and - (substr(pl_N_UNITDATA_req.sequenceControl,7,1) == '1'B) ) //least significant bit! - { vl_protClass.class:='0001'B; } - else - { vl_protClass.class:='0000'B; } //changed to 0000 from 0001 ethbaat 2003-11-13 - - // 3.6/ Q.713: bit 5-8: - if ( ispresent(pl_N_UNITDATA_req.returnOption) and - (substr(pl_N_UNITDATA_req.returnOption,7,1) == '1'B) ) //least significant bit! - { vl_protClass.messageHandling:='1000'B} - else - { vl_protClass.messageHandling:='0000'B} - - //Called Address mapping: - if (pl_N_UNITDATA_req.calledAddress.addressIndicator.pointCodeIndic=='1'B) //DPC included - {//startif1 - - if (bit2int(pl_N_UNITDATA_req.calledAddress.signPointCode) == v_remote_SPC ) // remote SPC - {//startif2 - vl_CalledPAddress:= - ConvertASPAddressToEncodedAddress(pl_N_UNITDATA_req.calledAddress); - } - else - { - log("The remote SPC in ASP_SCCP_N_UNITDATA_req is not the same as the one you called by StartSCCP.ASP dropped") - return; - } - - }//endif1 - else - { //DPC not present, use values local for component - - var SCCP_PAR_Address vl_SCCP_PAR_Address; - vl_SCCP_PAR_Address := pl_N_UNITDATA_req.calledAddress; - - if ( v_remote_SPC > 0) - { - vl_SCCP_PAR_Address.addressIndicator.pointCodeIndic :='1'B; // 3.4.1/Q713. - vl_SCCP_PAR_Address.addressIndicator.routingIndicator := cg_route_on_SSN; - // 14,24 or 16 bits: - vl_SCCP_PAR_Address.signPointCode := SCCP_SPC_int2bit( v_remote_SPC, v_SCCPServiceType, v_SIO); - } - // vl_SCCP_PAR_Address.addressIndicator.ssnIndicator unchanged - // vl_SCCP_PAR_Address.addressIndicator.globalTitleIndic unchanged - // vl_SCCP_PAR_Address.subsystemNumber unchanged - // vl_SCCP_PAR_Address.globalTitle unchanged - - vl_CalledPAddress := - ConvertASPAddressToEncodedAddress(vl_SCCP_PAR_Address); - - }//endif1 - - vl_CallingPAddress := - ConvertASPAddressToEncodedAddress(pl_N_UNITDATA_req.callingAddress); - - vl_data.data := pl_N_UNITDATA_req.userData; - vl_data.paramLength:= lengthof( pl_N_UNITDATA_req.userData); - - // unitdata overhead calculation: - // msg type: 1; prot class: 2; 3 pointers: 3=> total:6 - vl_overhead_length := (vl_CalledPAddress.paramLength+1) + - (vl_CallingPAddress.paramLength +1)+ 6 ; - - if( (tsp_force_xudt==0) and - (vl_overhead_length + vl_data.paramLength + 1) <= v_sccp_pdu_maxlen ) - { - sending_udt_in_ASP_MTP_TRANSFERreqs(vl_protClass, - vl_CalledPAddress, - vl_CallingPAddress, - vl_data ); - } - else - { - sending_xudt_in_ASP_MTP_TRANSFERreqs(vl_protClass, - vl_CalledPAddress, - vl_CallingPAddress, - vl_data ); - } - - }//processing_ASP_N_UNITDATA_req - -//****************************************************************** -//****************************************************************** -function ScanEvents() runs on SCCP_CT -//****************************************************************** -//****************************************************************** -{//startfunction - - var PDU_SCCP vl_PDU_SCCP; - - var ASP_SCCP_N_CONNECT_req vl_N_CONNECT_req; - var ASP_SCCP_N_CONNECT_ind vl_N_CONNECT_ind; - var ASP_SCCP_N_CONNECT_res vl_N_CONNECT_res; - var ASP_SCCP_N_CONNECT_cfm vl_N_CONNECT_cfm; - var ASP_SCCP_N_DATA_req vl_N_DATA_req; - var ASP_SCCP_N_DATA_ind vl_N_DATA_ind; - var ASP_SCCP_N_DISCONNECT_req vl_N_DISCONNECT_req; - var ASP_SCCP_N_DISCONNECT_ind vl_N_DISCONNECT_ind; - var ASP_SCCP_N_UNITDATA_req vl_N_UNITDATA_req; - var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; - var ASP_SCCP_N_NOTICE_ind vl_N_NOTICE_ind; - - var integer i; - //this function scans the MTP3 and user port for incoming messages and checks timers for timeout - - f_initialize_timer_states(); - - while (true) - {//startwhile - - alt - //****************************************************************** - {//startalt0 - //****************************************************************** - [] MTP3_SCCP_PORT.receive(PDU_SCCP : ? ) -> value vl_PDU_SCCP - { - //****************************************************************** - //Unitdata received at destination node - //****************************************************************** - if (ischosen(vl_PDU_SCCP.unitdata)) - { - // vl_PDU_SCCP.unitdata.pointer1 :=3; - // vl_PDU_SCCP.unitdata.pointer2 :=0; - // vl_PDU_SCCP.unitdata.pointer3 :=0; - processing_PDU_SCCP_Unitdata( vl_PDU_SCCP.unitdata ); - } - - //****************************************************************** - //Data received at destination node - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.dataform1)) - { - // vl_PDU_SCCP.dataform1.pointer1 :=1; - processing_PDU_SCCP_DataForm1( vl_PDU_SCCP.dataform1 ); - } - - //****************************************************************** - //Extended unitdata received at destination node - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.extudata)) - { - // vl_PDU_SCCP.extudata.pointer1 :=0; - // vl_PDU_SCCP.extudata.pointer2 :=0; - // vl_PDU_SCCP.extudata.pointer3 :=0; - // vl_PDU_SCCP.extudata.pointer4 :=0; - processing_PDU_SCCP_ExtUnitdata( vl_PDU_SCCP.extudata ); - } - - //****************************************************************** - //Connection request received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.connrequest)) - { - // vl_PDU_SCCP.connrequest.pointer1 :=2; - // vl_PDU_SCCP.connrequest.pointer2 :=0; - processing_PDU_SCCP_ConnectionRequest( vl_PDU_SCCP.connrequest ); - } - - //****************************************************************** - //Connection confirm received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.connconfirm)) - { - // vl_PDU_SCCP.connconfirm.pointer1 :=1; - processing_PDU_SCCP_ConnectionConfirm( vl_PDU_SCCP.connconfirm ); - } - - //****************************************************************** - //Released received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.released)) - { - // vl_PDU_SCCP.released.pointer1 :=1; - processing_PDU_SCCP_Released( vl_PDU_SCCP.released ); - } - - //****************************************************************** - //Release complete received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.relcomp)) - { - processing_PDU_SCCP_ReleaseComplete( vl_PDU_SCCP.relcomp ); - } - - //****************************************************************** - //Unitdata service received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.udataserv)) - { - // vl_PDU_SCCP.udataserv.pointer1 :=3; - // vl_PDU_SCCP.udataserv.pointer2 :=0; - // vl_PDU_SCCP.udataserv.pointer3 :=0; - processing_PDU_SCCP_UnitdataService( vl_PDU_SCCP.udataserv ); - } - - //****************************************************************** - //PDU_Error received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.pduerror)) - { - processing_PDU_SCCP_ProtDataUnitError( vl_PDU_SCCP.pduerror ); - } - - //****************************************************************** - //Inactivity test received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.inacttest)) - { - processing_PDU_SCCP_InactivityTest( vl_PDU_SCCP.inacttest ); - } - - //****************************************************************** - //Reset request received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.resetreq)) - { - processing_PDU_SCCP_ResetRequest( vl_PDU_SCCP.resetreq ); - } - - //****************************************************************** - //Reset confirm received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.resconf)) - { - processing_PDU_SCCP_ResetConfirm( vl_PDU_SCCP.resconf ); - } - - //****************************************************************** - //Connection refused received - //****************************************************************** - else if (ischosen(vl_PDU_SCCP.connrefused)) - { - // vl_PDU_SCCP.connrefused.pointer1 :=1; - processing_PDU_SCCP_ConnectionRefused( vl_PDU_SCCP.connrefused ); - } - else - { log ("Unsupported message received and discarded"); } - } - - []MTP3_SCCP_PORT.receive - { log("Unsupported or unrecognized message discarded after reception") } - - //****************************************************************** - //****************************************************************** - ////start second alternative-message received on user port - //****************************************************************** - //****************************************************************** - - [] SCCP_SP_PORT.check - {//start second alternative - - alt { //startalt1-subalternatives vill follow - - //****************************************************************** - //N_DATA_req - //****************************************************************** - [] SCCP_SP_PORT.receive( tr_ASP_N_DATA_req)-> value vl_N_DATA_req - { processing_ASP_N_DATA_req(vl_N_DATA_req); } - - //****************************************************************** - //N_UNITDATA_req at originating node - //****************************************************************** - [] SCCP_SP_PORT.receive( tr_ASP_N_UNITDATA_req ) -> value vl_N_UNITDATA_req - { processing_ASP_N_UNITDATA_req(vl_N_UNITDATA_req); } - - //****************************************************************** - //N_CONNECT_req , originating node - //****************************************************************** - [] SCCP_SP_PORT.receive( tr_ASP_N_CONNECT_req) -> value vl_N_CONNECT_req - { processing_ASP_N_CONNECT_req( vl_N_CONNECT_req);} - - //****************************************************************** - //N_CONNECT_resp - //****************************************************************** - [] SCCP_SP_PORT.receive( tr_ASP_N_CONNECT_res)-> value vl_N_CONNECT_res - { processing_ASP_N_CONNECT_res(vl_N_CONNECT_res); } - - //****************************************************************** - //N_DISCONNECT_req - //****************************************************************** - [] SCCP_SP_PORT.receive( tr_ASP_N_DISCONNECT_req)-> value vl_N_DISCONNECT_req - { processing_ASP_N_DISCONNECT_req(vl_N_DISCONNECT_req); } - - //****************************************************************** - //N_RESET_resp //will not be received!! - //****************************************************************** - //[] SCCP_SP_PORT.receive( tr_ASP_N_RESET_resp)-> value vl_N_RESET_resp; - - //****************************************************************** - //N_RESET_req //will not be received!! - //****************************************************************** - //[] SCCP_SP_PORT.receive( tr_ASP_N_RESET_req)-> value vl_N_RESET_req; - - //****************************************************************** - //If none of the above , then message is removed from the top of the - //stack and discarded - //****************************************************************** - [] SCCP_SP_PORT.receive - { } - - }//endalt1 - - }//end second alternative-message received on user port - - //****************************************************************** - //connection timer expired - //****************************************************************** - [v_T_conn_est[0]] T_conn_est[0].timeout {Conn_Timer_Expired(0); - v_T_conn_est[0] := false;} - [v_T_conn_est[1]] T_conn_est[1].timeout {Conn_Timer_Expired(1); - v_T_conn_est[1] := false;} - [v_T_conn_est[2]] T_conn_est[2].timeout {Conn_Timer_Expired(2); - v_T_conn_est[2] := false;} - [v_T_conn_est[3]] T_conn_est[3].timeout {Conn_Timer_Expired(3); - v_T_conn_est[3] := false;} - [v_T_conn_est[4]] T_conn_est[4].timeout {Conn_Timer_Expired(4); - v_T_conn_est[4] := false;} - [v_T_conn_est[5]] T_conn_est[5].timeout {Conn_Timer_Expired(5); - v_T_conn_est[5] := false;} - [v_T_conn_est[6]] T_conn_est[6].timeout {Conn_Timer_Expired(6); - v_T_conn_est[6] := false;} - [v_T_conn_est[7]] T_conn_est[7].timeout {Conn_Timer_Expired(7); - v_T_conn_est[7] := false;} - [v_T_conn_est[8]] T_conn_est[8].timeout {Conn_Timer_Expired(8); - v_T_conn_est[8] := false;} - [v_T_conn_est[9]] T_conn_est[9].timeout {Conn_Timer_Expired(9); - v_T_conn_est[9] := false;} - [v_T_conn_est[10]] T_conn_est[10].timeout {Conn_Timer_Expired(10); - v_T_conn_est[10] := false;} - [v_T_conn_est[11]] T_conn_est[11].timeout {Conn_Timer_Expired(11); - v_T_conn_est[11] := false;} - [v_T_conn_est[12]] T_conn_est[12].timeout {Conn_Timer_Expired(12); - v_T_conn_est[12] := false;} - [v_T_conn_est[13]] T_conn_est[13].timeout {Conn_Timer_Expired(13); - v_T_conn_est[13] := false;} - [v_T_conn_est[14]] T_conn_est[14].timeout {Conn_Timer_Expired(14); - v_T_conn_est[14] := false;} - [v_T_conn_est[15]] T_conn_est[15].timeout {Conn_Timer_Expired(15); - v_T_conn_est[15] := false;} - - //****************************************************************** - //send inactivity timer expired - //****************************************************************** - - [v_T_ias[0]] T_ias[0].timeout {SendInactivity_Timer_Expired(0); - v_T_ias[0] := false;} - [v_T_ias[1]] T_ias[1].timeout {SendInactivity_Timer_Expired(1); - v_T_ias[1] := false;} - [v_T_ias[2]] T_ias[2].timeout {SendInactivity_Timer_Expired(2); - v_T_ias[2] := false;} - [v_T_ias[3]] T_ias[3].timeout {SendInactivity_Timer_Expired(3); - v_T_ias[3] := false;} - [v_T_ias[4]] T_ias[4].timeout {SendInactivity_Timer_Expired(4); - v_T_ias[4] := false;} - [v_T_ias[5]] T_ias[5].timeout {SendInactivity_Timer_Expired(5); - v_T_ias[5] := false;} - [v_T_ias[6]] T_ias[6].timeout {SendInactivity_Timer_Expired(6); - v_T_ias[6] := false;} - [v_T_ias[7]] T_ias[7].timeout {SendInactivity_Timer_Expired(7); - v_T_ias[7] := false;} - [v_T_ias[8]] T_ias[8].timeout {SendInactivity_Timer_Expired(8); - v_T_ias[8] := false;} - [v_T_ias[9]] T_ias[9].timeout {SendInactivity_Timer_Expired(9); - v_T_ias[i] := false;} - [v_T_ias[10]] T_ias[10].timeout {SendInactivity_Timer_Expired(10); - v_T_ias[10] := false;} - [v_T_ias[11]] T_ias[11].timeout {SendInactivity_Timer_Expired(11); - v_T_ias[11] := false;} - [v_T_ias[12]] T_ias[12].timeout {SendInactivity_Timer_Expired(12); - v_T_ias[12] := false;} - [v_T_ias[13]] T_ias[13].timeout {SendInactivity_Timer_Expired(13); - v_T_ias[13] := false;} - [v_T_ias[14]] T_ias[14].timeout {SendInactivity_Timer_Expired(14); - v_T_ias[14] := false;} - [v_T_ias[15]] T_ias[15].timeout {SendInactivity_Timer_Expired(15); - v_T_ias[15] := false;} - - //****************************************************************** - //receive inactivity timer expired - //****************************************************************** - [v_T_iar[0]] T_iar[0].timeout {ReceiveInactivity_Timer_Expired(0); - v_T_iar[0] := false;} - [v_T_iar[1]] T_iar[1].timeout {ReceiveInactivity_Timer_Expired(1); - v_T_iar[1] := false;} - [v_T_iar[2]] T_iar[2].timeout {ReceiveInactivity_Timer_Expired(2); - v_T_iar[2] := false;} - [v_T_iar[3]] T_iar[3].timeout {ReceiveInactivity_Timer_Expired(3); - v_T_iar[3] := false;} - [v_T_iar[4]] T_iar[4].timeout {ReceiveInactivity_Timer_Expired(4); - v_T_iar[4] := false;} - [v_T_iar[5]] T_iar[5].timeout {ReceiveInactivity_Timer_Expired(5); - v_T_iar[5] := false;} - [v_T_iar[6]] T_iar[6].timeout {ReceiveInactivity_Timer_Expired(6); - v_T_iar[6] := false;} - [v_T_iar[7]] T_iar[7].timeout {ReceiveInactivity_Timer_Expired(7); - v_T_iar[7] := false;} - [v_T_iar[8]] T_iar[8].timeout {ReceiveInactivity_Timer_Expired(8); - v_T_iar[8] := false;} - [v_T_iar[9]] T_iar[9].timeout {ReceiveInactivity_Timer_Expired(9); - v_T_iar[9] := false;} - [v_T_iar[10]] T_iar[10].timeout {ReceiveInactivity_Timer_Expired(10); - v_T_iar[10] := false;} - [v_T_iar[11]] T_iar[11].timeout {ReceiveInactivity_Timer_Expired(11); - v_T_iar[11] := false;} - [v_T_iar[12]] T_iar[12].timeout {ReceiveInactivity_Timer_Expired(12); - v_T_iar[12] := false;} - [v_T_iar[13]] T_iar[13].timeout {ReceiveInactivity_Timer_Expired(13); - v_T_iar[13] := false;} - [v_T_iar[14]] T_iar[14].timeout {ReceiveInactivity_Timer_Expired(14); - v_T_iar[14] := false;} - [v_T_iar[15]] T_iar[15].timeout {ReceiveInactivity_Timer_Expired(15); - v_T_iar[15] := false;} - - //****************************************************************** - //release timer expired - //****************************************************************** - [v_T_rel[0]] T_rel[0].timeout {Release_Timer_Expired(0); - v_T_rel[0] := false;} - [v_T_rel[1]] T_rel[1].timeout {Release_Timer_Expired(1); - v_T_rel[1] := false;} - [v_T_rel[2]] T_rel[2].timeout {Release_Timer_Expired(2); - v_T_rel[2] := false;} - [v_T_rel[3]] T_rel[3].timeout {Release_Timer_Expired(3); - v_T_rel[3] := false;} - [v_T_rel[4]] T_rel[4].timeout {Release_Timer_Expired(4); - v_T_rel[4] := false;} - [v_T_rel[5]] T_rel[5].timeout {Release_Timer_Expired(5); - v_T_rel[5] := false;} - [v_T_rel[6]] T_rel[6].timeout {Release_Timer_Expired(6); - v_T_rel[6] := false;} - [v_T_rel[7]] T_rel[7].timeout {Release_Timer_Expired(7); - v_T_rel[7] := false;} - [v_T_rel[8]] T_rel[8].timeout {Release_Timer_Expired(8); - v_T_rel[8] := false;} - [v_T_rel[9]] T_rel[9].timeout {Release_Timer_Expired(9); - v_T_rel[9] := false;} - [v_T_rel[10]] T_rel[10].timeout {Release_Timer_Expired(10); - v_T_rel[10] := false;} - [v_T_rel[11]] T_rel[11].timeout {Release_Timer_Expired(11); - v_T_rel[11] := false;} - [v_T_rel[12]] T_rel[12].timeout {Release_Timer_Expired(12); - v_T_rel[12] := false;} - [v_T_rel[13]] T_rel[13].timeout {Release_Timer_Expired(13); - v_T_rel[13] := false;} - [v_T_rel[14]] T_rel[14].timeout {Release_Timer_Expired(14); - v_T_rel[14] := false;} - [v_T_rel[15]] T_rel[15].timeout {Release_Timer_Expired(15); - v_T_rel[15] := false;} - - //****************************************************************** - //repeat release timer expired - //****************************************************************** - - [v_T_repeat_rel[0]] T_repeat_rel[0].timeout {RepeatRelease_Timer_Expired(0); - v_T_repeat_rel[0] := false;} - [v_T_repeat_rel[1]] T_repeat_rel[1].timeout {RepeatRelease_Timer_Expired(1); - v_T_repeat_rel[1] := false;} - [v_T_repeat_rel[2]] T_repeat_rel[2].timeout {RepeatRelease_Timer_Expired(2); - v_T_repeat_rel[2] := false;} - [v_T_repeat_rel[3]] T_repeat_rel[3].timeout {RepeatRelease_Timer_Expired(3); - v_T_repeat_rel[3] := false;} - [v_T_repeat_rel[4]] T_repeat_rel[4].timeout {RepeatRelease_Timer_Expired(4); - v_T_repeat_rel[4] := false;} - [v_T_repeat_rel[5]] T_repeat_rel[5].timeout {RepeatRelease_Timer_Expired(5); - v_T_repeat_rel[5] := false;} - [v_T_repeat_rel[6]] T_repeat_rel[6].timeout {RepeatRelease_Timer_Expired(6); - v_T_repeat_rel[6] := false;} - [v_T_repeat_rel[7]] T_repeat_rel[7].timeout {RepeatRelease_Timer_Expired(7); - v_T_repeat_rel[7] := false;} - [v_T_repeat_rel[8]] T_repeat_rel[8].timeout {RepeatRelease_Timer_Expired(8); - v_T_repeat_rel[8] := false;} - [v_T_repeat_rel[9]] T_repeat_rel[9].timeout {RepeatRelease_Timer_Expired(9); - v_T_repeat_rel[9] := false;} - [v_T_repeat_rel[10]] T_repeat_rel[10].timeout {RepeatRelease_Timer_Expired(10); - v_T_repeat_rel[10] := false;} - [v_T_repeat_rel[11]] T_repeat_rel[11].timeout {RepeatRelease_Timer_Expired(11); - v_T_repeat_rel[11] := false;} - [v_T_repeat_rel[12]] T_repeat_rel[12].timeout {RepeatRelease_Timer_Expired(12); - v_T_repeat_rel[12] := false;} - [v_T_repeat_rel[13]] T_repeat_rel[13].timeout {RepeatRelease_Timer_Expired(13); - v_T_repeat_rel[13] := false;} - [v_T_repeat_rel[14]] T_repeat_rel[14].timeout {RepeatRelease_Timer_Expired(14); - v_T_repeat_rel[14] := false;} - [v_T_repeat_rel[15]] T_repeat_rel[15].timeout {RepeatRelease_Timer_Expired(15); - v_T_repeat_rel[15] := false;} - - //****************************************************************** - //interval timer expired - //****************************************************************** - [v_T_int[0]] T_int[0].timeout {Interval_Timer_Expired(0); - v_T_int[0] := false;} - [v_T_int[1]] T_int[1].timeout {Interval_Timer_Expired(1); - v_T_int[1] := false;} - [v_T_int[2]] T_int[2].timeout {Interval_Timer_Expired(2); - v_T_int[2] := false;} - [v_T_int[3]] T_int[3].timeout {Interval_Timer_Expired(3); - v_T_int[3] := false;} - [v_T_int[4]] T_int[4].timeout {Interval_Timer_Expired(4); - v_T_int[4] := false;} - [v_T_int[5]] T_int[5].timeout {Interval_Timer_Expired(5); - v_T_int[5] := false;} - [v_T_int[6]] T_int[6].timeout {Interval_Timer_Expired(6); - v_T_int[6] := false;} - [v_T_int[7]] T_int[7].timeout {Interval_Timer_Expired(7); - v_T_int[7] := false;} - [v_T_int[8]] T_int[8].timeout {Interval_Timer_Expired(8); - v_T_int[8] := false;} - [v_T_int[9]] T_int[9].timeout {Interval_Timer_Expired(9); - v_T_int[9] := false;} - [v_T_int[10]] T_int[10].timeout {Interval_Timer_Expired(10); - v_T_int[10] := false;} - [v_T_int[11]] T_int[11].timeout {Interval_Timer_Expired(11); - v_T_int[11] := false;} - [v_T_int[12]] T_int[12].timeout {Interval_Timer_Expired(12); - v_T_int[12] := false;} - [v_T_int[13]] T_int[13].timeout {Interval_Timer_Expired(13); - v_T_int[13] := false;} - [v_T_int[14]] T_int[14].timeout {Interval_Timer_Expired(14); - v_T_int[14] := false;} - [v_T_int[15]] T_int[15].timeout {Interval_Timer_Expired(15); - v_T_int[15] := false;} - - //****************************************************************** - //reset timer expired - //****************************************************************** - [v_T_reset[0]] T_reset[0].timeout {Reset_Timer_Expired(0); - v_T_reset[0] := false;} - [v_T_reset[1]] T_reset[1].timeout {Reset_Timer_Expired(1); - v_T_reset[1] := false;} - [v_T_reset[2]] T_reset[2].timeout {Reset_Timer_Expired(2); - v_T_reset[2] := false;} - [v_T_reset[3]] T_reset[3].timeout {Reset_Timer_Expired(3); - v_T_reset[3] := false;} - [v_T_reset[4]] T_reset[4].timeout {Reset_Timer_Expired(4); - v_T_reset[4] := false;} - [v_T_reset[5]] T_reset[5].timeout {Reset_Timer_Expired(5); - v_T_reset[5] := false;} - [v_T_reset[6]] T_reset[6].timeout {Reset_Timer_Expired(6); - v_T_reset[6] := false;} - [v_T_reset[7]] T_reset[7].timeout {Reset_Timer_Expired(7); - v_T_reset[7] := false;} - [v_T_reset[8]] T_reset[8].timeout {Reset_Timer_Expired(8); - v_T_reset[8] := false;} - [v_T_reset[9]] T_reset[9].timeout {Reset_Timer_Expired(9); - v_T_reset[9] := false;} - [v_T_reset[10]] T_reset[10].timeout {Reset_Timer_Expired(10); - v_T_reset[10] := false;} - [v_T_reset[11]] T_reset[11].timeout {Reset_Timer_Expired(11); - v_T_reset[11] := false;} - [v_T_reset[12]] T_reset[12].timeout {Reset_Timer_Expired(12); - v_T_reset[12] := false;} - [v_T_reset[13]] T_reset[13].timeout {Reset_Timer_Expired(13); - v_T_reset[13] := false;} - [v_T_reset[14]] T_reset[14].timeout {Reset_Timer_Expired(14); - v_T_reset[14] := false;} - [v_T_reset[15]] T_reset[15].timeout {Reset_Timer_Expired(15); - v_T_reset[15] := false;} - - //****************************************************************** - //internal_reset timer expired-sending internal signals! - //****************************************************************** - [v_T_internal_reset[0]] T_internal_reset[0].timeout {InternalResetTimer_Expired(0); - v_T_internal_reset[0] := false;} - [v_T_internal_reset[1]] T_internal_reset[1].timeout {InternalResetTimer_Expired(1); - v_T_internal_reset[1] := false;} - [v_T_internal_reset[2]] T_internal_reset[2].timeout {InternalResetTimer_Expired(2); - v_T_internal_reset[2] := false;} - [v_T_internal_reset[3]] T_internal_reset[3].timeout {InternalResetTimer_Expired(3); - v_T_internal_reset[3] := false;} - [v_T_internal_reset[4]] T_internal_reset[4].timeout {InternalResetTimer_Expired(4); - v_T_internal_reset[4] := false;} - [v_T_internal_reset[5]] T_internal_reset[5].timeout {InternalResetTimer_Expired(5); - v_T_internal_reset[5] := false;} - [v_T_internal_reset[6]] T_internal_reset[6].timeout {InternalResetTimer_Expired(6); - v_T_internal_reset[6] := false;} - [v_T_internal_reset[7]] T_internal_reset[7].timeout {InternalResetTimer_Expired(7); - v_T_internal_reset[7] := false;} - [v_T_internal_reset[8]] T_internal_reset[8].timeout {InternalResetTimer_Expired(8); - v_T_internal_reset[8] := false;} - [v_T_internal_reset[9]] T_internal_reset[9].timeout {InternalResetTimer_Expired(9); - v_T_internal_reset[9] := false;} - [v_T_internal_reset[10]] T_internal_reset[10].timeout {InternalResetTimer_Expired(10); - v_T_internal_reset[10] := false;} - [v_T_internal_reset[11]] T_internal_reset[11].timeout {InternalResetTimer_Expired(11); - v_T_internal_reset[11] := false;} - [v_T_internal_reset[12]] T_internal_reset[12].timeout {InternalResetTimer_Expired(12); - v_T_internal_reset[12] := false;} - [v_T_internal_reset[13]] T_internal_reset[13].timeout {InternalResetTimer_Expired(13); - v_T_internal_reset[13] := false;} - [v_T_internal_reset[14]] T_internal_reset[14].timeout {InternalResetTimer_Expired(14); - v_T_internal_reset[14] := false;} - [v_T_internal_reset[15]] T_internal_reset[15].timeout {InternalResetTimer_Expired(15); - v_T_internal_reset[15] := false;} - - //****************************************************************** - //guard timer expired - no answer to ASP_SCCP_N_CONNECT_ind received - //****************************************************************** - [v_T_guard[0]] T_guard[0].timeout {GuardTimer_Expired(0); - v_T_guard[0] := false;} - [v_T_guard[1]] T_guard[1].timeout {GuardTimer_Expired(1); - v_T_guard[1] := false;} - [v_T_guard[2]] T_guard[2].timeout {GuardTimer_Expired(2); - v_T_guard[2] := false;} - [v_T_guard[3]] T_guard[3].timeout {GuardTimer_Expired(3); - v_T_guard[3] := false;} - [v_T_guard[4]] T_guard[4].timeout {GuardTimer_Expired(4); - v_T_guard[4] := false;} - [v_T_guard[5]] T_guard[5].timeout {GuardTimer_Expired(5); - v_T_guard[5] := false;} - [v_T_guard[6]] T_guard[6].timeout {GuardTimer_Expired(6); - v_T_guard[6] := false;} - [v_T_guard[7]] T_guard[7].timeout {GuardTimer_Expired(7); - v_T_guard[7] := false;} - [v_T_guard[8]] T_guard[8].timeout {GuardTimer_Expired(8); - v_T_guard[8] := false;} - [v_T_guard[9]] T_guard[9].timeout {GuardTimer_Expired(9); - v_T_guard[9] := false;} - [v_T_guard[10]] T_guard[10].timeout {GuardTimer_Expired(10); - v_T_guard[10] := false;} - [v_T_guard[11]] T_guard[11].timeout {GuardTimer_Expired(11); - v_T_guard[11] := false;} - [v_T_guard[12]] T_guard[12].timeout {GuardTimer_Expired(12); - v_T_guard[12] := false;} - [v_T_guard[13]] T_guard[13].timeout {GuardTimer_Expired(13); - v_T_guard[13] := false;} - [v_T_guard[14]] T_guard[14].timeout {GuardTimer_Expired(14); - v_T_guard[14] := false;} - [v_T_guard[15]] T_guard[15].timeout {GuardTimer_Expired(15); - v_T_guard[15] := false;} - - - }//endalt0 - - //****************************************************************** - }//endwhile - //****************************************************************** - -}//endfunction ScanEvents - -//****************************************************************** -}//endgroup SCCPFunctions -//****************************************************************** - -}//endmodule diff --git a/SCCP_CNL113341/src/SCCP_EncDec.cc b/SCCP_CNL113341/src/SCCP_EncDec.cc deleted file mode 100644 index f00b08a9b..000000000 --- a/SCCP_CNL113341/src/SCCP_EncDec.cc +++ /dev/null @@ -1,19 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2007 // -// // -// 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_EncDec.cc -// Rev: R6A05 -// Prodnr: CNL 113 341 -// Updated: 2007-09-17 -// Contact: http://ttcn.ericsson.se - -// Please note: Because the encoder/decoder functions are generated by the -// TITAN, the SCCP_EncDec.cc is kept only for compatibility issue and -// should be removed from the projects. diff --git a/SCCP_CNL113341/src/SCCP_Mapping.ttcnpp b/SCCP_CNL113341/src/SCCP_Mapping.ttcnpp deleted file mode 100644 index 0de496b72..000000000 --- a/SCCP_CNL113341/src/SCCP_Mapping.ttcnpp +++ /dev/null @@ -1,129 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2012 // -// // -// 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_Mapping.ttcnpp -// Description: SCCP <-> MTP3 dual faced port definition -// Rev: R6A05 -// Prodnr: CNL 113 341 -// Updated: 2012-11-05 -// Contact: http://ttcn.ericsson.se -module SCCP_Mapping -{ -import from MTP3asp_Types all; -import from MTP3asp_PortType all; -import from SCCP_Types all; -import from SCCPasp_Types all; - -// ************************************************************************* -// ************************************************************************* -//SCCP Component related declarations -// ************************************************************************* -// ************************************************************************* - -type integer UnhandledProtocol; - -// SCCPasp_SP_PT SCCP_SP_PORT -//+-----------------+-----------------+ -//| SCCP_CT / -//| / -//+-----------------+-----------------+ -//MTP3asp_SCCP_PT MTP3_SCCP_PORT -// | -// - -//#ifdef USE_MTP3_DISTRIBUTOR -//Version to internal port -type port MTP3asp_SCCP_PT message -{ - in PDU_SCCP; - out ASP_MTP3_TRANSFERreq_sccp; -} -with -{ extension - "internal user MTP3asp_PT - out(ASP_MTP3_TRANSFERreq_sccp - -> ASP_MTP3_TRANSFERreq: function(f_enc_SCCP_to_MTP)) - in( ASP_MTP3_TRANSFERind - -> PDU_SCCP: function(f_dec_MTP_to_SCCP), - - : discard; - ASP_MTP3_PAUSE -> -: discard; - ASP_MTP3_RESUME -> -: discard; - ASP_MTP3_STATUS -> -: discard) - " -} -/*#else -//Version to external port -type port MTP3asp_SCCP_PT message -{ - in PDU_SCCP; - in UnhandledProtocol; - out ASP_MTP3_TRANSFERreq_sccp; -} -with -{ extension - "user MTP3asp_PT - out(ASP_MTP3_TRANSFERreq_sccp - -> ASP_MTP3_TRANSFERreq: function(f_enc_SCCP_to_MTP)) - in( ASP_MTP3_TRANSFERind -> - PDU_SCCP: function(f_dec_MTP_to_SCCP), - UnhandledProtocol: function(f_dec_MTP_to_UnhandledProtocol); - ASP_MTP3_PAUSE -> -: discard; - ASP_MTP3_RESUME -> -: discard; - ASP_MTP3_STATUS -> -: discard) - " -} - -function f_dec_MTP_to_UnhandledProtocol(in ASP_MTP3_TRANSFERind pl_in, out UnhandledProtocol pl_out) return integer -{ - pl_out := 1; - return 0; -} with {extension "prototype(backtrack)" } - -#endif -*/ - -function f_enc_SCCP_to_MTP - (in ASP_MTP3_TRANSFERreq_sccp pl_in, - out ASP_MTP3_TRANSFERreq pl_out) return integer -{ - var bitstring vl_sio_bit := oct2bit(pl_in.sio); - var MTP3_Field_sio vl_sio_struct; - vl_sio_struct.ni := substr(vl_sio_bit,0,2); - vl_sio_struct.prio := substr(vl_sio_bit,2,2); - vl_sio_struct.si := substr(vl_sio_bit,4,4); - - pl_out := - { - sio := vl_sio_struct, - opc := pl_in.opc, - dpc := pl_in.dpc, - sls := pl_in.sls, - data:= enc_PDU_SCCP(pl_in.data) - } - return 0; -} with {extension "prototype(backtrack)" } - -function f_dec_MTP_to_SCCP - (in ASP_MTP3_TRANSFERind pl_in, - out PDU_SCCP pl_out) return integer -{ - if (pl_in.sio.si != '0011'B) - { - log("The received message is not SCCP. Ignored."); - return 1; - } - pl_out := dec_PDU_SCCP(pl_in.data); - - return 0; -} with {extension "prototype(backtrack)" } - - - -} diff --git a/SCCP_CNL113341/src/SCCP_Types.ttcn b/SCCP_CNL113341/src/SCCP_Types.ttcn deleted file mode 100644 index 168c317a9..000000000 --- a/SCCP_CNL113341/src/SCCP_Types.ttcn +++ /dev/null @@ -1,1553 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// // -// 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 diff --git a/SCCP_CNL113341/src/SCCPasp_Types.ttcn b/SCCP_CNL113341/src/SCCPasp_Types.ttcn deleted file mode 100644 index c66fa864a..000000000 --- a/SCCP_CNL113341/src/SCCPasp_Types.ttcn +++ /dev/null @@ -1,895 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// // -// Copyright Test Competence Center (TCC) ETH 2006 // -// // -// 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: SCCPasp_Types.ttcn -// Description: SS7 SCCP definitions according to specification -// ITU-T SS7 SCCP, ANSI ..., TCC ... -// References: ITU-T: Recommendation Q.711-Q.714, -// ANSI: T1.112-2001, -// TCC: JT-Q711 - JT-Q714 -// Rev: R6A05 -// Prodnr: CNL 113 341 -// Updated: 2006-01-26 -// Contact: http://ttcn.ericsson.se - -module SCCPasp_Types.objid -{ - itu_t(0) identified_organization (4) etsi(0) reserved(127) - etsi_identified_organization(0) ericsson(5) testing (0) - generic(0) sccp(1) v96(3) aspDefinitions(3) patchNo(0) -} - - -{//startmodule - -//content: the following groups: -//Field Definitions -//ASPParameters -//ASPTypes -//SCCPportTypeDefinitions -//ASPTemplateDefinitionsSending -//ASPTemplateDefinitionsReceiving -//ethlel: 08.23:"reserved" fields removed -//SCCP_PAR_Importance chenged from structure to integer -//type enumerated SCCP_ASPfield_ParameterName removed - -import from General_Types all; - -group FieldDefinitions -{ - -//-------------------------------------------------------------------------------- -// Field Address Indicator (Q713 $3.4.1) -//-------------------------------------------------------------------------------- -type record SCCP_ASPfield_AddressIndicator -{ - BIT1n pointCodeIndic, - BIT1n ssnIndicator, - BIT4n globalTitleIndic, - BIT1n routingIndicator -} - -//-------------------------------------------------------------------------------- -// Subfield Signalling Point Code (Q713 $3.4.2.1) -//-------------------------------------------------------------------------------- -// type changed from BIT14 to bitstring 2003.11.04 baat - - -// supposed that the leading zeros are filled in according to specification -// i.e.: length itu: 16 (2 reserved) -// ansi:24 -// ttc national: 16 (0 spare) - -type bitstring SCCP_ASPfield_SignallingPointCode; - -type union SCCP_ASPfield_GlobalTitle -{ - SCCP_ASPfield_GlobalTitle_NoA gti0001, - SCCP_ASPfield_GlobalTitle_TT gti0010, - SCCP_ASPfield_GlobalTitle_TT_NP_ES gti0011, //ansi: gti=0001 - SCCP_ASPfield_SignallingPointCode_TT_NP_ES_NoA gti0100 - //octetstring gti0000 -} - - -//-------------------------------------------------------------------------------- -// Subfield Global Title, Nature of address only - //ITU: GTI=0001, Q713 $3.4.2.3.1 - //ANSI: - - -type record SCCP_ASPfield_GlobalTitle_NoA -{ - BIT7n natureOfAddress, - BIT1n oddeven, - hexstring globalTitleAddress - //it should be hexstring, number digits are in BCD; - //hexstring already supported by ETH compiler -} - - -//-------------------------------------------------------------------------------- -// Global Title, Translation type only -// ITU: GTI=0010, Q713 $3.4.2.3.2 -// ANSI: GTI=0010, Figure6A/T1.112.3 - -type record SCCP_ASPfield_GlobalTitle_TT -{ - OCT1n translationType, - hexstring globalTitleAddress -} - - -//-------------------------------------------------------------------------------- -// 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_ASPfield_GlobalTitle_TT_NP_ES -{ - OCT1n translationType, - BIT4n encodingScheme, - BIT4n numberingPlan, - hexstring globalTitleAddress -} - - -//-------------------------------------------------------------------------------- -// Global Title, Translation type & numbering plan & encoding scheme & nature of -// address - // GTI=0100, Q713 $3.4.2.3.4) - // ANSI: - - -type record SCCP_ASPfield_SignallingPointCode_TT_NP_ES_NoA -{ - OCT1n translationType, - BIT4n encodingScheme, - BIT4n numberingPlan, - BIT7n natureOfAddress, - hexstring globalTitleAddress -} - - -}//endgroup FieldDefinitions - - - - -//******************************************************************************** -//******************************************************************************** -// ASPDefinitions -//******************************************************************************** -//******************************************************************************** -group ASPParameters -{ -//-------------------------------------------------------------------------------- -// Parameter Address -//-------------------------------------------------------------------------------- - -type record SCCP_PAR_Address -{ - SCCP_ASPfield_AddressIndicator addressIndicator, - SCCP_ASPfield_SignallingPointCode signPointCode optional, - integer subsystemNumber optional, - SCCP_ASPfield_GlobalTitle globalTitle optional -} - -//-------------------------------------------------------------------------------- -// Parameter Quality of service -//-------------------------------------------------------------------------------- - - -type integer SCCP_PAR_Quality_Of_Service; - -//-------------------------------------------------------------------------------- -// Parameter Expedited data selection -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_Expedited_Data_Sel; - -//-------------------------------------------------------------------------------- -// Parameter User Data -//-------------------------------------------------------------------------------- - -//type SCCP_param_Data SCCP_PAR_UserData; - -type octetstring SCCP_PAR_UserData; -// ETHLAFA: type changed from RANAP_PDU to octetstring 020718 - -//-------------------------------------------------------------------------------- -// Parameter Connection Id -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_Connection_Id; - - -//-------------------------------------------------------------------------------- -// Parameter Importance -//-------------------------------------------------------------------------------- - - -type integer SCCP_PAR_Importance; - - -//-------------------------------------------------------------------------------- -// Parameter Originator -//-------------------------------------------------------------------------------- -//Undefined (0) -//SCCP User (or Network Service User-NSU)(1) -//SCCP itself (or Network Service Provider-NSP)(2) - -type integer SCCP_PAR_Originator; - -//-------------------------------------------------------------------------------- -// Parameter Reason -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_Reason; - - -//-------------------------------------------------------------------------------- -// Parameter Return Option -//-------------------------------------------------------------------------------- -//bit0==0-return option off -//bit0==1-return option on - -type BIT8n SCCP_PAR_Return_Option; - - -//-------------------------------------------------------------------------------- -// Parameter Sequence Control -//-------------------------------------------------------------------------------- -//bit0 == 0-sequence control off -//bit0 == 1-sequence control on - -type BIT8n SCCP_PAR_Sequence_Control; - -//-------------------------------------------------------------------------------- -// Parameter Reason For Return -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_Reason_For_Return; - - -//-------------------------------------------------------------------------------- -// Parameter Subsystem Number -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_SubSystemNumber; - -//-------------------------------------------------------------------------------- -// Parameter User Status -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_User_Status; - -//-------------------------------------------------------------------------------- -// Parameter Subsystem Multiplicity Indicator -//-------------------------------------------------------------------------------- - -type integer SCCP_PAR_Subsystem_multi_indicator; - -}//endgroup ASPParameters - -group ASPTypes -{ -//******************************************************************************** -// Network service primitives Q711 -//******************************************************************************** - - -type record ASP_SCCP_N_CONNECT_req -{ - SCCP_PAR_Address calledAddress, - SCCP_PAR_Address callingAddress optional, - SCCP_PAR_Expedited_Data_Sel expeditedDataSel optional, - SCCP_PAR_Quality_Of_Service qualityOfService optional, - SCCP_PAR_UserData userData optional, - SCCP_PAR_Connection_Id connectionId optional, - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_CONNECT_ind -{ - SCCP_PAR_Address calledAddress, - SCCP_PAR_Address callingAddress optional, - SCCP_PAR_Quality_Of_Service qualityOfService optional, - SCCP_PAR_UserData userData optional, - SCCP_PAR_Connection_Id connectionId optional, - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_CONNECT_res -{ - SCCP_PAR_Address respondingAddress optional, - SCCP_PAR_Expedited_Data_Sel expeditedDataSel optional, - SCCP_PAR_Quality_Of_Service qualityOfService optional, - SCCP_PAR_UserData userData optional, - SCCP_PAR_Connection_Id connectionId optional, - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_CONNECT_cfm -{ - SCCP_PAR_Address respondingAddress optional, - SCCP_PAR_Quality_Of_Service qualityOfService optional, - SCCP_PAR_UserData userData optional, - SCCP_PAR_Connection_Id connectionId optional, - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_DATA_req -{ - SCCP_PAR_UserData userData , - SCCP_PAR_Connection_Id connectionId optional , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_DATA_ind -{ - SCCP_PAR_UserData userData , - SCCP_PAR_Connection_Id connectionId optional , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_DISCONNECT_req -{ - SCCP_PAR_Address respondingAddress optional, - SCCP_PAR_Reason reason , - SCCP_PAR_UserData userData optional , - SCCP_PAR_Connection_Id connectionId optional , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_DISCONNECT_ind -{ - SCCP_PAR_Originator originator , - SCCP_PAR_Address respondingAddress optional , - SCCP_PAR_Reason reason , - SCCP_PAR_UserData userData optional , - SCCP_PAR_Connection_Id connectionId optional , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_UNITDATA_req -{ - SCCP_PAR_Address calledAddress , - SCCP_PAR_Address callingAddress , - SCCP_PAR_Sequence_Control sequenceControl optional , - SCCP_PAR_Return_Option returnOption optional , - SCCP_PAR_UserData userData , - SCCP_PAR_Importance importance optional - } - - -type record ASP_SCCP_N_UNITDATA_ind -{ - SCCP_PAR_Address calledAddress , - SCCP_PAR_Address callingAddress , - SCCP_PAR_Sequence_Control sequenceControl optional , - SCCP_PAR_Return_Option returnOption optional , - SCCP_PAR_UserData userData , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_NOTICE_ind -{ - SCCP_PAR_Address calledAddress , - SCCP_PAR_Address callingAddress , - SCCP_PAR_Reason_For_Return reasonForReturn , - SCCP_PAR_UserData userData , - SCCP_PAR_Importance importance optional -} - - -type record ASP_SCCP_N_STATE_ind -{ - SCCP_PAR_SubSystemNumber affectedSubSystem , - SCCP_PAR_User_Status userStatus , - SCCP_PAR_Subsystem_multi_indicator subsystmultiindicator optional -} - - - -type record ASP_SCCP_N_RESET_req -{ - SCCP_PAR_Originator originator, //always NSU - SCCP_PAR_Reason reason, - SCCP_PAR_Connection_Id connectionId optional -} - -type record ASP_SCCP_N_RESET_ind -{ - SCCP_PAR_Originator originator, - SCCP_PAR_Reason reason, - SCCP_PAR_Connection_Id connectionId optional -} - -type record ASP_SCCP_N_RESET_resp -{ - SCCP_PAR_Connection_Id connectionId optional -} - -type record ASP_SCCP_N_RESET_cfm -{ - SCCP_PAR_Connection_Id connectionId optional -} - -} //endgroup ASPTypes - - -group SCCP_PT_Definitions -{ -//******************************************************************* -// Port Type definitions -//******************************************************************* - -type port SCCPasp_SP_PT -message -{ - - in ASP_SCCP_N_CONNECT_req, ASP_SCCP_N_CONNECT_res, - ASP_SCCP_N_DATA_req, ASP_SCCP_N_DISCONNECT_req, - ASP_SCCP_N_UNITDATA_req, ASP_SCCP_N_RESET_req, - ASP_SCCP_N_RESET_resp; - - out ASP_SCCP_N_CONNECT_ind, ASP_SCCP_N_CONNECT_cfm, - ASP_SCCP_N_DATA_ind, ASP_SCCP_N_DISCONNECT_ind, - ASP_SCCP_N_UNITDATA_ind, ASP_SCCP_N_NOTICE_ind, - ASP_SCCP_N_STATE_ind, ASP_SCCP_N_RESET_ind, - ASP_SCCP_N_RESET_cfm; - -} with {extension "internal"} - - -type port SCCPasp_PT -message -{ - - in ASP_SCCP_N_CONNECT_ind, ASP_SCCP_N_CONNECT_cfm, - ASP_SCCP_N_DATA_ind, ASP_SCCP_N_DISCONNECT_ind, - ASP_SCCP_N_UNITDATA_ind, ASP_SCCP_N_NOTICE_ind, - ASP_SCCP_N_STATE_ind, ASP_SCCP_N_RESET_ind, - ASP_SCCP_N_RESET_cfm; - - out ASP_SCCP_N_CONNECT_req, ASP_SCCP_N_CONNECT_res, - ASP_SCCP_N_DATA_req, ASP_SCCP_N_DISCONNECT_req, - ASP_SCCP_N_UNITDATA_req, ASP_SCCP_N_RESET_req, - ASP_SCCP_N_RESET_resp; - -} with {extension "internal"} - - - -}// endgroup SCCP_PT_Definitions - - - - -//******************************************************************************** -// ASP Template Definitions -//******************************************************************************** - - -group ASPTemplateDefinitionsSending - - -{ - - -template ASP_SCCP_N_CONNECT_req t_ASP_N_CONNECT_req -( - - template SCCP_PAR_Address PAR_CalledAddress , - template SCCP_PAR_Address PAR_CallingAddress , - template SCCP_PAR_Expedited_Data_Sel PAR_ExpDataSel , - template SCCP_PAR_Quality_Of_Service PAR_QoS , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - calledAddress :=PAR_CalledAddress , - callingAddress :=PAR_CallingAddress , - expeditedDataSel :=PAR_ExpDataSel , - qualityOfService :=PAR_QoS , - userData :=PAR_UserData , - connectionId :=PAR_ConnID , - importance :=PAR_Imp - } - - -template ASP_SCCP_N_CONNECT_ind t_ASP_N_CONNECT_ind -( - template SCCP_PAR_Address PAR_CalledAddress , - template SCCP_PAR_Address PAR_CallingAddress , - template SCCP_PAR_Quality_Of_Service PAR_QoS , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - calledAddress :=PAR_CalledAddress , - callingAddress :=PAR_CallingAddress, - qualityOfService :=PAR_QoS , - userData :=PAR_UserData , - connectionId :=PAR_ConnID , - importance := PAR_Imp - } - - -template ASP_SCCP_N_CONNECT_res t_ASP_N_CONNECT_res -( - - template SCCP_PAR_Address PAR_RespondingAddress , - template SCCP_PAR_Expedited_Data_Sel PAR_ExpDataSel , - template SCCP_PAR_Quality_Of_Service PAR_QoS , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp - -):= - { - respondingAddress:= PAR_RespondingAddress , - expeditedDataSel := PAR_ExpDataSel , - qualityOfService := PAR_QoS , - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp - } - - -template ASP_SCCP_N_CONNECT_cfm t_ASP_N_CONNECT_cfm -( - template SCCP_PAR_Address PAR_RespondingAddress , - template SCCP_PAR_Quality_Of_Service PAR_QoS , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - respondingAddress:= PAR_RespondingAddress , - qualityOfService := PAR_QoS , - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp - } - - -template ASP_SCCP_N_DATA_req t_ASP_N_DATA_req -( - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp - } - - -template ASP_SCCP_N_DATA_ind t_ASP_N_DATA_ind -( - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp - } - - -template ASP_SCCP_N_DISCONNECT_req t_ASP_N_DISCONNECT_req -( - template SCCP_PAR_Address PAR_RespondingAddress , - template SCCP_PAR_Reason PAR_Reason , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp -):= - { - respondingAddress:= PAR_RespondingAddress , - reason := PAR_Reason , - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp -} - - -template ASP_SCCP_N_DISCONNECT_ind t_ASP_N_DISCONNECT_ind -( - template SCCP_PAR_Originator PAR_Originator , - template SCCP_PAR_Address PAR_RespondingAddress , - template SCCP_PAR_Reason PAR_Reason , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Connection_Id PAR_ConnID , - template SCCP_PAR_Importance PAR_Imp - -):= - { - originator :=PAR_Originator , - respondingAddress:= PAR_RespondingAddress , - reason := PAR_Reason , - userData := PAR_UserData , - connectionId := PAR_ConnID , - importance := PAR_Imp - } - - - - -template ASP_SCCP_N_UNITDATA_req t_ASP_N_UNITDATA_req -( - -template SCCP_PAR_Address PAR_CalledAddress , -template SCCP_PAR_Address PAR_CallingAddress , -template SCCP_PAR_Sequence_Control PAR_SeqCtrl , -template SCCP_PAR_Return_Option PAR_RetOpt , -template SCCP_PAR_UserData PAR_UserData , -template SCCP_PAR_Importance PAR_Imp -):= - { - calledAddress :=PAR_CalledAddress , - callingAddress :=PAR_CallingAddress, - sequenceControl :=PAR_SeqCtrl , - returnOption :=PAR_RetOpt , - userData :=PAR_UserData , - importance :=PAR_Imp - } - - -template ASP_SCCP_N_UNITDATA_ind t_ASP_N_UNITDATA_ind -( - template SCCP_PAR_Address PAR_CalledAddress , - template SCCP_PAR_Address PAR_CallingAddress , - template SCCP_PAR_Sequence_Control PAR_SeqCtrl , - template SCCP_PAR_Return_Option PAR_RetOpt , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Importance PAR_Imp -):= - { - calledAddress :=PAR_CalledAddress , - callingAddress :=PAR_CallingAddress, - sequenceControl :=PAR_SeqCtrl , - returnOption :=PAR_RetOpt , - userData :=PAR_UserData , - importance :=PAR_Imp - } - - -template ASP_SCCP_N_NOTICE_ind t_ASP_N_NOTICE_ind -( - template SCCP_PAR_Address PAR_CalledAddress , - template SCCP_PAR_Address PAR_CallingAddress , - template SCCP_PAR_Reason_For_Return PAR_ReasForRet , - template SCCP_PAR_UserData PAR_UserData , - template SCCP_PAR_Importance PAR_Imp -):= - { - calledAddress :=PAR_CalledAddress , - callingAddress :=PAR_CallingAddress, - reasonForReturn :=PAR_ReasForRet , - userData :=PAR_UserData , - importance :=PAR_Imp - } - - -template ASP_SCCP_N_STATE_ind t_ASP_N_STATE_ind -( - template SCCP_PAR_SubSystemNumber PAR_SSN , - template SCCP_PAR_User_Status PAR_UserStatus , - template SCCP_PAR_Subsystem_multi_indicator PAR_Smi -):= - { - affectedSubSystem :=PAR_SSN , - userStatus :=PAR_UserStatus , - subsystmultiindicator :=PAR_Smi - } - -template ASP_SCCP_N_RESET_req t_ASP_N_RESET_req -( - template SCCP_PAR_Originator PAR_Originator, - template SCCP_PAR_Reason PAR_Reason, - template SCCP_PAR_Connection_Id PAR_Connection_Id -):= - { - originator :=PAR_Originator, - reason :=PAR_Reason, - connectionId :=PAR_Connection_Id - } - - -template ASP_SCCP_N_RESET_ind t_ASP_N_RESET_ind -( - template SCCP_PAR_Originator PAR_Originator, - template SCCP_PAR_Reason PAR_Reason, - template SCCP_PAR_Connection_Id PAR_Connection_Id -):= - { - originator :=PAR_Originator, - reason :=PAR_Reason, - connectionId :=PAR_Connection_Id - } - -template ASP_SCCP_N_RESET_resp t_ASP_N_RESET_resp -( - template SCCP_PAR_Connection_Id PAR_Connection_Id -):= - { - connectionId :=PAR_Connection_Id - } - -template ASP_SCCP_N_RESET_cfm t_ASP_N_RESET_cfm -( - template SCCP_PAR_Connection_Id PAR_Connection_Id -):= - { - connectionId :=PAR_Connection_Id - } - - - -}//endgroup ASPTemplateDefinitionsSending - -//******************************************************************************** - -group ASPTemplateDefinitionsReceiving - - -{ - - -template ASP_SCCP_N_CONNECT_req tr_ASP_N_CONNECT_req:= -{ - calledAddress :=?, - callingAddress :=*, - expeditedDataSel :=*, - qualityOfService :=*, - userData :=*, - connectionId :=*, - importance :=* -} - - -template ASP_SCCP_N_CONNECT_ind tr_ASP_N_CONNECT_ind:= -{ - calledAddress :=?, - callingAddress :=*, - qualityOfService :=*, - userData :=*, - connectionId :=*, - importance :=* -} - - -template ASP_SCCP_N_CONNECT_res tr_ASP_N_CONNECT_res:= -{ - respondingAddress:= *, - expeditedDataSel := *, - qualityOfService := *, - userData := *, - connectionId := *, - importance := * -} - - -template ASP_SCCP_N_CONNECT_cfm tr_ASP_N_CONNECT_cfm:= -{ - respondingAddress:= *, - qualityOfService := *, - userData := *, - connectionId := *, - importance := * -} - - -template ASP_SCCP_N_DATA_req tr_ASP_N_DATA_req := -{ - userData := ?, - connectionId := *, - importance := * -} - - -template ASP_SCCP_N_DATA_ind tr_ASP_N_DATA_ind:= -{ - userData := ?, - connectionId := *, - importance := * -} - - -template ASP_SCCP_N_DISCONNECT_req tr_ASP_N_DISCONNECT_req:= -{ - respondingAddress:= *, - reason := ?, - userData := *, - connectionId := *, - importance := * -} - - -template ASP_SCCP_N_DISCONNECT_ind tr_ASP_N_DISCONNECT_ind:= -{ - originator := ?, - respondingAddress:= *, - reason := ?, - userData := *, - connectionId := *, - importance := * -} - - - - -template ASP_SCCP_N_UNITDATA_req tr_ASP_N_UNITDATA_req:= -{ - calledAddress :=?, - callingAddress :=?, - sequenceControl :=*, - returnOption :=*, - userData :=?, - importance :=* -} - - -template ASP_SCCP_N_UNITDATA_ind tr_ASP_N_UNITDATA_ind:= -{ - calledAddress :=?, - callingAddress :=?, - sequenceControl :=*, - returnOption :=*, - userData :=?, - importance :=* -} - - -template ASP_SCCP_N_NOTICE_ind tr_ASP_N_NOTICE_ind:= -{ - calledAddress :=?, - callingAddress :=?, - reasonForReturn :=?, - userData :=?, - importance :=* -} - - -template ASP_SCCP_N_STATE_ind tr_ASP_N_STATE_ind:= -{ - affectedSubSystem :=?, - userStatus :=?, - subsystmultiindicator :=* -} - -template ASP_SCCP_N_RESET_req tr_ASP_N_RESET_req:= -{ - originator :=?, - reason :=?, - connectionId :=* -} - - -template ASP_SCCP_N_RESET_ind tr_ASP_N_RESET_ind:= -{ - originator :=?, - reason :=?, - connectionId :=* -} - -template ASP_SCCP_N_RESET_resp tr_ASP_N_RESET_resp:= -{ - connectionId :=* -} - -template ASP_SCCP_N_RESET_cfm tr_ASP_N_RESET_cfm:= -{ - connectionId :=* -} - - - -}//endgroup ASPTemplateDefinitionsReceiving - - - -} //with { encode "RAW"} -//endmodule SCCP ASP types - diff --git a/SCTPasp_CNL113469/SCTPasp_CNL113469.tpd b/SCTPasp_CNL113469/SCTPasp_CNL113469.tpd deleted file mode 100644 index 125ad9fc8..000000000 --- a/SCTPasp_CNL113469/SCTPasp_CNL113469.tpd +++ /dev/null @@ -1,50 +0,0 @@ - - - - SCTPasp_CNL113469 - - - - - - - - - - Default - - - - - true - true - true - bin/SCTPasp_CNL113469 - - USE_SCTP - - Level 3 - Creating object files with dependency update - - - bin - - - - - diff --git a/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_PRI.doc b/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_PRI.doc deleted file mode 100644 index 5923989c7..000000000 Binary files a/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_PRI.doc and /dev/null differ diff --git a/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_UG.doc b/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_UG.doc deleted file mode 100644 index e0c17fefd..000000000 Binary files a/SCTPasp_CNL113469/doc/SCTPasp_CNL113469_UG.doc and /dev/null differ diff --git a/SCTPasp_CNL113469/doc/SCTPasp_FS.pdf b/SCTPasp_CNL113469/doc/SCTPasp_FS.pdf deleted file mode 100644 index 0e66447bc..000000000 Binary files a/SCTPasp_CNL113469/doc/SCTPasp_FS.pdf and /dev/null differ diff --git a/SCTPasp_CNL113469/src/SCTPasp_PT.cc b/SCTPasp_CNL113469/src/SCTPasp_PT.cc deleted file mode 100644 index 6d7b02b4a..000000000 --- a/SCTPasp_CNL113469/src/SCTPasp_PT.cc +++ /dev/null @@ -1,1549 +0,0 @@ -/****************************************************************************** -* Copyright (c) 2005, 2014 Ericsson AB -* All rights reserved. This program and the accompanying materials -* are made available under the terms of the Eclipse Public License v1.0 -* which accompanies this distribution, and is available at -* http://www.eclipse.org/legal/epl-v10.html -* -* Contributors: -* Peter Dimitrov- initial implementation and initial documentation -* Adam Delic -* Eduard Czimbalmos -* Endre Kulcsar -* Gabor Bettesch -* Gabor Szalai -* Tamas Buti -* Zoltan Medve -******************************************************************************/ -// -// File: SCTPasp_PT.cc -// Description: SCTPasp test port source -// Rev: R11A -// Prodnr: CNL 113 469 -// - - -#include "SCTPasp_PT.hh" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define BUFLEN 1024 -#define MAP_LENGTH 10 -#ifdef SCTP_ADAPTION_LAYER - #ifdef LKSCTP_1_0_7 - #undef LKSCTP_1_0_7 - #error LKSCTP_1_0_7 defined but the lksctp older than 1.0.7. Use only -DUSE_SCTP, version is automatically selected - #endif - #ifdef LKSCTP_1_0_9 - #error LKSCTP_1_0_9 defined but the lksctp older than 1.0.7. Use only -DUSE_SCTP, version is automatically selected - #undef LKSCTP_1_0_9 - #endif -#else -// 1.0.7 or newer - #ifdef SCTP_AUTH_CHUNK - // 1.0.9 or newer - #ifdef LKSCTP_1_0_7 - #undef LKSCTP_1_0_7 - #error LKSCTP_1_0_7 defined but the lksctp newer than 1.0.7. Use only -DUSE_SCTP, version is automatically selected - #endif - #ifndef LKSCTP_1_0_9 - #define LKSCTP_1_0_9 - #endif - #else - // 1.0.7 - #ifdef LKSCTP_1_0_9 - #undef LKSCTP_1_0_9 - #error LKSCTP_1_0_9 defined but the lksctp older than 1.0.9. Use only -DUSE_SCTP, version is automatically selected - #endif - #ifndef LKSCTP_1_0_7 - #define LKSCTP_1_0_7 - #endif - - #endif - -#endif - -namespace SCTPasp__PortType { - -struct SCTPasp__PT_PROVIDER::fd_map_item -{ // used by map operations - int fd; // socket descriptor - boolean erased; - boolean processing_message; // if true only part of the message is received - boolean einprogress; // connection establishment is in progress - void * buf; // buffer - ssize_t buflen; // length of the buffer - ssize_t nr; // number of received bytes - struct sockaddr_in sin; // storing remote address -}; - - -struct SCTPasp__PT_PROVIDER::fd_map_server_item // server item -{ // used by map operations - int fd; // socket descriptor - boolean erased; - struct in_addr local_IP_address; - unsigned short local_port; -}; - - -SCTPasp__PT_PROVIDER::SCTPasp__PT_PROVIDER(const char *par_port_name) - : PORT(par_port_name) -{ - simple_mode = FALSE; - reconnect = FALSE; - reconnect_max_attempts = 6; - server_mode = FALSE; - debug = FALSE; - server_backlog = 1; - local_IP_address.s_addr = INADDR_ANY; - (void) memset(&initmsg, 0, sizeof(struct sctp_initmsg)); - initmsg.sinit_num_ostreams = 64; - initmsg.sinit_max_instreams = 64; - initmsg.sinit_max_attempts = 0; - initmsg.sinit_max_init_timeo = 0; - (void) memset(&events, 0, sizeof (events)); - events.sctp_data_io_event = TRUE; - events.sctp_association_event = TRUE; - events.sctp_address_event = TRUE; - events.sctp_send_failure_event = TRUE; - events.sctp_peer_error_event = TRUE; - events.sctp_shutdown_event = TRUE; - events.sctp_partial_delivery_event = TRUE; -#if defined(LKSCTP_1_0_7) || defined(LKSCTP_1_0_9) - events.sctp_adaptation_layer_event = TRUE; -#else - events.sctp_adaption_layer_event = TRUE; -#endif - local_port_is_present = FALSE; - peer_IP_address_is_present = FALSE; - peer_port_is_present = FALSE; - - fd_map=NULL; - list_len=0; - - fd_map_server=NULL; - list_len_server=0; - - fd = -1; - FD_ZERO(&readfds); - FD_ZERO(&writefds); - local_port=-1; - peer_port=-1; - receiving_fd=-1; -} - - -SCTPasp__PT_PROVIDER::~SCTPasp__PT_PROVIDER() -{ - for(int i=0;i=0) ) - reconnect_max_attempts = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "server_mode") == 0) - { - if (strcasecmp(parameter_value,"yes") == 0) - server_mode = TRUE; - else if(strcasecmp(parameter_value,"no") == 0) - server_mode = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only yes and no can be used!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "debug") == 0) - { - if (strcasecmp(parameter_value,"yes") == 0) - debug = TRUE; - else if(strcasecmp(parameter_value,"no") == 0) - debug = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. Only yes and no can be used!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "server_backlog") == 0) - { - int value; - if ( (sscanf(parameter_value, "%d", &value) == 1) && (value>=0) ) - server_backlog = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "local_IP_address") == 0) - { - local_IP_address = get_in_addr((const char *) parameter_value); - } - else if(strcmp(parameter_name, "local_port") == 0) - { - unsigned short value; - if (sscanf(parameter_value, "%hu", &value) == 1) - { - local_port = value; - local_port_is_present = TRUE; - } - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "peer_IP_address") == 0) - { - peer_IP_address = get_in_addr((const char *) parameter_value); - peer_IP_address_is_present = TRUE; - } - else if(strcmp(parameter_name, "peer_port") == 0) - { - unsigned short value; - if (sscanf(parameter_value, "%hu", &value) == 1) - { - peer_port = value; - peer_port_is_present = TRUE; - } - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sinit_num_ostreams") == 0) - { - long value; - if ( (sscanf(parameter_value, "%ld", &value) == 1) && (value>=0) ) - initmsg.sinit_num_ostreams = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sinit_max_instreams") == 0) - { - long value; - if ( (sscanf(parameter_value, "%ld", &value) == 1) && (value>=0) ) - initmsg.sinit_max_instreams = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sinit_max_attempts") == 0) - { - long value; - if ( (sscanf(parameter_value, "%ld", &value) == 1) && (value>=0) ) - initmsg.sinit_max_attempts = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sinit_max_init_timeo") == 0) - { - long value; - if ( (sscanf(parameter_value, "%ld", &value) == 1) && (value>=0) ) - initmsg.sinit_max_init_timeo = value; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be positive integer!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_association_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_association_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_association_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_address_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_address_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_address_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_send_failure_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_send_failure_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_send_failure_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_peer_error_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_peer_error_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_peer_error_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_shutdown_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_shutdown_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_shutdown_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_partial_delivery_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) - events.sctp_partial_delivery_event = TRUE; - else if(strcasecmp(parameter_value,"disabled") == 0) - events.sctp_partial_delivery_event = FALSE; - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else if(strcmp(parameter_name, "sctp_adaption_layer_event") == 0) - { - if (strcasecmp(parameter_value,"enabled") == 0) -#if defined(LKSCTP_1_0_7) || defined(LKSCTP_1_0_9) - events.sctp_adaptation_layer_event = TRUE; -#else - events.sctp_adaption_layer_event = TRUE; -#endif - else if(strcasecmp(parameter_value,"disabled") == 0) -#if defined(LKSCTP_1_0_7) || defined(LKSCTP_1_0_9) - events.sctp_adaptation_layer_event = FALSE; -#else - events.sctp_adaption_layer_event = FALSE; -#endif - else - error("set_parameter(): Invalid parameter value: %s for parameter %s. It should be enabled or disabled!" , - parameter_value, parameter_name); - } - else - TTCN_warning("%s: unknown & unhandled parameter: %s", - get_name(), parameter_name); - errno = 0; -} - - -void SCTPasp__PT_PROVIDER::Event_Handler(const fd_set *read_fds, - const fd_set *write_fds, const fd_set */*error_fds*/, - double /*time_since_last_call*/) -{ - // Accepting new client - if(!simple_mode) - { - for(int i=0;isinfo_ppid); - INTEGER i_ppid; - if (ui <= (unsigned long)INT_MAX) - i_ppid = ui; - else { - char sbuf[16]; - sprintf(sbuf, "%u", ui); - i_ppid = INTEGER(sbuf); - } - incoming_message(SCTPasp__Types::ASP__SCTP( - INTEGER(receiving_fd), - INTEGER(sri->sinfo_stream), - i_ppid, - OCTETSTRING(fd_map[i].nr,(const unsigned char *)fd_map[i].buf))); - } - Free(fd_map[i].buf); - fd_map[i].buf = NULL; - break; - case PARTIAL_RECEIVE: - fd_map[i].processing_message = TRUE; - break; - case EOF_OR_ERROR: - if (!server_mode) fd = -1; // setting closed socket to -1 in client mode (and reconnect mode) - FD_CLR(receiving_fd, &readfds); - Install_Handler(&readfds, NULL, NULL, 0.0); - map_delete_item(i); - if (events.sctp_association_event) incoming_message(SCTPasp__Types::ASP__SCTP__ASSOC__CHANGE( - INTEGER(receiving_fd), - SCTPasp__Types::SAC__STATE(SCTP_COMM_LOST))); - log("getmsg() returned with NULL. Socket is closed."); - if (reconnect) forced_reconnect(reconnect_max_attempts); - - break; - }//endswitch - }// endif - }// endfor -} - - -void SCTPasp__PT_PROVIDER::user_map(const char *system_port) -{ - log("Calling user_map(%s).",system_port); - if(simple_mode) - { - if ( server_mode && reconnect ) - { - error("user_map(): server mode and reconnect mode are mutually exclusive!"); - } - if ( server_mode && !local_port_is_present ) - { - error("user_map(): in server mode local_port must be defined!"); - } - - // Server mode: turns on listening - if (server_mode) - { - log("Running in SERVER_MODE."); - create_socket(); - if (listen(fd, server_backlog) == -1) error("Listen error!"); - log("Listening @ (%s):(%d)", inet_ntoa(local_IP_address), local_port); - FD_SET(fd, &readfds); - Install_Handler(&readfds, NULL, NULL, 0.0); - } else if (reconnect) { - log("Running in RECONNECT MODE."); - forced_reconnect(reconnect_max_attempts+1); - } else { - log("Running in CLIENT MODE."); - } - } - else - { - log("Running in NORMAL MODE."); - } - log("Leaving user_map()."); -} - - -void SCTPasp__PT_PROVIDER::user_unmap(const char *system_port) -{ - log("Calling user_unmap(%s).",system_port); - Uninstall_Handler(); - FD_ZERO(&readfds); - FD_ZERO(&writefds); - if(!simple_mode) - { - for(int i=0;icmsg_len = sizeof (*cmsg) + sizeof (*sri); - cmsg->cmsg_level = IPPROTO_SCTP; - cmsg->cmsg_type = SCTP_SNDRCV; - - sri->sinfo_stream = (int) send_par.sinfo__stream(); - - int target; - if(!simple_mode) - { - if (!send_par.client__id().ispresent()) - error("In NORMAL mode the client_id field of ASP_SCTP should be set to a valid value and not to omit!"); - target = (int) (const INTEGER&) send_par.client__id(); - if ( (map_get_item(target)==-1) && (map_get_item_server(target)==-1)) error("Bad client id! %d",target); - } - else - { - if (server_mode) - { - if (!send_par.client__id().ispresent()) - error("In server mode the client_id field of ASP_SCTP should be set to a valid value and not to omit!"); - } - else // client mode - { - if (send_par.client__id().ispresent()) - error("In client mode the client_id field of ASP_SCTP should be set to OMIT!"); - } - target = fd; - if (server_mode) - target = (int) (const INTEGER&) send_par.client__id(); - if (map_get_item(target)==-1) error("Bad client id! %d",target); - } - - uint32_t ui; - if (send_par.sinfo__ppid().get_val().is_native() && send_par.sinfo__ppid() > 0) - ui = (int)send_par.sinfo__ppid(); - else { - OCTETSTRING os = int2oct(send_par.sinfo__ppid(), 4); - unsigned char* p = (unsigned char*)&ui; - *(p++) = os[3].get_octet(); - *(p++) = os[2].get_octet(); - *(p++) = os[1].get_octet(); - *(p++) = os[0].get_octet(); - } - sri->sinfo_ppid = htonl(ui); - - log("Sending SCTP message to file descriptor %d.", target); - if (sendmsg(target, &msg, 0) < 0) - { - SCTPasp__Types::ASP__SCTP__SENDMSG__ERROR asp_sctp_sendmsg_error; - if (server_mode) asp_sctp_sendmsg_error.client__id() = target; - else asp_sctp_sendmsg_error.client__id() = OMIT_VALUE; - asp_sctp_sendmsg_error.sinfo__stream() = send_par.sinfo__stream(); - asp_sctp_sendmsg_error.sinfo__ppid() = send_par.sinfo__ppid(); - asp_sctp_sendmsg_error.data() = send_par.data(); - incoming_message(asp_sctp_sendmsg_error); - TTCN_warning("Sendmsg error! Strerror=%s", strerror(errno)); - - errno = 0; - } - log("Leaving outgoing_send (ASP_SCTP)."); -} - - -SCTPasp__PT_PROVIDER::return_value_t SCTPasp__PT_PROVIDER::getmsg(int fd, struct msghdr *msg) -{ - log("Calling getmsg()."); - int index = map_get_item(fd); - if ( !fd_map[index].processing_message ) fd_map[index].nr = 0; - - ssize_t value = recvmsg(fd, msg, 0); - if (value <= 0) // EOF or error - { - log("Leaving getmsg(): EOF or error."); - errno = 0; - return EOF_OR_ERROR; - } - fd_map[index].nr += value; - log("getmsg(): [%d] bytes received. Receiving buffer now has [%d] bytes.", value, fd_map[index].nr); - // Whole message is received, return it. - if (msg->msg_flags & MSG_EOR) - { - log("Leaving getmsg(): whole message is received."); - return WHOLE_MESSAGE_RECEIVED; - } - - // Maybe we need a bigger buffer, do realloc(). - if (fd_map[index].buflen == fd_map[index].nr) - { - log("getmsg(): resizing receiving buffer: [%d] bytes -> [%d] bytes", - fd_map[index].buflen, (fd_map[index].buflen * 2)); - fd_map[index].buf = Realloc(fd_map[index].buf, fd_map[index].buflen * 2); - fd_map[index].buflen *= 2; - } - log("Leaving getmsg(): part of the message is received."); - return PARTIAL_RECEIVE; -} - - -void SCTPasp__PT_PROVIDER::handle_event(void *buf) -{ - union sctp_notification *snp; - snp = (sctp_notification *)buf; - switch (snp->sn_header.sn_type) - { - case SCTP_ASSOC_CHANGE: - { - log("incoming SCTP_ASSOC_CHANGE event."); - struct sctp_assoc_change *sac; - sac = &snp->sn_assoc_change; - -// #ifdef LKSCTP_1_0_7 - SCTPasp__Types::SAC__STATE sac_state_ttcn; - switch(sac->sac_state) - { - case SCTP_COMM_UP: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__COMM__UP; - break; - - case SCTP_COMM_LOST: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__COMM__LOST; - break; - - case SCTP_RESTART: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__RESTART; - break; - - case SCTP_SHUTDOWN_COMP: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__SHUTDOWN__COMP; - break; - - case SCTP_CANT_STR_ASSOC: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__CANT__STR__ASSOC; - break; - - default: - sac_state_ttcn = SCTPasp__Types::SAC__STATE::SCTP__UNKNOWN__SAC__STATE; - TTCN_warning("Unexpected sac_state value received %d", sac->sac_state); - break; - } -// #endif - - if(sac->sac_state == SCTP_COMM_LOST) - { - if(simple_mode) - { - if (!server_mode) fd = -1; // setting closed socket to -1 in client mode (and reconnect mode) - FD_CLR(receiving_fd, &readfds); - Install_Handler(&readfds, NULL, NULL, 0.0); - map_delete_item_fd(receiving_fd); - } - else - { - FD_CLR(receiving_fd, &readfds); - Install_Handler(&readfds, NULL, NULL, 0.0); - map_delete_item_fd(receiving_fd); - map_delete_item_fd_server(receiving_fd); - } - } - if (events.sctp_association_event) incoming_message(SCTPasp__Types::ASP__SCTP__ASSOC__CHANGE( - INTEGER(receiving_fd), - sac_state_ttcn - )); - - if(simple_mode) - { - if (reconnect && (sac->sac_state == SCTP_COMM_LOST) ) forced_reconnect(reconnect_max_attempts); - } - break; - } - case SCTP_PEER_ADDR_CHANGE:{ - log("incoming SCTP_PEER_ADDR_CHANGE event."); - struct sctp_paddr_change *spc; - spc = &snp->sn_paddr_change; -// #ifdef LKSCTP_1_0_7 - SCTPasp__Types::SPC__STATE spc_state_ttcn; - switch(spc->spc_state) - { - case SCTP_ADDR_AVAILABLE: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__AVAILABLE; - break; - - case SCTP_ADDR_UNREACHABLE: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__UNREACHABLE; - break; - - case SCTP_ADDR_REMOVED: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__REMOVED; - break; - - case SCTP_ADDR_ADDED: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__ADDED; - break; - - case SCTP_ADDR_MADE_PRIM: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__MADE__PRIM; - break; -#if defined(LKSCTP_1_0_7) || defined(LKSCTP_1_0_9) - case SCTP_ADDR_CONFIRMED: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__ADDR__CONFIRMED; - break; -#endif - default: - spc_state_ttcn = SCTPasp__Types::SPC__STATE::SCTP__UNKNOWN__SPC__STATE; - TTCN_warning("Unexpected spc_state value received %d", spc->spc_state); - break; - } -// #endif - if (events.sctp_address_event) incoming_message(SCTPasp__Types::ASP__SCTP__PEER__ADDR__CHANGE( - INTEGER(receiving_fd), - spc_state_ttcn - )); - break; - } - case SCTP_REMOTE_ERROR: - log("incoming SCTP_REMOTE_ERROR event."); - //struct sctp_remote_error *sre; - //sre = &snp->sn_remote_error; - if (events.sctp_peer_error_event) incoming_message(SCTPasp__Types::ASP__SCTP__REMOTE__ERROR(INTEGER(receiving_fd))); - break; - case SCTP_SEND_FAILED: - log("incoming SCTP_SEND_FAILED event."); - //struct sctp_send_failed *ssf; - //ssf = &snp->sn_send_failed; - if (events.sctp_send_failure_event) incoming_message(SCTPasp__Types::ASP__SCTP__SEND__FAILED(INTEGER(receiving_fd))); - break; - case SCTP_SHUTDOWN_EVENT: - log("incoming SCTP_SHUTDOWN_EVENT event."); - //struct sctp_shutdown_event *sse; - //sse = &snp->sn_shutdown_event; - if (events.sctp_shutdown_event) incoming_message(SCTPasp__Types::ASP__SCTP__SHUTDOWN__EVENT(INTEGER(receiving_fd))); - break; -#if defined(LKSCTP_1_0_7) || defined(LKSCTP_1_0_9) - case SCTP_ADAPTATION_INDICATION: - log("incoming SCTP_ADAPTION_INDICATION event."); - //struct sctp_adaptation_event *sai; - //sai = &snp->sn_adaptation_event; - if (events.sctp_adaptation_layer_event) incoming_message(SCTPasp__Types::ASP__SCTP__ADAPTION__INDICATION(INTEGER(receiving_fd))); - break; -#else - case SCTP_ADAPTION_INDICATION: - log("incoming SCTP_ADAPTION_INDICATION event."); - //struct sctp_adaption_event *sai; - //sai = &snp->sn_adaption_event; - if (events.sctp_adaption_layer_event) incoming_message(SCTPasp__Types::ASP__SCTP__ADAPTION__INDICATION(INTEGER(receiving_fd))); - break; -#endif - case SCTP_PARTIAL_DELIVERY_EVENT: - log("incoming SCTP_PARTIAL_DELIVERY_EVENT event."); - //struct sctp_pdapi_event *pdapi; - //pdapi = &snp->sn_pdapi_event; - if (events.sctp_partial_delivery_event) incoming_message(SCTPasp__Types::ASP__SCTP__PARTIAL__DELIVERY__EVENT(INTEGER(receiving_fd))); - break; - default: - TTCN_warning("Unknown notification type!"); - break; - } -} - - -void SCTPasp__PT_PROVIDER::log(const char *fmt, ...) -{ - if(debug) - { - va_list ap; - va_start(ap, fmt); - TTCN_Logger::begin_event(TTCN_DEBUG); - TTCN_Logger::log_event("SCTPasp Test Port (%s): ", get_name()); - TTCN_Logger::log_event_va_list(fmt, ap); - TTCN_Logger::end_event(); - va_end(ap); - - } -} - - -void SCTPasp__PT_PROVIDER::error(const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - TTCN_Logger::begin_event(TTCN_ERROR); - TTCN_Logger::log_event("SCTPasp Test Port (%s): ", get_name()); - TTCN_Logger::log_event_va_list(fmt, ap); - TTCN_Logger::end_event(); - va_end(ap); - TTCN_error("Fatal error in SCTPasp Test Port %s (see above).", get_name()); -} - - -void SCTPasp__PT_PROVIDER::forced_reconnect(int attempts) -{ - struct sockaddr_in sin; - sin.sin_family = AF_INET; - sin.sin_port = htons(peer_port); - sin.sin_addr.s_addr = peer_IP_address.s_addr; - log("[reconnect] Connecting to (%s):(%d)", inet_ntoa(peer_IP_address), peer_port); - unsigned int sleep_interval = 1; - int i; - for(i = 0; i < attempts; i++) - { - create_socket(); - if (connect(fd, (struct sockaddr *)&sin, sizeof (sin)) == -1) - { - close(fd); - fd = -1; - TTCN_warning("Connect error!"); - errno = 0; - if( ((i % 2 ) == 0) && (i != 0)) sleep_interval *= 2; - sleep(sleep_interval); - - } - else - { - map_put_item(fd); - setNonBlocking(fd); - FD_SET(fd, &readfds); - Install_Handler(&readfds, NULL, NULL, 0.0); - log("[reconnect] Connection successfully established to (%s):(%d)", inet_ntoa(peer_IP_address), peer_port); - break; - } - } - if (i == attempts) error("Forced reconnect failed! Remote end is unreachable!"); - -} - - -void SCTPasp__PT_PROVIDER::map_put_item(int fd) -{ - int i=0; - while((i=list_len) || (index<0)) error("map_delete_item: index out of range (0-%d): %d",list_len-1,index); - - if(fd_map[index].fd!=-1) close(fd_map[index].fd); - fd_map[index].fd=-1; - fd_map[index].erased=TRUE; - fd_map[index].einprogress=FALSE; - if(fd_map[index].buf) Free(fd_map[index].buf); - fd_map[index].buf=NULL; - fd_map[index].buflen=0; - fd_map[index].processing_message=FALSE; - fd_map[index].nr=0; - fd_map[index].sin.sin_family=AF_INET; - fd_map[index].sin.sin_port=0; - fd_map[index].sin.sin_addr.s_addr=0; -} - - -void SCTPasp__PT_PROVIDER::map_put_item_server(int fd, struct in_addr local_IP_address, unsigned short local_port) -{ - int i=0; - while((i=list_len_server) || (index<0)) error("map_delete_item: index out of range (0-%d): %d",list_len_server-1,index); - - if(fd_map_server[index].fd!=-1) close(fd_map_server[index].fd); - fd_map_server[index].fd=-1; - fd_map_server[index].erased=TRUE; - fd_map_server[index].local_IP_address.s_addr = INADDR_ANY; - fd_map_server[index].local_port = 0; -} - - -void SCTPasp__PT_PROVIDER::create_socket() -{ - struct sockaddr_in sin; - - log("Creating SCTP socket."); - if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) - error("Socket error: cannot create socket!"); - - if ( local_port_is_present ) { - sin.sin_family = AF_INET; - sin.sin_port = htons(local_port); - sin.sin_addr.s_addr = local_IP_address.s_addr; - log("Binding SCTP socket: bind address (%s):(%d)", - inet_ntoa(local_IP_address),local_port); - if (bind(fd, (struct sockaddr *)&sin, sizeof (sin)) == -1) - { - close(fd); - fd = -1; - error("Bind error!"); - } - } - - log("Setting SCTP socket options (initmsg)."); - if (setsockopt(fd, IPPROTO_SCTP, SCTP_INITMSG, &initmsg, - sizeof(struct sctp_initmsg)) < 0) - { - TTCN_warning("Setsockopt error!"); - errno = 0; - } - - log("Setting SCTP socket options (events)."); - if (setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, &events, sizeof (events)) < 0) - { - TTCN_warning("Setsockopt error!"); - errno = 0; - } -} - - -in_addr SCTPasp__PT_PROVIDER::get_in_addr(const char *hostname) -{ - struct hostent *h; - if ((h=gethostbyname(hostname)) == NULL) - error("Gethostbyname error!"); - if(h->h_addr == NULL) error("Gethostbyname error! h->h_addr is NULL!"); - return *((struct in_addr *)h->h_addr); -} - -void SCTPasp__PT_PROVIDER::setNonBlocking(int fd) -{ - int flags = fcntl(fd, F_GETFL); - flags |= O_NONBLOCK; - int result = fcntl(fd, F_SETFL, flags); - if (result==-1) error("SCTPasp__PT::setNonBlocking(): Fcntl() error!"); -} - - -} diff --git a/SCTPasp_CNL113469/src/SCTPasp_PT.hh b/SCTPasp_CNL113469/src/SCTPasp_PT.hh deleted file mode 100644 index 7d6311d3c..000000000 --- a/SCTPasp_CNL113469/src/SCTPasp_PT.hh +++ /dev/null @@ -1,157 +0,0 @@ -/****************************************************************************** -* Copyright (c) 2005, 2014 Ericsson AB -* All rights reserved. This program and the accompanying materials -* are made available under the terms of the Eclipse Public License v1.0 -* which accompanies this distribution, and is available at -* http://www.eclipse.org/legal/epl-v10.html -* -* Contributors: -* Peter Dimitrov- initial implementation and initial documentation -* Adam Delic -* Eduard Czimbalmos -* Endre Kulcsar -* Gabor Bettesch -* Gabor Szalai -* Tamas Buti -* Zoltan Medve -******************************************************************************/ -// -// File: SCTPasp_PT.hh -// Description: SCTPasp test port header -// Rev: R11A -// Prodnr: CNL 113 469 -// - - -#ifndef SCTPasp__PT_HH -#define SCTPasp__PT_HH - -#include -#include "SCTPasp_Types.hh" -#include -#include -#include - -namespace SCTPasp__Types { - class ASP__SCTP; - class ASP__SCTP__Connect; - class ASP__SCTP__ConnectFrom; - class ASP__SCTP__Listen; - - class SCTP__INIT; - class SCTP__EVENTS; - class SO__LINGER; - class SCTP__RTOINFO; - class SAC__STATE; - class SPC__STATE; - - class ASP__SCTP__SetSocketOptions; - class ASP__SCTP__Close; - class ASP__SCTP__ASSOC__CHANGE; - class ASP__SCTP__PEER__ADDR__CHANGE; - class ASP__SCTP__SEND__FAILED; - class ASP__SCTP__REMOTE__ERROR; - class ASP__SCTP__SHUTDOWN__EVENT; - class ASP__SCTP__PARTIAL__DELIVERY__EVENT; - class ASP__SCTP__ADAPTION__INDICATION; - class ASP__SCTP__Connected; - class ASP__SCTP__SENDMSG__ERROR; - class ASP__SCTP__RESULT; -} - -namespace SCTPasp__PortType { -class SCTPasp__PT_PROVIDER : public PORT { -public: - SCTPasp__PT_PROVIDER(const char *par_port_name = NULL); - ~SCTPasp__PT_PROVIDER(); - - void set_parameter(const char *parameter_name, - const char *parameter_value); - - void Event_Handler(const fd_set *read_fds, - const fd_set *write_fds, const fd_set *error_fds, - double time_since_last_call); - -protected: - void user_map(const char *system_port); - void user_unmap(const char *system_port); - - void user_start(); - void user_stop(); - - void outgoing_send(const SCTPasp__Types::ASP__SCTP__Connect& send_par); - void outgoing_send(const SCTPasp__Types::ASP__SCTP__ConnectFrom& send_par); - void outgoing_send(const SCTPasp__Types::ASP__SCTP__Listen& send_par); - void outgoing_send(const SCTPasp__Types::ASP__SCTP__SetSocketOptions& send_par); - void outgoing_send(const SCTPasp__Types::ASP__SCTP__Close& send_par); - void outgoing_send(const SCTPasp__Types::ASP__SCTP& send_par); - - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__ASSOC__CHANGE& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__PEER__ADDR__CHANGE& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__SEND__FAILED& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__REMOTE__ERROR& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__SHUTDOWN__EVENT& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__PARTIAL__DELIVERY__EVENT& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__ADAPTION__INDICATION& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__Connected& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__SENDMSG__ERROR& incoming_par) = 0; - virtual void incoming_message(const SCTPasp__Types::ASP__SCTP__RESULT& incoming_par) = 0; - -private: - enum return_value_t { WHOLE_MESSAGE_RECEIVED, PARTIAL_RECEIVE, EOF_OR_ERROR }; - return_value_t getmsg(int fd, struct msghdr *msg); - void handle_event(void *buf); - void log(const char *fmt, ...); - void error(const char *fmt, ...); - void handle_event_reconnect(void *buf); - void forced_reconnect(int attempts); - // map operations - void map_put_item(int fd); - int map_get_item(int fd); - void map_delete_item_fd(int fd); - void map_delete_item(int index); - - void map_put_item_server(int fd, struct in_addr local_IP_address, unsigned short local_port); - int map_get_item_server(int fd); - void map_delete_item_fd_server(int fd); - void map_delete_item_server(int index); - - void create_socket(); - in_addr get_in_addr(const char *hostname); - void setNonBlocking(int fd); - - boolean simple_mode; - boolean reconnect; - int reconnect_max_attempts; - boolean server_mode; - boolean debug; - int server_backlog; - struct in_addr local_IP_address; - struct in_addr peer_IP_address; - unsigned short local_port; - unsigned short peer_port; - - struct sctp_event_subscribe events; - struct sctp_initmsg initmsg; - - boolean local_port_is_present; - boolean peer_IP_address_is_present; - boolean peer_port_is_present; - - int fd; - fd_set readfds, writefds; - int receiving_fd; - - struct fd_map_item; - fd_map_item *fd_map; - int list_len; - - struct fd_map_server_item; - fd_map_server_item *fd_map_server; - int list_len_server; - - -}; -} -#endif diff --git a/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn b/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn deleted file mode 100644 index 27aae086f..000000000 --- a/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn +++ /dev/null @@ -1,62 +0,0 @@ -/****************************************************************************** -* Copyright (c) 2005, 2014 Ericsson AB -* All rights reserved. This program and the accompanying materials -* are made available under the terms of the Eclipse Public License v1.0 -* which accompanies this distribution, and is available at -* http://www.eclipse.org/legal/epl-v10.html -* -* Contributors: -* Peter Dimitrov- initial implementation and initial documentation -* Adam Delic -* Eduard Czimbalmos -* Endre Kulcsar -* Gabor Bettesch -* Gabor Szalai -* Tamas Buti -* Zoltan Medve -******************************************************************************/ -// -// File: SCTPasp_PortType.ttcn -// Description: SCTPasp testport definition file -// Rev: R11A -// Prodnr: CNL 113 469 -// - -module SCTPasp_PortType -{ - -import from SCTPasp_Types all; - -//========================================================================= -//Port Types -//========================================================================= - -type port SCTPasp_PT message -{ - inout ASP_SCTP; - - out ASP_SCTP_Connect; - out ASP_SCTP_ConnectFrom; - out ASP_SCTP_Listen; - out ASP_SCTP_SetSocketOptions; - out ASP_SCTP_Close; - - in ASP_SCTP_ASSOC_CHANGE; - in ASP_SCTP_PEER_ADDR_CHANGE; - in ASP_SCTP_SEND_FAILED; - in ASP_SCTP_REMOTE_ERROR; - in ASP_SCTP_SHUTDOWN_EVENT; - in ASP_SCTP_PARTIAL_DELIVERY_EVENT; - in ASP_SCTP_ADAPTION_INDICATION; - - in ASP_SCTP_Connected; - in ASP_SCTP_SENDMSG_ERROR; - in ASP_SCTP_RESULT; - -} with { extension "provider" } - -}//end of module -with { -extension "version R11A" -} - diff --git a/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn b/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn deleted file mode 100644 index f10fc5881..000000000 --- a/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn +++ /dev/null @@ -1,201 +0,0 @@ -/****************************************************************************** -* Copyright (c) 2005, 2014 Ericsson AB -* All rights reserved. This program and the accompanying materials -* are made available under the terms of the Eclipse Public License v1.0 -* which accompanies this distribution, and is available at -* http://www.eclipse.org/legal/epl-v10.html -* -* Contributors: -* Peter Dimitrov- initial implementation and initial documentation -* Adam Delic -* Eduard Czimbalmos -* Endre Kulcsar -* Gabor Bettesch -* Gabor Szalai -* Tamas Buti -* Zoltan Medve -******************************************************************************/ -// -// File: SCTPasp_Types.ttcn -// Description: SCTP ASP definition file -// Rev: R11A -// Prodnr: CNL 113 469 -// - - -module SCTPasp_Types -{ - -//========================================================================= -// Data Types -//========================================================================= - -type octetstring PDU_SCTP; - -type record ASP_SCTP -{ - integer client_id optional, - integer sinfo_stream, - integer sinfo_ppid, - PDU_SCTP data -} - - -type record ASP_SCTP_Connect -{ - charstring peer_hostname optional, - integer peer_portnumber (1..65535) optional -} - - -type record ASP_SCTP_ConnectFrom -{ - charstring local_hostname optional, - integer local_portnumber (1..65535), - charstring peer_hostname optional, - integer peer_portnumber (1..65535) optional -} - - -type record ASP_SCTP_Listen -{ - charstring local_hostname optional, - integer local_portnumber (1..65535) -} - - -type record SCTP_INIT -{ - integer sinit_num_ostreams, - integer sinit_max_instreams, - integer sinit_max_attempts, - integer sinit_max_init_timeo -} - -type record SCTP_EVENTS -{ - boolean sctp_data_io_event, - boolean sctp_association_event, - boolean sctp_address_event, - boolean sctp_send_failure_event, - boolean sctp_peer_error_event, - boolean sctp_shutdown_event, - boolean sctp_partial_delivery_event, - boolean sctp_adaption_layer_event -} - -type record SO_LINGER -{ - integer l_onoff, - integer l_linger -} - -type record SCTP_RTOINFO -{ - integer client_id, - integer srto_initial, - integer srto_max, - integer srto_min -} - -type union ASP_SCTP_SetSocketOptions -{ - SCTP_INIT Sctp_init, - SCTP_EVENTS Sctp_events, - SO_LINGER So_linger, - SCTP_RTOINFO Sctp_rtoinfo -} - - -type record ASP_SCTP_Close -{ - integer client_id optional -} - - -type enumerated SAC_STATE -{ - SCTP_COMM_UP, SCTP_COMM_LOST, SCTP_RESTART, - SCTP_SHUTDOWN_COMP, SCTP_CANT_STR_ASSOC, SCTP_UNKNOWN_SAC_STATE -} - -type record ASP_SCTP_ASSOC_CHANGE -{ - integer client_id, - SAC_STATE sac_state -} - - -type enumerated SPC_STATE -{ - SCTP_ADDR_AVAILABLE, SCTP_ADDR_UNREACHABLE, SCTP_ADDR_REMOVED, - SCTP_ADDR_ADDED, SCTP_ADDR_MADE_PRIM, SCTP_ADDR_CONFIRMED, SCTP_UNKNOWN_SPC_STATE -} - -type record ASP_SCTP_PEER_ADDR_CHANGE -{ - integer client_id, - SPC_STATE spc_state -} - - -type record ASP_SCTP_SEND_FAILED -{ - integer client_id -} - - -type record ASP_SCTP_REMOTE_ERROR -{ - integer client_id -} - - -type record ASP_SCTP_SHUTDOWN_EVENT -{ - integer client_id -} - - -type record ASP_SCTP_PARTIAL_DELIVERY_EVENT -{ - integer client_id -} - - -type record ASP_SCTP_ADAPTION_INDICATION -{ - integer client_id -} - - -type record ASP_SCTP_Connected -{ - integer client_id, - charstring local_hostname, - integer local_portnumber (1..65535), - charstring peer_hostname, - integer peer_portnumber (1..65535) -} - - -type record ASP_SCTP_SENDMSG_ERROR -{ - integer client_id optional, - integer sinfo_stream, - integer sinfo_ppid, - PDU_SCTP data -} - -type record ASP_SCTP_RESULT -{ - integer client_id optional, - boolean error_status, - charstring error_message optional -} - -}//end of module -with { -extension "version R11A" -} - diff --git a/bin/install.script b/bin/install.script index a55440809..799b1568c 100755 --- a/bin/install.script +++ b/bin/install.script @@ -5,26 +5,26 @@ SRC_BASE_DIR=~/projects/git/osmo-ttcn3-hacks ln -sf $SRC_BASE_DIR/COMMON/src/General_Types.ttcn . #M3UA protocol module -ln -sf $SRC_BASE_DIR/M3UA_CNL113536/src/M3UA_Types.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.ProtocolModules.M3UA/src/M3UA_Types.ttcn . #M3UA Emulator -ln -sf $SRC_BASE_DIR/M3UA_CNL113537/src/M3UA_Emulation.ttcn . +ln -sf $SRC_BASE_DIR/src/titan.ProtocolEmulations.M3UA/src/M3UA_Emulation.ttcn . #MTP3 test port (partly) -ln -sf $SRC_BASE_DIR/MTP3asp_CNL113337/src/MTP3asp_Types.ttcn . -ln -sf $SRC_BASE_DIR/MTP3asp_CNL113337/src/MTP3asp_PortType.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.MTP3asp/src/MTP3asp_Types.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.MTP3asp/src/MTP3asp_PortType.ttcn . #SCCP Emulator + protocol module -ln -sf $SRC_BASE_DIR/SCCP_CNL113341/src/SCCPasp_Types.ttcn . -ln -sf $SRC_BASE_DIR/SCCP_CNL113341/src/SCCP_Types.ttcn . -ln -sf $SRC_BASE_DIR/SCCP_CNL113341/src/SCCP_Mapping.ttcnpp . -ln -sf $SRC_BASE_DIR/SCCP_CNL113341/src/SCCP_Emulation.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.ProtocolEmulations.SCCP/src/SCCPasp_Types.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.ProtocolEmulations.SCCP/src/SCCP_Types.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.ProtocolEmulations.SCCP/src/SCCP_Mapping.ttcnpp . +ln -sf $SRC_BASE_DIR/deps/titan.ProtocolEmulations.SCCP/src/SCCP_Emulation.ttcn . #SCTP test port -ln -sf $SRC_BASE_DIR/SCTPasp_CNL113469/src/SCTPasp_Types.ttcn . -ln -sf $SRC_BASE_DIR/SCTPasp_CNL113469/src/SCTPasp_PortType.ttcn . -ln -sf $SRC_BASE_DIR/SCTPasp_CNL113469/src/SCTPasp_PT.hh . -ln -sf $SRC_BASE_DIR/SCTPasp_CNL113469/src/SCTPasp_PT.cc . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.SCTPasp/src/SCTPasp_Types.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.SCTPasp/src/SCTPasp_PortType.ttcn . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.SCTPasp/src/SCTPasp_PT.hh . +ln -sf $SRC_BASE_DIR/deps/titan.TestPorts.SCTPasp/src/SCTPasp_PT.cc . #Test cases diff --git a/bsc-nat/gen_links.sh b/bsc-nat/gen_links.sh index 77c9563f3..453d8caff 100755 --- a/bsc-nat/gen_links.sh +++ b/bsc-nat/gen_links.sh @@ -21,14 +21,13 @@ FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttc gen_links $DIR $FILES # required by SCCP Emulation -DIR=../MTP3asp_CNL113337/src +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" gen_links $DIR $FILES -DIR=../SCCP_CNL113341/src +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src FILES="SCCP_Emulation.ttcn SCCP_EncDec.cc SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" gen_links $DIR $FILES -gen_link SCCP_Mapping.ttcnpp SCCP_Mapping.ttcn DIR=$BASEDIR/titan.ProtocolModules.BSSMAP_v11.2.0/src FILES="BSSAP_Types.ttcn" diff --git a/bsc-nat/regen_makefile.sh b/bsc-nat/regen_makefile.sh index 3d17cfe11..5c2536619 100755 --- a/bsc-nat/regen_makefile.sh +++ b/bsc-nat/regen_makefile.sh @@ -4,6 +4,6 @@ MAIN=IPA_Test.ttcn FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc" -export CPPFLAGS_TTCN3="-DIPA_EMULATION_SCCP -DIPA_EMULATION_MGCP" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_SCCP -DIPA_EMULATION_MGCP -DUSE_MTP3_DISTRIBUTOR" ../regen-makefile.sh $MAIN $FILES diff --git a/bsc/gen_links.sh b/bsc/gen_links.sh index ee55c3e09..a6a1b0a6a 100755 --- a/bsc/gen_links.sh +++ b/bsc/gen_links.sh @@ -31,25 +31,19 @@ DIR=$BASEDIR/titan.TestPorts.SCTPasp/src FILES="SCTPasp_PT.cc SCTPasp_PT.hh SCTPasp_PortType.ttcn SCTPasp_Types.ttcn" gen_links $DIR $FILES -# required by M3UA Emulation -DIR=../MTP3asp_CNL113337/src -FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" -gen_links $DIR $FILES - # required by SCCP Emulation -DIR=../M3UA_CNL113537/src +DIR=$BASEDIR/titan.ProtocolEmulations.M3UA/src FILES="M3UA_Emulation.ttcn" gen_links $DIR $FILES # required by SCCP Emulation -DIR=../MTP3asp_CNL113337/src +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" gen_links $DIR $FILES -DIR=../SCCP_CNL113341/src +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src FILES="SCCP_Emulation.ttcn SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" gen_links $DIR $FILES -gen_link SCCP_Mapping.ttcnpp SCCP_Mapping.ttcn DIR=$BASEDIR/titan.ProtocolModules.BSSMAP_v11.2.0/src FILES="BSSAP_Types.ttcn" diff --git a/bsc/regen_makefile.sh b/bsc/regen_makefile.sh index e9eb8084e..1e522523c 100755 --- a/bsc/regen_makefile.sh +++ b/bsc/regen_makefile.sh @@ -4,6 +4,6 @@ MAIN=BSC_Tests.ttcn FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc SCTPasp_PT.cc RTP_EncDec.cc SDP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc *.c" -export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_MGCP" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_MGCP -DUSE_MTP3_DISTRIBUTOR" ../regen-makefile.sh $MAIN $FILES diff --git a/deps/Makefile b/deps/Makefile index d67e065df..c9c01ca19 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -37,10 +37,13 @@ ECLIPSEGIT2_REPOS= titan.ProtocolModules.GRE \ titan.ProtocolModules.LLC_v7.1.0 \ titan.ProtocolModules.MobileL3_v13.4.0 \ titan.ProtocolModules.NS_v7.3.0 \ - titan.ProtocolModules.SNDCP_v7.0.0 + titan.ProtocolModules.SNDCP_v7.0.0 \ + titan.ProtocolEmulations.M3UA OSMOGITHUB_REPOS= titan.TestPorts.SCTPasp \ - titan.TestPorts.UNIX_DOMAIN_SOCKETasp + titan.TestPorts.MTP3asp \ + titan.TestPorts.UNIX_DOMAIN_SOCKETasp \ + titan.ProtocolEmulations.SCCP ALL_REPOS=$(ECLIPSEGIT_REPOS) $(ECLIPSEGIT2_REPOS) $(OSMOGITHUB_REPOS) diff --git a/msc/gen_links.sh b/msc/gen_links.sh index a7144a69f..efb377039 100755 --- a/msc/gen_links.sh +++ b/msc/gen_links.sh @@ -32,19 +32,18 @@ FILES="SCTPasp_PT.cc SCTPasp_PT.hh SCTPasp_PortType.ttcn SCTPasp_Types.ttcn" gen_links $DIR $FILES # required by M3UA Emulation -DIR=../MTP3asp_CNL113337/src +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" gen_links $DIR $FILES # required by SCCP Emulation -DIR=../M3UA_CNL113537/src +DIR=$BASEDIR/titan.ProtocolEmulations.M3UA/src FILES="M3UA_Emulation.ttcn" gen_links $DIR $FILES -DIR=../SCCP_CNL113341/src +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src FILES="SCCP_Emulation.ttcn SCCP_EncDec.cc SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" gen_links $DIR $FILES -gen_link SCCP_Mapping.ttcnpp SCCP_Mapping.ttcn DIR=$BASEDIR/titan.ProtocolModules.BSSMAP_v11.2.0/src FILES="BSSAP_Types.ttcn" diff --git a/msc/regen_makefile.sh b/msc/regen_makefile.sh index 84b16f7ea..c3db4e747 100755 --- a/msc/regen_makefile.sh +++ b/msc/regen_makefile.sh @@ -2,6 +2,6 @@ FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc SCTPasp_PT.cc TCCConversion.cc TCCInterface.cc UD_PT.cc MNCC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc SDP_EncDec.cc RTP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc Native_FunctionDefs.cc *.c" -export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP -DUSE_MTP3_DISTRIBUTOR" ../regen-makefile.sh MSC_Tests.ttcn $FILES diff --git a/rmlinks.sh b/rmlinks.sh index 2b356a52f..cd04866de 100755 --- a/rmlinks.sh +++ b/rmlinks.sh @@ -1,2 +1,2 @@ #!/bin/sh -find . -type l -not -path "./bin/*" -not -path "./M3UA_CNL113537/*" -not -path "./SCCP_CNL113341/*" -exec rm \{\} \; +find . -type l -not -path "./bin/*" -exec rm \{\} \; diff --git a/selftest/gen_links.sh b/selftest/gen_links.sh index b5e86cb84..1b6171cad 100755 --- a/selftest/gen_links.sh +++ b/selftest/gen_links.sh @@ -22,14 +22,13 @@ FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttc gen_links $DIR $FILES # required by IPA Emulation -DIR=../MTP3asp_CNL113337/src +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" gen_links $DIR $FILES -DIR=../SCCP_CNL113341/src +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src FILES="SCCP_Emulation.ttcn SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" gen_links $DIR $FILES -gen_link SCCP_Mapping.ttcnpp SCCP_Mapping.ttcn DIR=$BASEDIR/titan.ProtocolModules.BSSMAP_v11.2.0/src FILES="BSSAP_Types.ttcn" diff --git a/selftest/regen_makefile.sh b/selftest/regen_makefile.sh index d79b921be..2503fca05 100755 --- a/selftest/regen_makefile.sh +++ b/selftest/regen_makefile.sh @@ -4,6 +4,6 @@ MAIN=Selftest.ttcn FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc" -export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DUSE_MTP3_DISTRIBUTOR" ../regen-makefile.sh $MAIN $FILES