blob: a38a93f1a8d701c39ca4704913b6b08dc7eb19ef [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2018 Ericsson Telecom AB
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
// File: SGsAP_Types.ttcn
// Rev: <RnXnn>
// Prodnr: CNL 113 834
// Contact: http://ttcn.ericsson.se
// Reference: 3GPP TS 29.118 v13.2.0
//
module SGsAP_Types
{
import from General_Types all;
external function enc_PDU_SGsAP(in PDU_SGsAP pdu) return octetstring
with { extension "prototype(convert)" extension "encode(RAW)" }
external function dec_PDU_SGsAP(in octetstring stream) return PDU_SGsAP
with { extension "prototype(convert)" extension "decode(RAW)" }
external function enc_PDU_SGsAP_fast(in PDU_SGsAP pdu, out octetstring stream)
with { extension "prototype(fast) encode(RAW)" };
external function dec_PDU_SGsAP_backtrack(in octetstring stream, out PDU_SGsAP pdu) return integer
with { extension "prototype(backtrack) decode(RAW)" };
// 9.4.1
type record CLI_Value
{
BIT4 numberingPlanId,
BIT3 typeOfNumber,
BIT1 extensionBit,
BIT2 screeningIndicator optional,
BIT3 spare optional, //'000'
BIT2 presentationIndicator optional,
BIT1 extensionBit2 optional, //'1'B
hexstring digits optional
} with {
variant (screeningIndicator,spare,presentationIndicator,extensionBit2)"PRESENCE(extensionBit = '0'B)";
variant "PADDING(yes)";
variant "PADDING_PATTERN('1111'B)"
}
type record CLI
{
BIT8 iEI,
LIN1 lengthIndicator,
CLI_Value cLI
} with {
variant "PRESENCE (iEI = '00011100'B)";
variant (lengthIndicator) "LENGTHTO (cLI)"
};
// 9.4.2
type record EPS_LocationUpdateType
{
BIT8 iEI,
LIN1 lengthIndicator,
EPS_location_update_type locationUpdateType
} with {
variant "PRESENCE (iEI = '00001010'B)";
variant (lengthIndicator) "LENGTHTO (locationUpdateType)"
};
type enumerated EPS_location_update_type
{
unused_value_0 (0),
IMSI_attach (1),
Normal_location_update (2),
unused_value_3 (3)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.3
type record ErroneousMessage
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring erroneousMessage
} with {
variant "PRESENCE (iEI = '00011011'B)";
variant (lengthIndicator) "LENGTHTO (erroneousMessage)"
};
// 9.4.3a
type record ECGI
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
HEX1 spare,
integer eCI
} with {
variant (spare,eCI) "FIELDORDER(msb)";
variant(eCI) "FIELDLENGTH(28)";
variant (eCI) "BYTEORDER(last)";
};
type record E_UTRAN_CellGlobalIdentity //ECGI
{
BIT8 iEI,
LIN1 lengthIndicator,
ECGI eCGI
} with {
variant "PRESENCE (iEI = '00100100'B)";
variant (lengthIndicator) "LENGTHTO (eCGI)"
};
// 9.4.4
type record GlobalCN_IdValue
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
integer cN_ID
} with {
variant(cN_ID) "FIELDLENGTH(16)";
variant (cN_ID) "BYTEORDER(last)";
};
type record GlobalCN_Id
{
BIT8 iEI,
LIN1 lengthIndicator,
GlobalCN_IdValue iD
} with {
variant "PRESENCE (iEI = '00001011'B)";
variant (lengthIndicator) "LENGTHTO (iD)"
};
// 9.4.5
type record IMEI_SV
{
BIT8 iEI,
LIN1 lengthIndicator,
hexstring iMEI_SV length(16)
} with {
variant "PRESENCE (iEI = '00010101'B)";
variant (lengthIndicator) "LENGTHTO (iMEI_SV)"
};
// 9.4.6
type record IMSI_Value
{
BIT3 field1, //'001'B
BIT1 parity,
hexstring digits,
BIT4 fillerDigit optional
} with {
variant (fillerDigit) "PRESENCE (parity = '0'B)";
}
type record IMSI
{
BIT8 iEI,
LIN1 lengthIndicator,
IMSI_Value iMSI
} with {
variant "PRESENCE (iEI = '00000001'B)";
variant (lengthIndicator) "LENGTHTO (iMSI)"
};
type record IMSI_LV
{
LIN1 lengthIndicator,
IMSI_Value iMSI
} with {
variant (lengthIndicator) "LENGTHTO (iMSI)"
};
// 9.4.7
type record IMSI_DetachFromEPS_ServiceType
{
BIT8 iEI,
LIN1 lengthIndicator,
IMSI_detachFromEPS_serviceType serviceType
} with {
variant "PRESENCE (iEI = '00010000'B)";
variant (lengthIndicator) "LENGTHTO (serviceType)"
};
type enumerated IMSI_detachFromEPS_serviceType
{
reserved_value_0 (0),
network_initiated (1),
UE_initiated (2),
EPS_services_not_allowed (3),
reserved_value_4 (4)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.8
type record IMSI_DetachFromNonEPS_ServiceType
{
BIT8 iEI,
LIN1 lengthIndicator,
IMSI_detachFromNonEPS_serviceType serviceType
} with {
variant "PRESENCE (iEI = '00010001'B)";
variant (lengthIndicator) "LENGTHTO (serviceType)"
};
type enumerated IMSI_detachFromNonEPS_serviceType
{
reserved_value_0 (0),
explicit_UE_initiated (1),
combined_UE_initiated (2),
implicit_network_initiated (3),
reserved_value_4 (4)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.9
type record LCS_ClientIdentity
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring clientId
} with {
variant "PRESENCE (iEI = '00011101'B)";
variant (lengthIndicator) "LENGTHTO (clientId)"
};
// 9.4.10
type record LCS_Indicator
{
BIT8 iEI,
LIN1 lengthIndicator,
LCS_indicator indicator
} with {
variant "PRESENCE (iEI = '00011110'B)";
variant (lengthIndicator) "LENGTHTO (indicator)"
};
type enumerated LCS_indicator
{
unspecified_value_0 (0),
MT_LR (1),
unspecified_value_2 (2)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.11
type record LocationAreaIdValue
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac
}
type record LocationAreaId
{
BIT8 iEI,
LIN1 lengthIndicator,
LocationAreaIdValue locationAreaId
} with {
variant "PRESENCE (iEI = '00000100'B)";
variant (lengthIndicator) "LENGTHTO (locationAreaId)"
};
// 9.4.12
type record MM_Information
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring information
} with {
variant "PRESENCE (iEI = '00010111'B)";
variant (lengthIndicator) "LENGTHTO (information)"
};
// 9.4.13
type record MME_Name
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring name
} with {
variant "PRESENCE (iEI = '00001001'B)";
variant (lengthIndicator) "LENGTHTO (name)"
};
// 9.4.14
type record MobileIdentityValue
{
BIT3 typeOfIdentity,
OddEvenInd_Identity_SGsAP iD
} with {
variant (iD) "CROSSTAG
(
imei, typeOfIdentity ='010'B;
imsi, typeOfIdentity ='001'B;
imei_sv, typeOfIdentity ='011'B;
tmsi_ptmsi, typeOfIdentity ='100'B;
tmgi_and_MBMS_SessionID, typeOfIdentity ='101'B;
no_identity, typeOfIdentity ='000'B;
)"
};
type union OddEvenInd_Identity_SGsAP
{
IMSI_SGsAP imsi,
IMEI_SGsAP imei,
IMEI_SV_SGsAP imei_sv,
TMSI_PTMSI_SGsAP tmsi_ptmsi,
TMGI_and_MBMS_SessionID_SGsAP tmgi_and_MBMS_SessionID,
No_Identity_SGsAP no_identity
};
type record IMSI_SGsAP
{
BIT1 oddevenIndicator, // '1'B or '0'B
hexstring digits length(5..15),
BIT4 fillerDigit optional // B'1111, fillerDigit is present if oddevenIndicator=0
} with{
variant (fillerDigit) "PRESENCE (oddevenIndicator = '0'B) ";
};
type record IMEI_SGsAP
{
BIT1 oddevenIndicator, // '1'B
hexstring digits length(15)
};
type record TMSI_PTMSI_SGsAP
{
BIT1 oddevenIndicator, // '0'B
BIT4 fillerDigit, // B'1111
OCT4 octets
};
type record IMEI_SV_SGsAP
{
BIT1 oddevenIndicator, // '0'B
hexstring digits length(16),
BIT4 fillerDigit // filler '1111'B
};
type record TMGI_and_MBMS_SessionID_SGsAP
{
BIT1 oddevenIndicator,
BIT1 mCC_MNCIndicator, // 1: present
BIT1 mBMS_SessionIdentityIndicator, // 1: present
BIT2 spare,
OCT3 mBMS_ServiceID,
HEX1 mccDigit1 optional,
HEX1 mccDigit2 optional,
HEX1 mccDigit3 optional,
HEX1 mncDigit3 optional,
HEX1 mncDigit1 optional,
HEX1 mncDigit2 optional,
OCT1 mBMS_SessionIdentity optional
} with {
variant (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2) "PRESENCE(mCC_MNCIndicator = '1'B)";
variant (mBMS_SessionIdentity) "PRESENCE(mBMS_SessionIdentityIndicator = '1'B)";
};
type record No_Identity_SGsAP
{
BIT1 oddevenIndicator, // '0'B (guessed)
hexstring fillerDigits length(5) // length to be "3" if the GMM identification procedure is used
};
type record MobileIdentity
{
BIT8 iEI,
LIN1 lengthIndicator,
MobileIdentityValue iD
} with {
variant "PRESENCE (iEI = '00001110'B)";
variant (lengthIndicator) "LENGTHTO (iD)"
};
// 9.4.14a
type record MobileStationClassmark2_oct3
{
BIT3 rf_PowerCapability, // '000'B class1
// '001'B class2
// '010'B class3
// '011'B class4
// '100'B class5
// '111'B RF Power capability is irrelevant in this information element
BIT1 a5_1, // '0'B encryption algorithm A5/1 available
// '1'B encryption algorithm A5/1 not available
BIT1 esind,
// '0'B "Controlled Early Classmark Sending" option is not implemented in the MS
// '1'B "Controlled Early Classmark Sending" option is implemented in the MS
BIT2 revisionLevel,
// '00'B reserved for GSM phase 1
// '01'B used by GSM phase2 MSs
// '10'B used by mobile stations supporting R99 or later versions of the protocol
// '11'B reserved for future use
BIT1 spare1_1 // '0'B
}
type record MobileStationClassmark2_oct4
{
BIT1 fc, // '0'B The MS does not support the E-GSM or R-GSM band
// '1'B The MS does support the E-GSM or R-GSM
BIT1 vgcs,// '0'B no VGCS capability or no notifications wanted
// '1'B VGCS capability and notifications wanted
BIT1 vbs, // '0'B no VBS capability or no notifications wanted
// '1'B VBS capability and notifications wanted
BIT1 sm_Capability, // '0'B Mobile station does not support mobile terminated point to point SMS
// '1'B Mobile station supports mobile terminated point to point SMS
BIT2 ss_ScreenIndicator,
// '00'B default value of phase1
// '01'B capability of handling of notation ellipsis and phase 2 error handling
// '10'B for future use
// '11'B for use future
BIT1 ps_Capability, // '0'B PS capability not present
// '1'B PS capability present
BIT1 spare2_1 // '0'B
}
type record MobileStationClassmark2_oct5
{
BIT1 a5_2, // '0'B encryption algorithm A5/2 not available
// '1'B Not used. This value was allocated in earlier versions of the protocol
BIT1 a5_3, // '0'B encryption algorithm A5/3 not available
// '1'B encryption algorithm A5/3 available
BIT1 cmsp, // CM Service Prompt
// '0'B "Network initiated MO CM connection request" not supported
// '1'B "Network initiated MO CM connection request" supported for at least one CM protocol
BIT1 solsa,// '0'B The ME does not support SoLSA
// '1'B The ME supports SoLSA
BIT1 ucs2, // '0'B the ME has a preference for the default alphabet
// '1'B the ME has no preference between the use of the default alphabet and the use of UCS2
BIT1 lcsva_cap,// '0'B location request notification via CS domain not supported
// '1'B location request notification via CS domain supported
BIT1 spare5_7, // '0'B
BIT1 cm3 // '0'B The MS does not support any options that are indicated in CM3
// '1'B The MS supports options that are indicated in classmark 3 IE
}
type record MobileStationClassmark2Value
{
MobileStationClassmark2_oct3 mobileStationClassmark2_oct3,
MobileStationClassmark2_oct4 mobileStationClassmark2_oct4,
MobileStationClassmark2_oct5 mobileStationClassmark2_oct5
}
type record MobileStationClassmark2
{
BIT8 iEI,
LIN1 lengthIndicator,
MobileStationClassmark2Value mobileStationClassmark2
} with {
variant "PRESENCE (iEI = '00100010'B)";
variant (lengthIndicator) "LENGTHTO (mobileStationClassmark2)"
};
// 9.4.15
type record NAS_MessageContainer
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring nAS_MessageContainer // use enc/dec from MobileL3
} with {
variant "PRESENCE (iEI = '00010110'B)";
variant (lengthIndicator) "LENGTHTO (nAS_MessageContainer)"
};
// 9.4.16
type record RejectCause
{
BIT8 iEI,
LIN1 lengthIndicator,
Reject_Cause cause
} with {
variant "PRESENCE (iEI = '00001111'B)";
variant (lengthIndicator) "LENGTHTO (cause)"
};
type enumerated Reject_Cause
{
IMSI_unknown_in_HLR (2),
Illegal_MS (3),
IMSI_unknown_in_VLR (4),
IMEI_not_accepted (5),
Illegal_ME (6),
PLMN_not_allowed (11),
Location_Area_not_allowed (12),
Roaming_not_allowed_in_this_location_area (13),
No_Suitable_Cells_In_Location_Area (15),
Network_failure (17),
MAC_failure (20),
Synch_failure (21),
Congestion (22),
GSM_authentication_unacceptable (23),
Not_authorized_for_this_CSG (25),
Service_option_not_supported (32),
Requested_service_option_not_subscribed (33),
Service_option_temporarily_out_of_order (34),
Call_cannot_be_identified (38),
retry_upon_entry_into_new_cell_48 (48),
retry_upon_entry_into_new_cell_49 (49),
retry_upon_entry_into_new_cell_50 (50),
retry_upon_entry_into_new_cell_51 (51),
retry_upon_entry_into_new_cell_52 (52),
retry_upon_entry_into_new_cell_53 (53),
retry_upon_entry_into_new_cell_54 (54),
retry_upon_entry_into_new_cell_55 (55),
retry_upon_entry_into_new_cell_56 (56),
retry_upon_entry_into_new_cell_57 (57),
retry_upon_entry_into_new_cell_58 (58),
retry_upon_entry_into_new_cell_59 (59),
retry_upon_entry_into_new_cell_60 (60),
retry_upon_entry_into_new_cell_61 (61),
retry_upon_entry_into_new_cell_62 (62),
retry_upon_entry_into_new_cell_63 (63),
Semantically_incorrect_message (95),
Invalid_mandatory_information (96),
Message_type_non_existent_or_not_implemented (97),
Message_type_not_compatible_with_protocol_state (98),
IE_non_existent_or_not_implemented (99),
Conditional_IE_error (100),
Message_not_compatible_with_protocol_state (101),
Protocol_error_unspecified (111)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.17
type record ServiceIndicator
{
BIT8 iEI,
LIN1 lengthIndicator,
Service_Indicator indicator
} with {
variant "PRESENCE (iEI = '00100000'B)";
variant (lengthIndicator) "LENGTHTO (indicator)"
};
type enumerated Service_Indicator
{
unused_value_0 (0),
CS_call_indicator (1),
SMS_indicator (2),
unused_value_3 (3)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.18
type record SGsCause
{
BIT8 iEI,
LIN1 lengthIndicator,
SGs_Cause cause
} with {
variant "PRESENCE (iEI = '00001000'B)";
variant (lengthIndicator) "LENGTHTO (cause)"
};
type enumerated SGs_Cause
{
unspecified_value_0 (0),
IMSI_detached_for_EPS_services (1),
IMSI_detached_for_EPS_nonEPS_services (2),
IMSI_unknown (3),
IMSI_detached_for_nonEPS_services (4),
IMSI_implicitly_detached_for_nonEPS_services (5),
UE_unreachable (6),
message_not_compatible (7),
missing_mandatory_IE (8),
invalid_mandatory_information (9),
conditional_information_element_error (10),
semantically_incorrect_message (11),
message_unknown (12),
user_rejected_mobile_terminating_CS_fallback_call (13),
unspecified_value_14 (14)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.19
type record SS_Code
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring code
} with {
variant "PRESENCE (iEI = '00011111'B)";
variant (lengthIndicator) "LENGTHTO (code)"
};
// 9.4.20
type record TMSI
{
BIT8 iEI,
LIN1 lengthIndicator,
OCT4 tMSI
} with {
variant "PRESENCE (iEI = '00000011'B)";
variant (lengthIndicator) "LENGTHTO (tMSI)"
};
// 9.4.21
type record TMSI_StatusValue
{
BIT1 tmsiFlag,
BIT7 spare // '0000000'B
}
type record TMSI_Status
{
BIT8 iEI,
LIN1 lengthIndicator,
TMSI_StatusValue status
} with {
variant "PRESENCE (iEI = '00000111'B)";
variant (lengthIndicator) "LENGTHTO (status)"
};
// 9.4.21a
type record TrackingAreaIdentityValue
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 tAC
}
type record TrackingAreaIdentity
{
BIT8 iEI,
LIN1 lengthIndicator,
TrackingAreaIdentityValue iD
} with {
variant "PRESENCE (iEI = '00100011'B)";
variant (lengthIndicator) "LENGTHTO (iD)"
};
// 9.4.21b
type record UE_TimeZone
{
BIT8 iEI,
LIN1 lengthIndicator,
BIT8 uE_TimeZone
} with {
variant "PRESENCE (iEI = '00100001'B)";
variant (lengthIndicator) "LENGTHTO (uE_TimeZone)"
};
// 9.4.21c
type record UE_EMM_Mode
{
BIT8 iEI,
LIN1 lengthIndicator,
UE_EMM_mode mode
} with {
variant "PRESENCE (iEI = '00100101'B)";
variant (lengthIndicator) "LENGTHTO (mode)"
};
type enumerated UE_EMM_mode
{
EMM_IDLE (0),
EMM_CONNECTED (1),
reserved_value_2 (2)
} with { variant "FIELDLENGTH(8)"; }
// 9.4.22
type record VLR_Name
{
BIT8 iEI,
LIN1 lengthIndicator,
octetstring name
} with {
variant "PRESENCE (iEI = '00000010'B)";
variant (lengthIndicator) "LENGTHTO (name)"
};
// 9.4.23
type record ChannelNeededValue
{
BIT2 firstChannel,
BIT2 secondChannel,
BIT4 channelNeededIEI //'1110'O according to 44.018 Annex K2
}
type record ChannelNeeded
{
BIT8 iEI,
LIN1 lengthIndicator,
ChannelNeededValue channelNeeded
} with {
variant "PRESENCE (iEI = '00000101'B)";
variant (lengthIndicator) "LENGTHTO (channelNeeded)"
};
// 9.4.24
type record EMLPP_PriorityValue
{
BIT3 callPriority,
BIT5 spare
}
type record EMLPP_Priority
{
BIT8 iEI,
LIN1 lengthIndicator,
EMLPP_PriorityValue priority
} with {
variant "PRESENCE (iEI = '00000110'B)";
variant (lengthIndicator) "LENGTHTO (priority)"
};
// 9.4.25
type record AdditionalPagingIndicators
{
BIT8 iEI,
LIN1 lengthIndicator,
BIT7 spare,
BIT1 cSRI // CS restoration indicator (CSRI): 0 not set: 1 set
} with {
variant "PRESENCE (iEI = '00100110'B)";
variant (spare,cSRI) "FIELDORDER(msb)";
variant (lengthIndicator) "LENGTHTO (spare, cSRI)"
};
// 9.4.26
// Defined in 18.4.28 TS29.018 v.13.2.0
type record TMSI_basedNRI
{
BIT8 iEI,
LIN1 lengthIndicator,
NetworkResourceIdentifierContainer nRI_containerIE
} with {
variant "PRESENCE (iEI = '00100111'B)";
variant (lengthIndicator) "LENGTHTO (nRI_containerIE)"
};
// Defined in 24.008 v.13.4.0
type record NetworkResourceIdentifierContainer
{
BIT10 nRI_containerValue,
BIT6 spare // '000000'B
} with {
variant (nRI_containerValue) "BITORDER(msb)";
variant (nRI_containerValue,spare) "FIELDORDER(msb)"
};
// 9.4.27
type record CS_DomainOperator
{
BIT8 iEI,
LIN1 lengthIndicator,
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2
} with {
variant "PRESENCE (iEI = '00011110'B)"; // TODO FIXME: dummy value, standard does not define it
variant (lengthIndicator) "LENGTHTO (mccDigit1, mccDigit2, mccDigit3, mncDigit3, mncDigit1, mncDigit2)"
};
// 8.1
type record SGsAP_ALERT_ACK
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00001110'B)";
}
// 8.2
type record SGsAP_ALERT_REJECT
{
BIT8 messageType,
IMSI iMSI,
SGsCause sGsCause
} with {
variant "PRESENCE (messageType = '00001111'B)";
}
// 8.3
type record SGsAP_ALERT_REQUEST
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00001101'B)";
}
// 8.4
type record SGsAP_DOWNLINK_UNITDATA
{
BIT8 messageType,
IMSI iMSI,
NAS_MessageContainer nAS_MessageContainer
} with {
variant "PRESENCE (messageType = '00000111'B)";
}
// 8.5
type record SGsAP_EPS_DETACH_ACK
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00010010'B)";
}
// 8.6
type record SGsAP_EPS_DETACH_INDICATION
{
BIT8 messageType,
IMSI iMSI,
MME_Name mME_Name,
IMSI_DetachFromEPS_ServiceType iMSI_DetachFromEPS_ServiceType
} with {
variant "PRESENCE (messageType = '00010001'B)";
}
// 8.7
type record SGsAP_IMSI_DETACH_ACK
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00010100'B)";
}
// 8.8
type record SGsAP_IMSI_DETACH_INDICATION
{
BIT8 messageType,
IMSI iMSI,
MME_Name mME_Name,
IMSI_DetachFromNonEPS_ServiceType iMSI_DetachFromNonEPS_ServiceType
} with {
variant "PRESENCE (messageType = '00010011'B)";
}
// 8.9
type record SGsAP_LOCATION_UPDATE_ACCEPT
{
BIT8 messageType,
IMSI iMSI,
LocationAreaId locationAreaId,
MobileIdentity newTMSIorIMSI optional
} with {
variant "PRESENCE (messageType = '00001010'B)";
}
// 8.10
type record SGsAP_LOCATION_UPDATE_REJECT
{
BIT8 messageType,
IMSI iMSI,
RejectCause rejectCause,
LocationAreaId locationAreaId optional
} with {
variant "PRESENCE (messageType = '00001011'B)";
}
// 8.11
type record SGsAP_LOCATION_UPDATE_REQUEST
{
BIT8 messageType,
IMSI iMSI,
MME_Name mME_Name,
EPS_LocationUpdateType ePS_LocationUpdateType,
LocationAreaId newLocationAreaId,
LocationAreaId oldLocationAreaId optional,
TMSI_Status tMSI_Status optional,
IMEI_SV iMEI_SV optional,
TrackingAreaIdentity tAI optional,
E_UTRAN_CellGlobalIdentity eCGI optional,
TMSI_basedNRI tMSI_NRI optional,
CS_DomainOperator cS_DomainOperator optional
} with {
variant "PRESENCE (messageType = '00001001'B)";
}
// 8.12
type record SGsAP_MM_INFORMATION_REQUEST
{
BIT8 messageType,
IMSI iMSI,
MM_Information mM_Information
} with {
variant "PRESENCE (messageType = '00011010'B)";
}
// 8.13
type record SGsAP_PAGING_REJECT
{
BIT8 messageType,
IMSI iMSI,
SGsCause sGsCause
} with {
variant "PRESENCE (messageType = '00000010'B)";
}
// 8.14
type record SGsAP_PAGING_REQUEST
{
BIT8 messageType,
IMSI iMSI,
VLR_Name vLR_Name,
ServiceIndicator serviceIndicator,
TMSI tMSI optional,
CLI cLI optional,
LocationAreaId locationAreaId optional,
GlobalCN_Id globalCN_Id optional,
SS_Code sS_Code optional,
LCS_Indicator lCS_Indicator optional,
LCS_ClientIdentity lCS_ClientIdentity optional,
ChannelNeeded channelNeeded optional,
EMLPP_Priority eMLPP_Priority optional,
AdditionalPagingIndicators additionalPagingIndicator optional
} with {
variant "PRESENCE (messageType = '00000001'B)";
}
// 8.15
type record SGsAP_RESET_ACK
{
BIT8 messageType,
MME_Name mME_Name optional,
VLR_Name vLR_Name optional
} with {
variant "PRESENCE (messageType = '00010110'B)";
}
// 8.16
type record SGsAP_RESET_INDICATION
{
BIT8 messageType,
MME_Name mME_Name optional,
VLR_Name vLR_Name optional
} with {
variant "PRESENCE (messageType = '00010101'B)";
}
// 8.17
type record SGsAP_SERVICE_REQUEST
{
BIT8 messageType,
IMSI iMSI,
ServiceIndicator serviceIndicator,
IMEI_SV iMEI_SV optional,
UE_TimeZone uE_TimeZone optional,
MobileStationClassmark2 mobileStationClassmark2 optional,
TrackingAreaIdentity tAI optional,
E_UTRAN_CellGlobalIdentity eCGI optional,
UE_EMM_Mode uE_EMM_Mode optional
} with {
variant "PRESENCE (messageType = '00000110'B)";
}
// 8.18
type record SGsAP_STATUS
{
BIT8 messageType,
IMSI iMSI optional,
SGsCause sGsCause,
ErroneousMessage erroneousMessage
} with {
variant "PRESENCE (messageType = '00011101'B)";
}
// 8.19
type record SGsAP_TMSI_REALLOCATION_COMPLETE
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00001100'B)";
}
// 8.20
type record SGsAP_UE_ACTIVITY_INDICATION
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00010000'B)";
}
// 8.21
type record SGsAP_UE_UNREACHABLE
{
BIT8 messageType,
IMSI iMSI,
SGsCause sGsCause
} with {
variant "PRESENCE (messageType = '00011111'B)";
}
// 8.22
type record SGsAP_UPLINK_UNITDATA
{
BIT8 messageType,
IMSI iMSI,
NAS_MessageContainer nAS_MessageContainer,
IMEI_SV iMEI_SV optional,
UE_TimeZone uE_TimeZone optional,
MobileStationClassmark2 mobileStationClassmark2 optional,
TrackingAreaIdentity tAI optional,
E_UTRAN_CellGlobalIdentity eCGI optional
} with {
variant "PRESENCE (messageType = '00001000'B)";
}
// 8.23
type record SGsAP_RELEASE_REQUEST
{
BIT8 messageType,
IMSI iMSI,
SGsCause sGsCause optional
} with {
variant "PRESENCE (messageType = '00011011'B)";
}
// 8.24
type record SGsAP_SERVICE_ABORT_REQUEST
{
BIT8 messageType,
IMSI iMSI
} with {
variant "PRESENCE (messageType = '00010111'B)";
}
// 8.25
type record SGsAP_MO_CSFB_INDICATION
{
BIT8 messageType,
IMSI iMSI,
TrackingAreaIdentity tAI optional,
E_UTRAN_CellGlobalIdentity eCGI optional
} with {
variant "PRESENCE (messageType = '00011000'B)";
}
type union PDU_SGsAP
{
SGsAP_ALERT_ACK sGsAP_ALERT_ACK,
SGsAP_ALERT_REJECT sGsAP_ALERT_REJECT,
SGsAP_ALERT_REQUEST sGsAP_ALERT_REQUEST,
SGsAP_DOWNLINK_UNITDATA sGsAP_DOWNLINK_UNITDATA,
SGsAP_EPS_DETACH_ACK sGsAP_EPS_DETACH_ACK,
SGsAP_EPS_DETACH_INDICATION sGsAP_EPS_DETACH_INDICATION,
SGsAP_IMSI_DETACH_ACK sGsAP_IMSI_DETACH_ACK,
SGsAP_IMSI_DETACH_INDICATION sGsAP_IMSI_DETACH_INDICATION,
SGsAP_LOCATION_UPDATE_ACCEPT sGsAP_LOCATION_UPDATE_ACCEPT,
SGsAP_LOCATION_UPDATE_REJECT sGsAP_LOCATION_UPDATE_REJECT,
SGsAP_LOCATION_UPDATE_REQUEST sGsAP_LOCATION_UPDATE_REQUEST,
SGsAP_MM_INFORMATION_REQUEST sGsAP_MM_INFORMATION_REQUEST,
SGsAP_PAGING_REJECT sGsAP_PAGING_REJECT,
SGsAP_PAGING_REQUEST sGsAP_PAGING_REQUEST,
SGsAP_RESET_ACK sGsAP_RESET_ACK,
SGsAP_RESET_INDICATION sGsAP_RESET_INDICATION,
SGsAP_SERVICE_REQUEST sGsAP_SERVICE_REQUEST,
SGsAP_STATUS sGsAP_STATUS,
SGsAP_TMSI_REALLOCATION_COMPLETE sGsAP_TMSI_REALLOCATION_COMPLETE,
SGsAP_UE_ACTIVITY_INDICATION sGsAP_UE_ACTIVITY_INDICATION,
SGsAP_UE_UNREACHABLE sGsAP_UE_UNREACHABLE,
SGsAP_UPLINK_UNITDATA sGsAP_UPLINK_UNITDATA,
SGsAP_RELEASE_REQUEST sGsAP_RELEASE_REQUEST,
SGsAP_SERVICE_ABORT_REQUEST sGsAP_SERVICE_ABORT_REQUEST,
SGsAP_MO_CSFB_INDICATION sGsAP_MO_CSFB_INDICATION
} with { variant ""}
} with { encode "RAW"}