summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-07-24 13:21:35 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-24 13:21:35 +0200
commita814f263cc46d88736ef7cdb6466d78657855ca8 (patch)
tree68789e43d6a485e64cef3498488d69fe90c072a3
parent336959fc3c0869d0502a8e5df600e470010d5f6f (diff)
Import BSSAP+, BSSGP, BSSMAP, GTP, GTPv2, LLC and MobileL3
this has been kindly provided by Ericsson and will soon (September-ish) be released officially as FOSS on the eclipse.org git server.
-rw-r--r--BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_FS.pdfbin0 -> 37979 bytes
-rw-r--r--BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_PRI.pdfbin0 -> 27070 bytes
-rw-r--r--BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_UG.pdfbin0 -> 43885 bytes
-rw-r--r--BSSAPP_v7.3.0_CNL113580_LATEST/src/BSSAPp_Types.ttcn922
-rw-r--r--BSSGP_v13.0.0_CNL113833_LATEST/BSSGP_v13.0.0_CNL113833.tpd51
-rw-r--r--BSSGP_v13.0.0_CNL113833_LATEST/doc/documentation_note.txt13
-rw-r--r--BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_EncDec.cc145
-rw-r--r--BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_Types.ttcn4419
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/BSSMAP_v11.2.0_CNL113761.tpd59
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_FS.pdfbin0 -> 160268 bytes
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdfbin0 -> 141909 bytes
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_UG.pdfbin0 -> 182549 bytes
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSAP_Types.ttcn2984
-rw-r--r--BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSMAP_V11.2.0.grp27
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/GTP_v13.5.0_CNL113843.tpd47
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_Descr.docbin0 -> 87040 bytes
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_PRI.docbin0 -> 60416 bytes
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/src/GTPC_EncDec.cc216
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/src/GTPC_Types.ttcn3958
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/src/GTPU_EncDec.cc119
-rw-r--r--GTP_v13.5.0_CNL113843_LATEST/src/GTPU_Types.ttcn189
-rw-r--r--GTPv2_v13.7.0_CNL113846_LATEST/GTPv2_v13.7.0_CNL113846.tpd43
-rw-r--r--GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_Descr.docbin0 -> 86016 bytes
-rw-r--r--GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_PRI.docbin0 -> 62976 bytes
-rw-r--r--GTPv2_v13.7.0_CNL113846_LATEST/src/GTPv2_Types.ttcn4801
-rw-r--r--LLC_v7.1.0_CNL113577_LATEST/doc/LLC_v7.1.0_CNL113577_PRI.pdfbin0 -> 27025 bytes
-rw-r--r--LLC_v7.1.0_CNL113577_LATEST/doc/LLC_v7.1.0_CNL113577_UG.pdfbin0 -> 38179 bytes
-rw-r--r--LLC_v7.1.0_CNL113577_LATEST/src/LLC_EncDec.cc318
-rw-r--r--LLC_v7.1.0_CNL113577_LATEST/src/LLC_Types.ttcn329
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/doc/MobileL3_v13.4_Descr.docbin0 -> 90112 bytes
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/doc/MobileL3_v13.4_PRI.docbin0 -> 68608 bytes
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_CC_Types.ttcn1649
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_CommonIE_Types.ttcn680
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn2532
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_MM_Types.ttcn572
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_RRM_Types.ttcn1834
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_SMS_Types.ttcn765
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_SS_Types.ttcn102
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_Types.ttcn403
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_v13.4.0_ProtocolModule.grp38
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_DataTypes.asn502
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_EncDec.cc438
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_Errors.asn57
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_Operations.asn313
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_PDU_Defs.asn136
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_Protocol.asn67
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/SS_Types.ttcn40
47 files changed, 28768 insertions, 0 deletions
diff --git a/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf
new file mode 100644
index 00000000..1cb938c3
--- /dev/null
+++ b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf
Binary files differ
diff --git a/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_PRI.pdf b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_PRI.pdf
new file mode 100644
index 00000000..b083d179
--- /dev/null
+++ b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_PRI.pdf
Binary files differ
diff --git a/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf
new file mode 100644
index 00000000..16fb1a68
--- /dev/null
+++ b/BSSAPP_v7.3.0_CNL113580_LATEST/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf
Binary files differ
diff --git a/BSSAPP_v7.3.0_CNL113580_LATEST/src/BSSAPp_Types.ttcn b/BSSAPP_v7.3.0_CNL113580_LATEST/src/BSSAPp_Types.ttcn
new file mode 100644
index 00000000..e019f6ab
--- /dev/null
+++ b/BSSAPP_v7.3.0_CNL113580_LATEST/src/BSSAPp_Types.ttcn
@@ -0,0 +1,922 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: BSSAPp_Types.ttcn
+// Rev: R1A01
+// Prodnr: CNL 113 580
+// Updated: 2008-01-24
+// Contact: http://ttcn.ericsson.se
+// Reference: BSSAP+, 3GPP TS 29.018 v7.3.0 (2006-12)
+
+module BSSAPp_Types { // beginning of module
+
+// This module contains the BSSAP+ type definitions based on
+// 29.018 v7.3.0 (2006-12)
+// with attributes for RAW encoding/decoding.
+
+import from General_Types all;
+
+external function enc_PDU_BSSAPp(in PDU_BSSAPp pdu) return octetstring
+with { extension "prototype(convert)"
+ extension "encode(RAW)"
+ }
+
+external function dec_PDU_BSSAPp(in octetstring stream) return PDU_BSSAPp
+with { extension "prototype(convert)"
+ extension "decode(RAW)"
+ }
+
+//====================================================================
+// Message type
+// Reference: 29.018 18.2
+//====================================================================
+
+type BIT8 ST_BSSAPp_Msg_type with { variant "" };
+
+//====================================================================
+// IMSI
+// Reference: 29.018 18.4.10
+//====================================================================
+
+type hexstring IMSIDigits length(1..15) with { variant "HEXORDER(low)" };
+
+type record STR_BSSAPp_IMSI {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT3 first_3_BIT, //this is always '001'B
+ BIT1 parity, // 0 - Even, 1 - Odd
+ IMSIDigits iMSIdigits,
+ BIT4 fillerDigit optional // B'1111, fillerDigit is present
+ // if oddevenIndicator=0
+}
+with {
+ variant (lengthIndicator)
+ "LENGTHTO (first_3_BIT, parity, iMSIdigits, fillerDigit)";
+ variant (fillerDigit) "PRESENCE (parity = '0'B) ";
+};
+
+
+//====================================================================
+// Gs Cause
+// Reference: 29.018 18.4.7
+//====================================================================
+
+type record STR_BSSAPp_Gs_Cause {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT1 gsCauseValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (gsCauseValue)";
+};
+
+//====================================================================
+// VLR Number
+// Reference: 29.018 18.4.26
+//====================================================================
+
+type record STR_BSSAPp_VLR_Number {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 first_8_BIT, //this is always '10010001'B
+ IMSIDigits vLRdigits
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (first_8_BIT, vLRdigits)";
+};
+
+//====================================================================
+// Downlink Tunnel Payload Control and Info
+// Reference: 29.018 18.4.3
+//====================================================================
+
+
+type record STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT2 tunnelPriority,
+ BIT1 e,
+ BIT4 protocolDiscriminator,
+ BIT1 spare,
+ octetstring tunnelPayload
+}
+with {
+ variant (lengthIndicator)
+ "LENGTHTO (tunnelPriority, e, protocolDiscriminator, spare, tunnelPayload)";
+};
+
+//====================================================================
+// SGSN Number
+// Reference: 29.018 18.4.22
+//====================================================================
+
+type STR_BSSAPp_VLR_Number STR_BSSAPp_SGSN_Number with { variant "" };
+
+//====================================================================
+// IMSI Detach from GPRS Service Type
+// Reference: 29.018 18.4.11
+//====================================================================
+
+type record STR_BSSAPp_IMSI_Detach_from_GPRS_service_type {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 iMSIDetachFromGPRSServiceTypeValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (iMSIDetachFromGPRSServiceTypeValue)";
+};
+
+//====================================================================
+// Cell Global Identity
+// Reference: 29.018 18.4.1
+//====================================================================
+
+type record STR_BSSAPp_Cell_Global_Identity {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ octetstring cellGlobalIdentityValue length(8)
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (cellGlobalIdentityValue)";
+};
+
+//====================================================================
+// Service Area Identification
+// Reference: 29.018 18.4.21b
+//====================================================================
+
+type record STR_BSSAPp_Service_Area_Identification {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ octetstring serviceAreaIdentificationValue length(7)
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (serviceAreaIdentificationValue)";
+};
+
+//====================================================================
+// IMSI Detach from Non-GPRS Service Type
+// Reference: 29.018 18.4.12
+//====================================================================
+
+type record STR_BSSAPp_IMSI_detach_from_non_GPRS_service_type {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 iMSIDetachFromNonGPRSServiceTypeValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (iMSIDetachFromNonGPRSServiceTypeValue)";
+};
+
+//====================================================================
+// Location Information Age
+// Reference: 29.018 18.4.15
+//====================================================================
+
+type record STR_BSSAPp_Location_Information_Age {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT2 locationInformationAge
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (locationInformationAge)";
+};
+
+//====================================================================
+// Location Area Identifier
+// Reference: 29.018 18.4.14
+//====================================================================
+
+type record STR_BSSAPp_Location_Area_Identifier {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT5 locationAreaIdentifierValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (locationAreaIdentifierValue)";
+};
+
+//====================================================================
+// Mobile Identity
+// Reference: 29.018 18.4.17
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Identity {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ octetstring mobileIdentityValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (mobileIdentityValue)";
+};
+
+//====================================================================
+// Reject Cause
+// Reference: 29.018 18.4.21
+//====================================================================
+
+type record STR_BSSAPp_Reject_Cause {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT1 rejectCauseValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (rejectCauseValue)";
+};
+
+//====================================================================
+// GPRS Location Update Type
+// Reference: 29.018 18.4.6
+//====================================================================
+
+type record STR_BSSAPp_GPRS_Location_Update_Type {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 gPRSLocationUpdateTypeValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (gPRSLocationUpdateTypeValue)";
+};
+
+//====================================================================
+// Mobile Station Classmark 1
+// Reference: 29.018 18.4.18
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Station_Classmark1 {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT1 mobileStationClassmarkValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (mobileStationClassmarkValue)";
+};
+
+//====================================================================
+// TMSI Status
+// Reference: 29.018 18.4.24
+//====================================================================
+
+type record STR_BSSAPp_TMSI_Status {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT1 tIMSIFlag,
+ BIT7 spare
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (tIMSIFlag, spare)";
+};
+
+//====================================================================
+// IMEISV
+// Reference: 29.018 18.4.9
+//====================================================================
+
+type record STR_BSSAPp_IMEISV {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ hexstring digits length (16)
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (digits)";
+};
+
+
+//====================================================================
+// MM Information
+// Reference: 29.018 18.4.16
+//====================================================================
+
+type record STR_BSSAPp_MM_Information {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ octetstring mMInformationValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (mMInformationValue)";
+};
+
+//====================================================================
+// Erroneous Message
+// Reference: 29.018 18.4.5
+//====================================================================
+
+type record STR_BSSAPp_Erroneous_Message {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ octetstring erroneousMessageValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (erroneousMessageValue)";
+};
+
+//====================================================================
+// Information Requested
+// Reference: 29.018 18.4.13
+//====================================================================
+
+type record STR_BSSAPp_Information_Requested {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 informationRequestedValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (informationRequestedValue)";
+};
+
+//====================================================================
+// TMSI
+// Reference: 29.018 18.4.23
+//====================================================================
+
+type record STR_BSSAPp_TMSI {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT4 tMSIoctets
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (tMSIoctets)";
+};
+
+//====================================================================
+// PTMSI
+// Reference: 29.018 18.4.20
+//====================================================================
+
+type STR_BSSAPp_TMSI STR_BSSAPp_PTMSI with { variant "" };
+
+//====================================================================
+// IMEI
+// Reference: 29.018 18.4.8
+//====================================================================
+
+type record STR_BSSAPp_IMEI {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ hexstring digits length (14),
+ OCT1 lastOctet //should be 'F0'O
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (digits, lastOctet)";
+};
+
+//====================================================================
+// Mobile Station State
+// Reference: 29.018 18.4.19
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Station_State {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ BIT8 mobileStationStateValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (mobileStationStateValue)";
+};
+
+//====================================================================
+// Channel Needed
+// Reference: 29.018 18.4.2
+//====================================================================
+
+type record STR_BSSAPp_Channel_Needed {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT1 channelNeededValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (channelNeededValue)";
+};
+
+//====================================================================
+// eMLPP Priority
+// Reference: 29.018 18.4.4
+//====================================================================
+
+type record STR_BSSAPp_eMLPP_Priority {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ OCT1 eMLPPPriorityValue
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (eMLPPPriorityValue)";
+};
+
+//====================================================================
+// Global CN-Id
+// Reference: 29.018 18.4.27
+//====================================================================
+
+type record STR_BSSAPp_Global_CN_Id {
+ BIT8 iEI,
+ LIN1 lengthIndicator,
+ HEX6n pLMN_Id,
+ OCT2 CN_Id
+}
+with {
+ variant (lengthIndicator) "LENGTHTO (pLMN_Id, CN_Id)";
+};
+
+//====================================================================
+// Downlink Tunnel Payload Control and Info
+// Reference: 29.018 18.4.25
+//====================================================================
+
+type STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info
+ STR_BSSAPp_Uplink_Tunnel_Payload_Control_And_Info with { variant "" };
+
+//====================================================================
+// BSSAPp REJECT (Used for several IEs)
+// Reference: 29.018
+//====================================================================
+
+type record BSSAPp_REJECT {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Gs_Cause gsCause
+}
+with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ gsCause, iEI = '00001000'B;
+ )"
+};
+
+
+//-------------- PDUs ----------------//
+
+
+//====================================================================
+// BSSAP+-ALERT-ACK
+// Reference: 29.018 17.1.1
+//====================================================================
+
+
+type record PDU_BSSAPp_ALERT_ACK {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI
+}
+with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-ALERT-REJECT
+// Reference: 29.018 17.1.2
+//====================================================================
+
+type BSSAPp_REJECT PDU_BSSAPp_ALERT_REJECT;
+
+//====================================================================
+// BSSAP+-ALERT-REQUEST
+// Reference: 29.018 17.1.3
+//====================================================================
+
+type record PDU_BSSAPp_ALERT_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI
+}
+with {
+ variant "TAG(
+ iMSI, iEI = '00000001'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-DOWNLINK-TUNNEL-REQUEST
+// Reference: 29.018 17.1.4
+//====================================================================
+
+type record PDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_VLR_Number vLRnumber,
+ STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info
+ downlinkTunnelPayloadControlAndInfo
+}
+with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ vLRnumber, iEI = '00000010'B;
+ downlinkTunnelPayloadControlAndInfo, iEI = '00011100'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-ACK
+// Reference: 29.018 17.1.5
+//====================================================================
+
+type record PDU_BSSAPp_GPRS_DETACH_ACK {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI
+} with { variant "TAG(
+ iMSI, iEI = '00000001'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-INDICATION
+// Reference: 29.018 17.1.6
+//====================================================================
+
+type record PDU_BSSAPp_GPRS_DETACH_INDICATION {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_SGSN_Number sGSNnumber,
+ STR_BSSAPp_IMSI_Detach_from_GPRS_service_type iMSIdetachFromGPRSserviceType,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+}
+with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ sGSNnumber, iEI = '00001001'B;
+ iMSIdetachFromGPRSserviceType, iEI = '00010000'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-ACK
+// Reference: 29.018 17.1.7
+//====================================================================
+
+type record PDU_BSSAPp_IMSI_DETACH_ACK {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI
+}
+with {
+ variant "TAG(
+ iMSI, iEI = '00000001'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-IMSI-DETACH-INDICATION
+// Reference: 29.018 17.1.8
+//====================================================================
+type record PDU_BSSAPp_IMSI_DETACH_INDICATION {
+ ST_BSSAPp_Msg_type messageType,
+
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_SGSN_Number sGSNnumber,
+ STR_BSSAPp_IMSI_detach_from_non_GPRS_service_type detachType,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity optional,
+ STR_BSSAPp_Location_Information_Age locationInformationAge optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ sGSNnumber, iEI = '00001001'B;
+ detachType, iEI = '00010001'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ locationInformationAge, iEI = '00011001'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-ACCEPT
+// Reference: 29.018 17.1.9
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_ACCEPT {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Location_Area_Identifier locationAreaIdentifier,
+ STR_BSSAPp_Mobile_Identity newTMSIorIMSI optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ locationAreaIdentifier, iEI = '00000100'B;
+ newTMSIorIMSI, iEI = '00001110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-REJECT
+// Reference: 29.018 17.1.10
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_REJECT {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Reject_Cause rejectCause
+} with {
+ variant "TAG(
+ iMSI, iEI = '00000001'B;
+ rejectCause, iEI = '00001111'B
+ )"
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-REQUEST
+// Reference: 29.018 17.1.11
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_SGSN_Number sGSNnumber,
+ STR_BSSAPp_GPRS_Location_Update_Type updateType,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity,
+ STR_BSSAPp_Mobile_Station_Classmark1 mobileStationClassmark,
+ STR_BSSAPp_Location_Area_Identifier oldLocationAreaIdentifier optional,
+ STR_BSSAPp_TMSI_Status tMSIstatus optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional,
+ STR_BSSAPp_IMEISV iMEISV optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ sGSNnumber, iEI = '00001001'B;
+ updateType, iEI = '00001010'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ mobileStationClassmark, iEI = '00001101'B;
+ oldLocationAreaIdentifier, iEI = '00000100'B;
+ tMSIstatus, iEI = '00000111'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ iMEISV, iEI = '00010101'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MM-INFORMATION-REQUEST
+// Reference: 29.018 17.1.12
+//====================================================================
+
+type record PDU_BSSAPp_MM_INFORMATION_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_MM_Information mMinformation optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ mMinformation, iEI = '00010111'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MOBILE-STATUS
+// Reference: 29.018 17.1.13
+//====================================================================
+
+type record PDU_BSSAPp_MOBILE_STATUS {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI optional,
+ STR_BSSAPp_Gs_Cause gsCause,
+ STR_BSSAPp_Erroneous_Message erroneousMessage
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ gsCause, iEI = '00001000'B;
+ erroneousMessage, iEI = '00011011'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MS-ACTIVITY-INDICATION
+// Reference: 29.018 17.1.14
+//====================================================================
+
+type record PDU_BSSAPp_MS_ACTIVITY_INDICATION {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MS-INFORMATION-REQUEST
+// Reference: 29.018 17.1.15
+//====================================================================
+
+type record PDU_BSSAPp_MS_INFORMATION_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Information_Requested informationRequested
+} with {
+ variant "TAG(
+ iMSI, iEI = '00000001'B;
+ informationRequested, iEI = '00010010'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MS-INFORMATION-RESPONSE
+// Reference: 29.018 17.1.16
+//====================================================================
+
+type record PDU_BSSAPp_MS_INFORMATION_RESPONSE {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_TMSI tMSI optional,
+ STR_BSSAPp_PTMSI pTMSI optional,
+ STR_BSSAPp_IMEI iMEI optional,
+ STR_BSSAPp_IMEISV iMEISV optional,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity optional,
+ STR_BSSAPp_Location_Information_Age locationInformationAge optional,
+ STR_BSSAPp_Mobile_Station_State mobileStationState optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ tMSI, iEI = '00000011'B;
+ pTMSI, iEI = '00010011'B;
+ iMEI, iEI = '00010100'B;
+ iMEISV, iEI = '00010101'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ locationInformationAge, iEI = '00011001'B;
+ mobileStationState, iEI = '00011010'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-MS-UNREACHABLE
+// Reference: 29.018 17.1.17
+//====================================================================
+
+
+type BSSAPp_REJECT PDU_BSSAPp_MS_UNREACHABLE;
+
+//====================================================================
+// BSSAP+-PAGING-REJECT
+// Reference: 29.018 17.1.18
+//====================================================================
+
+type BSSAPp_REJECT PDU_BSSAPp_PAGING_REJECT;
+
+//====================================================================
+// BSSAP+-PAGING-REQUEST
+// Reference: 29.018 17.1.19
+//====================================================================
+
+
+type record PDU_BSSAPp_PAGING_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_VLR_Number vLRnumber,
+ STR_BSSAPp_TMSI tMSI optional,
+ STR_BSSAPp_Location_Area_Identifier locationAreaIdentifier optional,
+ STR_BSSAPp_Channel_Needed channelNeeded optional,
+ STR_BSSAPp_eMLPP_Priority eMLPPpriority optional,
+ STR_BSSAPp_Global_CN_Id global_CN_Id optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ vLRnumber, iEI = '00000010'B;
+ tMSI, iEI = '00000011'B;
+ locationAreaIdentifier, iEI = '00000100'B;
+ channelNeeded, iEI = '00000101'B;
+ eMLPPpriority, iEI = '00000110'B;
+ global_CN_Id, iEI = '00001011'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-RESET-ACK
+// Reference: 29.018 17.1.20
+//====================================================================
+
+type record PDU_BSSAPp_RESET_ACK {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_SGSN_Number sGSNnumber optional,
+ STR_BSSAPp_VLR_Number vLRnumber optional
+} with {
+ variant "TAG (
+ sGSNnumber, iEI = '00001001'B;
+ vLRnumber, iEI = '00000010'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-RESET-INDICATION
+// Reference: 29.018 17.1.21
+//====================================================================
+
+type record PDU_BSSAPp_RESET_INDICATION {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_SGSN_Number sGSNnumber optional,
+ STR_BSSAPp_VLR_Number vLRnumber optional
+} with {
+ variant "TAG (
+ sGSNnumber, iEI = '00001001'B;
+ vLRnumber, iEI = '00000010'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-TMSI-REALLOCATION-COMPLETE
+// Reference: 29.018 17.1.22
+//====================================================================
+
+type record PDU_BSSAPp_TMSI_REALLOCATION_COMPLETE {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_Cell_Global_Identity cellGlobalIdentity optional,
+ STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with {
+ variant "TAG (
+ iMSI, iEI = '00000001'B;
+ cellGlobalIdentity, iEI = '00011000'B;
+ serviceAreaIdentification, iEI = '00011110'B;
+ )"
+};
+
+//====================================================================
+// BSSAP+-UPLINK-TUNNEL-REQUEST
+// Reference: 29.018 17.1.23
+//====================================================================
+
+
+type record PDU_BSSAPp_UPLINK_TUNNEL_REQUEST {
+ ST_BSSAPp_Msg_type messageType,
+ STR_BSSAPp_IMSI iMSI,
+ STR_BSSAPp_SGSN_Number sGSNnumber,
+ STR_BSSAPp_Uplink_Tunnel_Payload_Control_And_Info
+ uplinkTunnelPayloadControlAndInfo
+} with {
+ variant "TAG(
+ iMSI, iEI = '00000001'B;
+ sGSNnumber, iEI = '00001001'B;
+ uplinkTunnelPayloadControlAndInfo, iEI = '00011101'B;
+ )"
+};
+
+
+
+// ------------------ // ----PDU_BSSAPp---- // ------------------
+
+
+type union PDU_BSSAPp {
+ PDU_BSSAPp_PAGING_REJECT pDU_BSSAPp_PAGING_REJECT,
+ PDU_BSSAPp_PAGING_REQUEST pDU_BSSAPp_PAGING_REQUEST,
+ PDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST pDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST,
+ PDU_BSSAPp_UPLINK_TUNNEL_REQUEST pDU_BSSAPp_UPLINK_TUNNEL_REQUEST,
+ PDU_BSSAPp_LOCATION_UPDATE_REQUEST pDU_BSSAPp_LOCATION_UPDATE_REQUEST,
+ PDU_BSSAPp_LOCATION_UPDATE_ACCEPT pDU_BSSAPp_LOCATION_UPDATE_ACCEPT,
+ PDU_BSSAPp_LOCATION_UPDATE_REJECT pDU_BSSAPp_LOCATION_UPDATE_REJECT,
+ PDU_BSSAPp_TMSI_REALLOCATION_COMPLETE pDU_BSSAPp_TMSI_REALLOCATION_COMPLETE,
+ PDU_BSSAPp_ALERT_REQUEST pDU_BSSAPp_ALERT_REQUEST,
+ PDU_BSSAPp_ALERT_ACK pDU_BSSAPp_ALERT_ACK,
+ PDU_BSSAPp_ALERT_REJECT pDU_BSSAPp_ALERT_REJECT,
+ PDU_BSSAPp_MS_ACTIVITY_INDICATION pDU_BSSAPp_MS_ACTIVITY_INDICATION,
+ PDU_BSSAPp_GPRS_DETACH_INDICATION pDU_BSSAPp_GPRS_DETACH_INDICATION,
+ PDU_BSSAPp_GPRS_DETACH_ACK pDU_BSSAPp_GPRS_DETACH_ACK,
+ PDU_BSSAPp_IMSI_DETACH_INDICATION pDU_BSSAPp_IMSI_DETACH_INDICATION,
+ PDU_BSSAPp_IMSI_DETACH_ACK pDU_BSSAPp_IMSI_DETACH_ACK,
+ PDU_BSSAPp_RESET_INDICATION pDU_BSSAPp_RESET_INDICATION,
+ PDU_BSSAPp_RESET_ACK pDU_BSSAPp_RESET_ACK,
+ PDU_BSSAPp_MS_INFORMATION_REQUEST pDU_BSSAPp_MS_INFORMATION_REQUEST,
+ PDU_BSSAPp_MS_INFORMATION_RESPONSE pDU_BSSAPp_MS_INFORMATION_RESPONSE,
+ PDU_BSSAPp_MM_INFORMATION_REQUEST pDU_BSSAPp_MM_INFORMATION_REQUEST,
+ PDU_BSSAPp_MOBILE_STATUS pDU_BSSAPp_MOBILE_STATUS,
+ PDU_BSSAPp_MS_UNREACHABLE pDU_BSSAPp_MS_UNREACHABLE
+
+} with {
+ variant "TAG (
+ pDU_BSSAPp_PAGING_REQUEST, messageType ='00000001'B;
+ pDU_BSSAPp_PAGING_REJECT, messageType ='00000010'B;
+ pDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST, messageType ='00000111'B;
+ pDU_BSSAPp_UPLINK_TUNNEL_REQUEST, messageType ='00001000'B;
+ pDU_BSSAPp_LOCATION_UPDATE_REQUEST, messageType ='00001001'B;
+ pDU_BSSAPp_LOCATION_UPDATE_ACCEPT, messageType ='00001010'B;
+ pDU_BSSAPp_LOCATION_UPDATE_REJECT, messageType ='00001011'B;
+ pDU_BSSAPp_TMSI_REALLOCATION_COMPLETE, messageType ='00001100'B;
+ pDU_BSSAPp_ALERT_REQUEST, messageType ='00001101'B;
+ pDU_BSSAPp_ALERT_ACK, messageType ='00001110'B;
+ pDU_BSSAPp_ALERT_REJECT, messageType ='00001111'B;
+ pDU_BSSAPp_MS_ACTIVITY_INDICATION, messageType ='00010000'B;
+ pDU_BSSAPp_GPRS_DETACH_INDICATION, messageType ='00010001'B;
+ pDU_BSSAPp_GPRS_DETACH_ACK, messageType ='00010010'B;
+ pDU_BSSAPp_IMSI_DETACH_INDICATION, messageType ='00010011'B;
+ pDU_BSSAPp_IMSI_DETACH_ACK, messageType ='00010100'B;
+ pDU_BSSAPp_RESET_INDICATION, messageType ='00010101'B;
+ pDU_BSSAPp_RESET_ACK, messageType ='00010110'B;
+ pDU_BSSAPp_MS_INFORMATION_REQUEST, messageType ='00010111'B;
+ pDU_BSSAPp_MS_INFORMATION_RESPONSE, messageType ='00011000'B;
+ pDU_BSSAPp_MM_INFORMATION_REQUEST, messageType ='00011010'B;
+ pDU_BSSAPp_MOBILE_STATUS, messageType ='00011101'B;
+ pDU_BSSAPp_MS_UNREACHABLE, messageType ='00011111'B;
+ )"
+};
+
+} with{ encode "RAW"}//end of module BSSAPp_Types
diff --git a/BSSGP_v13.0.0_CNL113833_LATEST/BSSGP_v13.0.0_CNL113833.tpd b/BSSGP_v13.0.0_CNL113833_LATEST/BSSGP_v13.0.0_CNL113833.tpd
new file mode 100644
index 00000000..caee9344
--- /dev/null
+++ b/BSSGP_v13.0.0_CNL113833_LATEST/BSSGP_v13.0.0_CNL113833.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2016 Ericsson
+
+ The copyright to the computer program(s) herein is the property of Ericsson.
+ The program(s) may be used and/or copied only with the written permission
+ of Ericsson or in accordance with the terms and conditions stipulated in the
+ agreement/contract under which the program(s) has been supplied.
+
+
+ File: BSSGP_v13.0.0_CNL113833.tpd
+ Description: tpd project file
+ Rev: R1A
+ Prodnr: CNL 113 833
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>BSSGP_v13.0.0_CNL113833</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+ </ReferencedProjects>
+ <Files>
+ <FileResource projectRelativePath="src/BSSGP_EncDec.cc" relativeURI="src/BSSGP_EncDec.cc"/>
+ <FileResource projectRelativePath="src/BSSGP_Types.ttcn" relativeURI="src/BSSGP_Types.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <generateInternalMakefile>true</generateInternalMakefile>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/BSSGP_v13.0.0_CNL113833</targetExecutable>
+ <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ <FolderProperties>
+ <FolderResource>
+ <FolderPath>doc</FolderPath>
+ <FolderProperties>
+ <ExcludeFromBuild>true</ExcludeFromBuild>
+ </FolderProperties>
+ </FolderResource>
+ </FolderProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information>
diff --git a/BSSGP_v13.0.0_CNL113833_LATEST/doc/documentation_note.txt b/BSSGP_v13.0.0_CNL113833_LATEST/doc/documentation_note.txt
new file mode 100644
index 00000000..6cec029a
--- /dev/null
+++ b/BSSGP_v13.0.0_CNL113833_LATEST/doc/documentation_note.txt
@@ -0,0 +1,13 @@
+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 R1A revision of the product
+can be found here:
+http://document.internal.ericsson.com/Download?DocNo=1095-CNL113833&Rev=A&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-CNL113833&Rev=HIGHEST&Lang=EN&Status=FREE&PRev=Y
+
diff --git a/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_EncDec.cc b/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_EncDec.cc
new file mode 100644
index 00000000..b447a676
--- /dev/null
+++ b/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_EncDec.cc
@@ -0,0 +1,145 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: BSSGP_EncDec.cc
+// Rev: R1A
+// Prodnr: CNL 113 833
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 48.018 13.0.0
+
+#include "BSSGP_Types.hh"
+
+//static TTCN_Module BSSGP_EndDec("BSSGP_EncDec", __DATE__, __TIME__);
+
+namespace BSSGP__Types {
+
+
+OCTETSTRING enc__PDU__BSSGP(const PDU__BSSGP& pdu)
+{
+ TTCN_Buffer bb;
+
+ // CALCULATE WHICH LENGTH FORMAT SHOULD BE USED AND CHANGE SHORT LENGTH FORM
+ // TO LONG LENGTH FORM IF NECESSARY
+ if (pdu.get_selection() == PDU__BSSGP::ALT_pDU__BSSGP__DL__UNITDATA)
+ {
+ if( pdu.pDU__BSSGP__DL__UNITDATA().lLC__PDU().lLC__PDU().lengthof() > 127)
+ {
+ PDU__BSSGP pdu2(pdu);
+ pdu2.pDU__BSSGP__DL__UNITDATA().lLC__PDU().lengthIndicator().length2() =
+ pdu2.pDU__BSSGP__DL__UNITDATA().lLC__PDU().lLC__PDU().lengthof();
+ pdu2.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+
+ }
+ else
+ pdu.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+ else if(pdu.get_selection() == PDU__BSSGP::ALT_pDU__BSSGP__UL__UNITDATA)
+ {
+ if( pdu.pDU__BSSGP__UL__UNITDATA().lLC__PDU().lLC__PDU().lengthof() > 127)
+ {
+ PDU__BSSGP pdu2(pdu);
+ pdu2.pDU__BSSGP__UL__UNITDATA().lLC__PDU().lengthIndicator().length2() =
+ pdu2.pDU__BSSGP__UL__UNITDATA().lLC__PDU().lLC__PDU().lengthof();
+ pdu2.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+ else
+ pdu.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+
+ else if(pdu.get_selection() == PDU__BSSGP::ALT_pDU__BSSGP__DL__MBMS__UNITDATA)
+ {
+ if( pdu.pDU__BSSGP__DL__MBMS__UNITDATA().lLC__PDU().lLC__PDU().lengthof() > 127)
+ {
+ PDU__BSSGP pdu2(pdu);
+ pdu2.pDU__BSSGP__DL__MBMS__UNITDATA().lLC__PDU().lengthIndicator().length2() =
+ pdu2.pDU__BSSGP__DL__MBMS__UNITDATA().lLC__PDU().lLC__PDU().lengthof();
+ pdu2.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+ else
+ pdu.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+
+ else if(pdu.get_selection() == PDU__BSSGP::ALT_pDU__BSSGP__UL__MBMS__UNITDATA)
+ {
+ if( pdu.pDU__BSSGP__UL__MBMS__UNITDATA().lLC__PDU().lLC__PDU().lengthof() > 127)
+ {
+ PDU__BSSGP pdu2(pdu);
+ pdu2.pDU__BSSGP__UL__MBMS__UNITDATA().lLC__PDU().lengthIndicator().length2() =
+ pdu2.pDU__BSSGP__UL__MBMS__UNITDATA().lLC__PDU().lLC__PDU().lengthof();
+ pdu2.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+ else
+ pdu.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+ }
+
+ else
+ pdu.encode(PDU__BSSGP_descr_ ,bb, TTCN_EncDec::CT_RAW);
+
+ return OCTETSTRING (bb.get_len(), bb.get_data());
+}
+
+/*PDU__BSSGP dec__PDU__BSSGP(const OCTETSTRING& stream)
+{
+ PDU__BSSGP retv;
+ TTCN_Buffer bb;
+
+ bb.put_os(stream);
+
+ retv.decode(PDU__BSSGP_descr_, bb, TTCN_EncDec::CT_RAW);
+ return retv;
+}*/
+
+PDU__BSSGP dec__PDU__BSSGP(const OCTETSTRING& stream)
+{
+ if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) {
+ TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC);
+ TTCN_Logger::log_event_str("dec_PDU_BSSGP(): Stream before decoding: ");
+ stream.log();
+ TTCN_Logger::end_event();
+ }
+ TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_DEFAULT);
+ TTCN_EncDec::clear_error();
+ TTCN_Buffer ttcn_buffer(stream);
+ PDU__BSSGP ret_val;
+ ret_val.decode(PDU__BSSGP_descr_, ttcn_buffer, TTCN_EncDec::CT_RAW);
+
+ if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) {
+ TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC);
+ TTCN_Logger::log_event_str("dec_PDU_BSSGP(): Decoded @BSSGP_Types.PDU_BSSGP: ");
+ ret_val.log();
+ TTCN_Logger::end_event();
+ }
+if (TTCN_EncDec::get_last_error_type() == TTCN_EncDec::ET_NONE) {
+ if (ttcn_buffer.get_pos() < ttcn_buffer.get_len() && TTCN_Logger::log_this_event(TTCN_WARNING)) {
+ ttcn_buffer.cut();
+ OCTETSTRING remaining_stream;
+ ttcn_buffer.get_string(remaining_stream);
+ TTCN_Logger::begin_event(TTCN_WARNING);
+ TTCN_Logger::log_event_str("dec_PDU_BSSGP(): Warning: Data remained at the end of the stream after successful decoding: ");
+ remaining_stream.log();
+ TTCN_Logger::end_event();
+ }
+ }
+if(ret_val.get_selection()== PDU__BSSGP::ALT_pDU__BSSGP__PS__HANDOVER__REQUEST)
+{
+ if(!ret_val.pDU__BSSGP__PS__HANDOVER__REQUEST().target__Cell__Identifier().ispresent()){
+ Cell__Identifier cell;
+ cell = ret_val.pDU__BSSGP__PS__HANDOVER__REQUEST().source__Cell__Identifier();
+ ret_val.pDU__BSSGP__PS__HANDOVER__REQUEST().target__Cell__Identifier() = cell;
+ //ret_val.pDU__BSSGP__PS__HANDOVER__REQUEST().source__Cell__Identifier().clean_up();
+ ret_val.pDU__BSSGP__PS__HANDOVER__REQUEST().source__Cell__Identifier()= OMIT_VALUE;
+
+ } }
+return ret_val;
+}
+
+
+}//namespace
diff --git a/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_Types.ttcn b/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_Types.ttcn
new file mode 100644
index 00000000..71728623
--- /dev/null
+++ b/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_Types.ttcn
@@ -0,0 +1,4419 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: BSSGP_Types.ttcn
+// Rev: R1A
+// Prodnr: CNL 113 833
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 48.018 13.0.0
+
+
+module BSSGP_Types
+{
+
+import from General_Types all;
+
+external function enc_PDU_BSSGP(in PDU_BSSGP pdu) return octetstring;
+
+external function dec_PDU_BSSGP(in octetstring stream) return PDU_BSSGP;
+
+external function enc_PDU_BSSGP_fast(in PDU_BSSGP pdu, out octetstring stream)
+with { extension "prototype(fast) encode(RAW)" }
+
+external function dec_PDU_BSSGP_backtrack(in octetstring stream, out PDU_BSSGP pdu) return integer
+with { extension "prototype(backtrack) decode(RAW)" }
+
+
+//-----------------------------------------------------------------------------
+// INFORMATION ELEMENTS
+//-----------------------------------------------------------------------------
+type union LIN2_2a
+{
+ integer length1,
+ integer length2
+} with {
+ variant (length1) "FIELDLENGTH(7)";
+ variant (length2) "FIELDLENGTH(15)";
+ variant (length2) "BYTEORDER(last)";
+ variant (length1,length2) "FIELDORDER(msb)";
+}
+
+// 11.3.1
+type record Alignment_octets
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring spare_octet length(0..3)
+} with {
+ variant "PRESENCE(iEI = '00'O)";
+ variant (lengthIndicator) "LENGTHTO (spare_octet)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.2
+type record Bmax_default_MS
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 bmax // could be changed to integer input if simpler
+} with {
+ variant "PRESENCE(iEI = '01'O)";
+ variant (lengthIndicator) "LENGTHTO (bmax)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.3
+type record BSS_Area_Indication
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 bSS_indicator
+} with {
+ variant "PRESENCE(iEI = '02'O)";
+ variant (lengthIndicator) "LENGTHTO (bSS_indicator)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.4
+type record Bucket_Leak_Rate
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 r_Value // could be changed to integer input if simpler
+} with {
+ variant "PRESENCE(iEI = '03'O)";
+ variant (lengthIndicator) "LENGTHTO (r_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.5
+type record BVC_Bucket_Size
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 bmax
+} with {
+ variant "PRESENCE(iEI = '05'O)";
+ variant (lengthIndicator) "LENGTHTO (bmax)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.6
+type record BVCI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 unstructured_value
+} with {
+ variant "PRESENCE(iEI = '04'O)";
+ variant (lengthIndicator) "LENGTHTO (unstructured_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.7
+type record BVC_Measurement
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 delay_Value
+
+} with {
+ variant "PRESENCE(iEI = '06'O)";
+ variant (lengthIndicator) "LENGTHTO (delay_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.8
+type record Cause_BSSGP
+ {
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 cause_Value
+ } with {
+ variant "PRESENCE(iEI = '07'O)";
+ variant (lengthIndicator) "LENGTHTO (cause_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.9
+type record Cell_Identifier
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1 ,
+ HEX1 mccDigit2 ,
+ HEX1 mccDigit3 ,
+ HEX1 mncDigit3 ,
+ HEX1 mncDigit1 ,
+ HEX1 mncDigit2 ,
+ OCT2 lac,
+ OCT1 rac,
+ OCT2 cI_value
+} with {
+ variant "PRESENCE(iEI = '08'O)";
+ variant (lengthIndicator)
+ "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,
+ mncDigit2,lac,rac,cI_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type record Cell_Identifier_V
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac,
+ OCT2 cI_value
+};
+
+// 11.3.10
+// 29.018, 44.018
+type record Channel_needed
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Channel_Needed_Value channel_Needed_Value
+} with {
+ variant "PRESENCE(iEI = '09'O)";
+ variant (lengthIndicator) "LENGTHTO (channel_Needed_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type record Channel_Needed_Value
+{
+ BIT2 channel_1,
+ BIT2 channel_2,
+ BIT4 channelNeededIEI //44.018
+}
+
+// 11.3.11
+type record DRX_Parameters
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 splitPG_CycleCode,
+ BIT3 nonDRXTimer,
+ BIT1 splitOnCCCH,
+ BIT4 cnSpecificDRXCycleLength
+} with {
+ variant "PRESENCE(iEI = '0A'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (splitPG_CycleCode,nonDRXTimer,splitOnCCCH,
+ cnSpecificDRXCycleLength)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ };
+
+// 11.3.12
+type record EMLPP_Priority_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT3 callPriority,
+ BIT5 spare
+} with {
+ variant "PRESENCE(iEI = '0B'O)";
+ variant (lengthIndicator) "LENGTHTO (callPriority,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ };
+
+// 11.3.13
+type record Flush_Action
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 actionValue
+} with {
+ variant "PRESENCE(iEI = '0C'O)";
+ variant (lengthIndicator) "LENGTHTO (actionValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ };
+
+
+// 11.3.14
+type record IMSI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT3 type_of_Identity,
+ BIT1 oddevenIndicator, // '1'B or '0'B
+ hexstring digits length(5..15)
+} with {
+ variant "PRESENCE(iEI = '0D'O)";
+ variant (lengthIndicator) "LENGTHTO (type_of_Identity,
+ oddevenIndicator,digits)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ //variant (fillerDigit) "PRESENCE (oddevenIndicator = '0'B) ";
+ variant (digits) "HEXORDER(low)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant "PADDING(yes)";
+ variant "PADDING_PATTERN('1'B)"
+
+ };
+
+// 11.3.15
+//NOTE: lengthIndicator-short form will be converted to long form
+// if needed during encoding
+type record LLC_PDU
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring lLC_PDU // Note: this is divided into 2 parts in spec!
+} with {
+ variant "PRESENCE(iEI = '0E'O)";
+ variant (lengthIndicator) "LENGTHTO (lLC_PDU)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.16
+type record LLC_Frames_Discarded
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ hexstring number_of_frames_discarded length (2)
+ } with {
+ variant "PRESENCE(iEI = '0F'O)";
+ variant (lengthIndicator) "LENGTHTO (number_of_frames_discarded)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.17
+type record Location_Area
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac
+} with {
+ variant "PRESENCE(iEI = '10'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,
+ mncDigit3,mncDigit1,mncDigit2,lac)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.18
+type record LSA_Identifier_List_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring lSA_Identifier_List // encoded LSA Identifier List
+} with {
+ variant "PRESENCE(iEI = '26'O)";
+ variant (lengthIndicator) "LENGTHTO (lSA_Identifier_List)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.19
+type record LSA_Information_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ LSA_Information lSA_Information // encoded LSA Information 48.008
+} with {
+ variant "PRESENCE(iEI = '27'O)";
+ variant (lengthIndicator) "LENGTHTO (lSA_Information)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record LSA_Information // encoded LSA Information 48.008
+{
+ BIT1 lSA_Only,
+ BIT7 spare,
+ LSA_Identification_and_Attributes_List lSA_Identification_and_Attributes_List
+}
+
+type record of LSA_Identification_and_Attributes LSA_Identification_and_Attributes_List;
+
+type record LSA_Identification_and_Attributes
+{
+ BIT4 priority,
+ BIT1 pref,
+ BIT1 act,
+ BIT2 spare,
+ OCT3 lSA_ID
+}
+
+
+// 11.3.20
+type record Mobile_Id_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ MobileIdentityV_BSSGP mobile_Identity
+} with {
+ variant "PRESENCE(iEI = '11'O)";
+ variant (lengthIndicator) "LENGTHTO (mobile_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// MobileIdentityV structure copied from 24.008 MobileL3
+type record MobileIdentityV_BSSGP
+{
+ BIT3 typeOfIdentity,
+ OddEvenInd_Identity_BSSGP oddEvenInd_identity
+} with {
+ variant (oddEvenInd_identity) "CROSSTAG
+ (
+ imei, typeOfIdentity ='010'B;
+ imsi, typeOfIdentity ='001'B;
+ imei_sv, typeOfIdentity ='011'B;
+ )"
+};
+
+type union OddEvenInd_Identity_BSSGP
+{
+ IMSI_MobileIdentityV imsi,
+ IMEI_MobileIdentityV imei,
+ IMEI_SV_MobileIdentityV imei_sv
+};
+
+type record IMSI_MobileIdentityV
+{
+ 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_MobileIdentityV
+{
+ BIT1 oddevenIndicator, // '1'B
+ hexstring digits length(15)
+};
+
+type record IMEI_SV_MobileIdentityV
+{
+ BIT1 oddevenIndicator, // '0'B
+ hexstring digits length(16),
+ BIT4 fillerDigit // filler '1111'B
+};
+
+// 11.3.21
+type record MS_Bucket_Size
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 bmax
+} with {
+ variant "PRESENCE(iEI = '12'O)";
+ variant (lengthIndicator) "LENGTHTO (bmax)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.22
+// Note : structure from 24.008 Mobile L3
+type record MS_Radio_Access_Capability
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ MSRadioAccessCapabilityV_BSSGP mSRadioAccessCapabilityV_BSSGP
+} with {
+ variant "PRESENCE(iEI = '13'O)";
+ variant (lengthIndicator) "LENGTHTO (mSRadioAccessCapabilityV_BSSGP)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant /*(ext,lengthIndicator)*/ "FIELDORDER(msb)";
+ variant "PADDING(yes)"
+};
+
+type record of MSRACapabilityValuesRecord_BSSGP MSRadioAccessCapabilityV_BSSGP
+with { variant "EXTENSION_BIT(reverse)";variant "FIELDORDER(msb)" };
+
+
+type record MSRACapabilityValuesRecord_BSSGP
+{
+ MSRACapabilityValues_BSSGP mSRACapabilityValues,
+ BIT1 presenceBitMSRACap
+} with { variant "FIELDORDER(msb)" };
+
+
+type union MSRACapabilityValues_BSSGP
+{
+ MSRACapabilityValuesExclude1111_BSSGP mSRACapabilityValuesExclude1111,
+ MSRACapabilityValues1111_BSSGP mSRACapabilityValues1111
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MSRACapabilityValuesExclude1111_BSSGP
+{
+ BIT4 accessTechnType,
+ AccessCapabilitiesStruct_BSSGP accessCapabilities
+} with {
+ variant "PRESENCE (
+ accessTechnType = '0000'B, // GSM P
+ accessTechnType = '0001'B, // GSM E
+ accessTechnType = '0010'B, // GSM R
+ accessTechnType = '0011'B, // GSM 1800
+ accessTechnType = '0100'B, // GSM190
+ accessTechnType = '0101'B, // GSM 450
+ accessTechnType = '0110'B, // GSM480
+ accessTechnType = '0111'B, // GSM 480
+ accessTechnType = '1000'B, // GSM 700
+ accessTechnType = '1001'B, // GSM T 310
+ accessTechnType = '1010'B, // GSM T 410
+ accessTechnType = '1011'B // GSM T 900
+ )"
+ variant "FIELDORDER(msb)"
+};
+
+
+// Access Capabilities Struct
+type record AccessCapabilitiesStruct_BSSGP
+{
+ integer lengthIndicator,
+ AccessCapabilities_BSSGP accessCapabilities,
+ // spare_bits "expands to the indicated length",
+ // i.e. 24.008 spec puts no restriction on number
+ // of spare_bits. The only restriction is that the whole
+ // MS Radio Access Capability IE is less than 52 octets
+ bitstring spare_bits optional
+} with {
+ variant (lengthIndicator) "FIELDLENGTH(7)";
+ variant (lengthIndicator) "LENGTHTO(accessCapabilities,spare_bits)";
+ variant (lengthIndicator) "UNIT(bits)";
+ variant "FIELDORDER(msb)";
+ variant (lengthIndicator) "BYTEORDER(last)";
+}
+
+
+//Access Capabilities
+type record AccessCapabilities_BSSGP
+{
+ BIT3 rfPowerCapability,
+ BIT1 presenceBitA5,
+ A5BITS_BSSGP a5bits optional,
+ BIT1 esind,
+ BIT1 psbit,
+ BIT1 vgcs,
+ BIT1 vbs,
+ BIT1 presenceBitMultislot,
+ MultislotCap_BSSGP multislotcap optional,
+ AccessCapAdditionsAfterRel97_BSSGP accessCapAdditionsAfterRel97 optional //opt because of V97
+ //Note: AccessCapAdditionsAfterRel97 can include:
+ // Rel99 or
+ // Rel99 + Rel4 or
+ // Rel99 + Rel4 + Rel5 or
+ // Rel99 + Rel4 + Rel5 + Rel6
+} with {
+ variant "FIELDORDER(msb)";
+ variant (a5bits) "PRESENCE(presenceBitA5 = '1'B)";
+ variant (multislotcap) "PRESENCE(presenceBitMultislot = '1'B)";
+}
+
+
+type record AccessCapAdditionsAfterRel97_BSSGP
+{
+ AccessCapAdditionsRel99_BSSGP accessCapAdditionsRel99,
+ AccessCapAdditionsAfterRel99_BSSGP accessCapAdditionsAfterRel99 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel99_BSSGP
+{
+ BIT1 presenceBitPskpow,
+ BIT2 pskpowercap optional,
+ BIT1 compactIntMeasurCap,
+ BIT1 revisionLevelInd,
+ BIT1 umtsfddRadAccTechCap,
+ BIT1 umtstddRadAccTechCap,
+ BIT1 cdma2kRadAccTechCap
+} with {
+ variant "FIELDORDER(msb)";
+ variant (pskpowercap) "PRESENCE(presenceBitPskpow = '1'B)";
+}
+
+
+type record AccessCapAdditionsAfterRel99_BSSGP
+{
+ AccessCapAdditionsRel4_BSSGP accessCapAdditionsRel4,
+ AccessCapAdditionsAfterRel4_BSSGP accessCapAdditionsAfterRel4 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel4_BSSGP
+{
+ BIT1 umts128RadAccTechCap,
+ BIT1 geranFeaturePackage,
+ BIT1 presenceBitExtendedDTM,
+ ExtendedDTM_BSSGP extendedDTM optional,
+ BIT1 modulationBasedMultislotClass
+} with {
+ variant "FIELDORDER(msb)";
+ variant (extendedDTM) "PRESENCE(presenceBitExtendedDTM = '1'B)";
+}
+
+
+type record AccessCapAdditionsAfterRel4_BSSGP
+{
+ AccessCapAdditionsRel5_BSSGP accessCapAdditionsRel5,
+ AccessCapAdditionsAfterRel5_BSSGP accessCapAdditionsAfterRel5 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel5_BSSGP
+{
+ BIT1 presenceBitHighMultislotCapability,
+ BIT2 highMultislotCapability optional,
+ BIT1 presenceBitGeranIuModeCapability,
+ GeranIuModeCap_BSSGP geranIuModeCap optional,
+ BIT2 gMSKMultislotPowerProfile,
+ BIT2 eightPSKMultislotPowerProfile
+} with {
+ variant "FIELDORDER(msb)";
+ variant (highMultislotCapability)
+ "PRESENCE(presenceBitHighMultislotCapability = '1'B)"
+ variant (geranIuModeCap)"PRESENCE(presenceBitGeranIuModeCapability = '1'B)"
+}
+
+
+type record GeranIuModeCap_BSSGP
+{
+ integer lengthIndicator,
+ BIT1 fLOIuCapability,
+ bitstring spare_bits
+ // spare_bits "expands to the indicated length",
+ // i.e. 24.008 spec puts no restriction on number
+ // of spare_bits. The only restriction is that the whole
+ // MS Radio Access Capability IE is less than 52 octets
+} with {
+ variant "FIELDORDER(msb)";
+ variant (lengthIndicator) "FIELDLENGTH(4)";
+ variant (lengthIndicator) "LENGTHTO(fLOIuCapability,spare_bits)";
+ variant (lengthIndicator) "UNIT(bits)";
+}
+
+type record AccessCapAdditionsAfterRel5_BSSGP
+{
+ AccessCapAdditionsRel6_BSSGP accessCapAdditionsRel6,
+ AccessCapAdditionsRel7_BSSGP accessCapAdditionsAfterRel6 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsRel6_BSSGP
+{
+ BIT1 multipleTBFCapability,
+ BIT2 downlinkAdvancedReceiverPerformance,
+ BIT1 extendedRLCMACCtrlMsgSegmentationCap,
+ BIT1 dTMEnhancementsCapability,
+ BIT1 presenceBitDTMGPRSHighMultiSlotClass,
+ DTMGPRSHighMultiSlotClass_BSSGP dTMGPRSHighMultiSlotClass optional,
+ BIT1 pSHandoverCapability
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dTMGPRSHighMultiSlotClass)
+ "PRESENCE(presenceBitDTMGPRSHighMultiSlotClass = '1'B)"
+}
+
+
+type record DTMGPRSHighMultiSlotClass_BSSGP
+{
+ BIT3 dTMGPRSHighMultiSlotClassValue,
+ BIT1 presenceBitDTMEGPRSHighMultiSlotClass,
+ BIT3 dTMEGPRSHighMultiSlotClassValue optional
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dTMEGPRSHighMultiSlotClassValue)
+ "PRESENCE(presenceBitDTMEGPRSHighMultiSlotClass = '1'B)"
+
+}
+
+
+type record AccessCapAdditionsRel7_BSSGP
+{
+ BIT1 dTMHandoverCapability,
+ BIT1 presenceBitDownlinkDualCarrier,
+ DownlinkDualCarrier_BSSGP downlinkDualCarrier,
+ BIT1 flexibleTimeslotAssignment,
+ BIT1 gANPSHandoverCapability,
+ BIT1 rLCNonPersistentMode,
+ BIT1 reducedLatencyEGPRSCapability
+} with {
+ variant "FIELDORDER(msb)";
+ variant (downlinkDualCarrier)
+ "PRESENCE(presenceBitDownlinkDualCarrier = '1'B)"
+}
+
+
+type record DownlinkDualCarrier_BSSGP
+{
+ BIT3 multislotCapReductionforDownLinkDualCarrier,
+ BIT1 downlinkDualCarrierforDTMCapability
+} with { variant "FIELDORDER(msb)" };
+
+
+type record ExtendedDTM_BSSGP
+{
+ BIT2 ExtendedDTM_GPRSMultislot,
+ BIT2 ExtendedDTM_EGPRSMultislot
+} with { variant "FIELDORDER(msb)" };
+
+
+//MultislotCap
+type record MultislotCap_BSSGP
+{
+ BIT1 presenceBitHscsd,
+ BIT5 hscsdmultislotclass optional,
+ BIT1 presenceBitGprs,
+ MultislotCap_GPRS_BSSGP gprsmultislot optional,
+ BIT1 presenceBitSms,
+ MultislotCap_SMS_BSSGP multislotCap_SMS optional,
+ MultislotCapAdditionsAfterRel97_BSSGP multislotCapAdditionsAfterRel97 optional
+} with {
+ variant "FIELDORDER(msb)";
+ variant (hscsdmultislotclass) "PRESENCE(presenceBitHscsd = '1'B)";
+ variant (gprsmultislot) "PRESENCE(presenceBitGprs = '1'B)";
+ variant (multislotCap_SMS) "PRESENCE(presenceBitSms = '1'B)";
+
+}
+
+
+type record MultislotCapAdditionsAfterRel97_BSSGP
+{
+ BIT1 presenceBitEcsdmulti,
+ BIT5 ecsdmultislotclass optional,
+ BIT1 presenceBitEgprsmulti,
+ MultislotCap_EGPRS_BSSGP multislotCap_EGPRS optional,
+ BIT1 presenceBitDtmGprsmulti,
+ MultislotCap_dtmgprsmultislotsubclass_BSSGP
+ multislotCapdtmgprsmultislotsubclass optional
+} with {
+ variant "FIELDORDER(msb)";
+ variant (ecsdmultislotclass) "PRESENCE(presenceBitEcsdmulti = '1'B)";
+ variant (multislotCap_EGPRS) "PRESENCE(presenceBitEgprsmulti = '1'B)" ;
+ variant (multislotCapdtmgprsmultislotsubclass)
+ "PRESENCE(presenceBitDtmGprsmulti = '1'B)"
+}
+
+
+type record MultislotCap_GPRS_BSSGP
+{
+ BIT5 gprsmultislotclass,
+ BIT1 gprsextendeddynalloccap
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MultislotCap_SMS_BSSGP
+{
+ BIT4 smsValue,
+ BIT4 smValue
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MultislotCap_EGPRS_BSSGP
+{
+ BIT5 egprsmultislotclass,
+ BIT1 egprsextendeddynalloccap
+} with { variant "FIELDORDER(msb)" };
+
+type record MultislotCap_dtmgprsmultislotsubclass_BSSGP
+{
+ BIT2 dtmgprsmultislotsubclass,
+ BIT1 singleSlotDTM,
+ BIT1 presenceBitDTM_EGPRSMultiSlot,
+ BIT2 dTM_EGPRSMultiSlot optional
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dTM_EGPRSMultiSlot) "PRESENCE(presenceBitDTM_EGPRSMultiSlot = '1'B)"
+};
+
+
+//A5BITS
+
+type record A5BITS_BSSGP
+{
+ BIT1 a51 ,
+ BIT1 a52 ,
+ BIT1 a53 ,
+ BIT1 a54 ,
+ BIT1 a55 ,
+ BIT1 a56 ,
+ BIT1 a57
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MSRACapabilityValues1111_BSSGP
+{
+ BIT4 accessTechnType, //1111
+ integer lengthIndicator,
+ BIT1 presenceIndicator_AdditionalAccessTechnologiesRepetition,
+ AdditionalAccessTechnologiesRepetition_BSSGP // coded '1'B if list is not empty
+ additionalAccessTechnologiesRepetition optional,
+ bitstring spare_bits
+} with {
+ variant "PRESENCE (accessTechnType = '1111'B)";
+ variant "FIELDORDER(msb)";
+ variant (lengthIndicator) "FIELDLENGTH(7)";
+ variant (lengthIndicator) "UNIT(bits)";
+ variant (lengthIndicator) "BYTEORDER(last)";
+ variant (additionalAccessTechnologiesRepetition)
+ "PRESENCE(presenceIndicator_AdditionalAccessTechnologiesRepetition = '1'B)";
+ variant (lengthIndicator)
+ "LENGTHTO(presenceIndicator_AdditionalAccessTechnologiesRepetition,
+ additionalAccessTechnologiesRepetition,spare_bits)";
+
+};
+
+type record of AdditionalAccessTechnologiesRecord_BSSGP
+ AdditionalAccessTechnologiesRepetition_BSSGP
+with { variant "EXTENSION_BIT(reverse)" };
+
+
+type record AdditionalAccessTechnologiesRecord_BSSGP
+{
+ AdditionalAccessTechnologies_BSSGP additionalAccessTechnologies,
+ BIT1 extensionBit
+} with { variant "FIELDORDER(msb)" };
+
+
+type record AdditionalAccessTechnologies_BSSGP
+{
+ BIT4 accessTechnType,
+ BIT3 gMSKPowerClass,
+ BIT2 psk8PowerClass
+} with { variant "FIELDORDER(msb)" };
+
+
+
+// 11.3.23
+type record OMC_Id_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT20 oMC_Identity
+} with {
+ variant "PRESENCE(iEI = '14'O)";
+ variant (lengthIndicator) "LENGTHTO (oMC_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.24
+//NOTE: lengthIndicator-short form will be converted to
+// long form if needed during encoding
+type record PDU_in_Error
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring erroneous_BSSGP_PDU
+} with {
+ variant "PRESENCE(iEI = '15'O)";
+ variant (lengthIndicator) "LENGTHTO (erroneous_BSSGP_PDU)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.25
+type record PDU_Lifetime
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 delay_Value
+} with {
+ variant "PRESENCE(iEI = '16'O)";
+ variant (lengthIndicator) "LENGTHTO (delay_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.27
+type record Priority_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 pvi,
+ BIT1 qa,
+ BIT4 priority_Level, //(1..14) 0: spare, 15: not used
+ BIT1 pci,
+ BIT1 spare
+} with {
+ variant "PRESENCE(iEI = '17'O)";
+ variant (lengthIndicator) "LENGTHTO (pvi,qa,priority_Level,pci,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.28
+type record QoS_Profile
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 peak_Bit_Rate,
+ BIT3 precedence,
+ BIT1 a_bit,
+ BIT1 t_bit,
+ BIT1 c_r_bit,
+ BIT2 peakBitRateGranularity
+} with {
+ variant "PRESENCE(iEI = '18'O)";
+ variant (lengthIndicator) "LENGTHTO (peak_Bit_Rate,precedence,
+ a_bit,t_bit,c_r_bit,peakBitRateGranularity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type record QoS_Profile_V
+{
+ OCT2 peak_Bit_Rate,
+ BIT3 precedence,
+ BIT1 a_bit,
+ BIT1 t_bit,
+ BIT1 c_r_bit,
+ BIT2 peakBitRateGranularity
+}
+
+// 11.3.29
+type record Radio_Cause
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 radio_Cause_Value
+} with {
+ variant "PRESENCE(iEI = '19'O)";
+ variant (lengthIndicator) "LENGTHTO (radio_Cause_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.30
+type record RA_Cap_UPD_CAUSE
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 rA_CAP_UPD_Cause_value
+} with {
+ variant "PRESENCE(iEI = '1A'O)";
+ variant (lengthIndicator) "LENGTHTO (rA_CAP_UPD_Cause_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.31
+type record Routeing_Area
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac
+} with {
+ variant "PRESENCE(iEI = '1B'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,
+ mncDigit1,mncDigit2,lac,rac)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.32
+type record R_default_MS
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 r_default_MS_value
+} with {
+ variant "PRESENCE(iEI = '1C'O)";
+ variant (lengthIndicator) "LENGTHTO (r_default_MS_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.33
+type record Suspend_Reference_Number
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 suspend_Reference_Number_value
+} with {
+ variant "PRESENCE(iEI = '1D'O)";
+ variant (lengthIndicator) "LENGTHTO (suspend_Reference_Number_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.34
+type record Tag
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 unstructured_Value
+} with {
+ variant "PRESENCE(iEI = '1E'O)";
+ variant (lengthIndicator) "LENGTHTO (unstructured_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.35
+type record TLLI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT4 tLLI_Value
+} with {
+ variant "PRESENCE(iEI = '1F'O)";
+ variant (lengthIndicator) "LENGTHTO (tLLI_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.36
+// Note : reference in spec is to "TMSI/P-TMSI information element in
+// 3GPP TS 24.008", however this specification has Mobile Identity
+// IE which includes TMSI/P-TMSI
+type record TMSI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT4 tMSI_Value
+} with {
+ variant "PRESENCE(iEI = '20'O)";
+ variant (lengthIndicator) "LENGTHTO (tMSI_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.37
+type record Trace_Reference_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 trace_Reference
+} with {
+ variant "PRESENCE(iEI = '21'O)";
+ variant (lengthIndicator) "LENGTHTO (trace_Reference)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.38
+type record Trace_Type_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 equipment_Trace
+} with {
+ variant "PRESENCE(iEI = '22'O)";
+ variant (lengthIndicator) "LENGTHTO (equipment_Trace)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+
+};
+
+
+// 11.3.39
+type record TransactionId_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 transaction_Id
+} with {
+ variant "PRESENCE(iEI = '23'O)";
+ variant (lengthIndicator) "LENGTHTO (transaction_Id)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.40
+type record Trigger_Id_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT20 entity_Identity
+} with {
+ variant "PRESENCE(iEI = '24'O)";
+ variant (lengthIndicator) "LENGTHTO (entity_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.41
+type record Number_of_octets_affected
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT3 number_of_octets_transfered_or_deleted
+ // could be changed to integer input if simpler
+} with {
+ variant "PRESENCE(iEI = '25'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (number_of_octets_transfered_or_deleted)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.42
+type record PFI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT7 pFI_Value,
+ BIT1 spare // '0'B according to 10.5.6.11 of 24.008
+
+} with {
+ variant "PRESENCE(iEI = '28'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (pFI_Value,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.43
+// Note : structure from 24.008
+type record ABQP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT3 reliabilityClass,
+ BIT3 delayClass,
+ BIT2 spare1, // '00'B
+ BIT3 precedenceClass,
+ BIT1 spare2,
+ BIT4 peakThroughput,
+ BIT5 meanThroughput,
+ BIT3 spare3,
+ BIT3 deliverErroneusSDU optional, //opt because of V97
+ BIT2 deliveryOrder optional, //opt because of V97
+ BIT3 trafficClass optional, //opt because of V97
+ OCT1 maxSDUSize optional, //opt because of V97
+ OCT1 maxBitrateUplink optional, //opt because of V97
+ OCT1 maxBitrateDownlink optional, //opt because of V97
+ BIT4 sduErrorRatio optional, //opt because of V97
+ BIT4 residualBER optional, //opt because of V97
+ BIT2 trafficHandlingPriority optional, //opt because of V97
+ BIT6 transferDelay optional, //opt because of V97
+ OCT1 guaranteedBitRateUplink optional, //opt because of V97
+ OCT1 guaranteedBitRateDownlink optional, //opt because of V97
+ BIT4 sourceStatisticsDescriptor optional, //opt because of V97
+ BIT1 signallingIndication optional, //opt because of V97
+ BIT3 spare4 optional, //opt because of V97
+ OCT1 maxBitRateDownlinkExtended optional,
+ OCT1 guaranteedBitRateDownlinkExtended optional,
+ OCT1 maxBitrateUplinkExtended optional, //opt because of V97
+ OCT1 guaranteedBitRateUplinkExtended optional //opt because of V97
+} with {
+ variant "PRESENCE(iEI = '3A'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (reliabilityClass,delayClass,spare1,precedenceClass,
+ spare2,peakThroughput,
+ meanThroughput,spare3
+ ,deliverErroneusSDU,deliveryOrder,trafficClass,maxSDUSize,
+ maxBitrateUplink,maxBitrateDownlink,sduErrorRatio,residualBER,
+ trafficHandlingPriority,transferDelay,guaranteedBitRateUplink,
+ guaranteedBitRateDownlink,sourceStatisticsDescriptor,
+ signallingIndication,spare4,maxBitRateDownlinkExtended,
+ guaranteedBitRateDownlinkExtended,maxBitrateUplinkExtended,
+ guaranteedBitRateUplinkExtended)";
+
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ };
+
+
+// 11.3.44
+type record GPRS_Timer
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT5 timer_Value,
+ BIT3 unit_Value
+} with {
+ variant "PRESENCE(iEI = '29'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (timer_Value,unit_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.45
+type record Feature_bitmap
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 pFC,
+ BIT1 cBL,
+ BIT1 iNR,
+ BIT1 lCS,
+ BIT1 rIM,
+ BIT1 pFC_FC,
+ BIT1 enhancedRadioStatus,
+ BIT1 mBMS
+} with {
+ variant "PRESENCE(iEI = '3B'O)";
+ variant (lengthIndicator) "LENGTHTO (pFC,cBL,iNR,lCS,rIM,pFC_FC,
+ enhancedRadioStatus,mBMS)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.46
+type record Bucket_Full_Ratio
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 rate_of_the_Bucket
+ // could be changed to integer input if simpler
+} with {
+ variant "PRESENCE(iEI = '3C'O)";
+ variant (lengthIndicator) "LENGTHTO (rate_of_the_Bucket)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ }
+
+
+// 11.3.47
+type record Service_UTRAN_CCO
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT3 service_UTRAN_CCO_Value,
+ BIT2 service_E_UTRAN_CCO_Value,
+ BIT3 spare
+} with {
+ variant "PRESENCE(iEI = '3D'O)";
+ variant (lengthIndicator) "LENGTHTO (service_UTRAN_CCO_Value,service_E_UTRAN_CCO_Value,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// new IE for Wendy Xiang and Freeman Feng
+type record Service_Class_Indicator {
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 serviceClassIndicator
+} with {
+ variant "PRESENCE(iEI = '99'O)";
+ variant (lengthIndicator) "LENGTHTO (serviceClassIndicator)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.48
+type record NSEI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT2 nSEI
+} with {
+ variant "PRESENCE(iEI = '3E'O)";
+ variant (lengthIndicator) "LENGTHTO (nSEI)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.49
+type record RRLP_APDU_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring rRLP_Message
+} with {
+ variant "PRESENCE(iEI = '3F'O)";
+ variant (lengthIndicator) "LENGTHTO (rRLP_Message)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ //variant "PADDING(yes)";
+}
+
+
+// 11.3.50
+// 24.008 -> 49.031
+type record LCS_QoS_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 vert,
+ BIT1 vel,
+ BIT6 spare1,
+ BIT7 horizontal_Accuracy,
+ BIT1 hA_Indicator, // 1: is specified
+ BIT7 vertical_Accuracy,
+ BIT1 vA_Indicator, // 1: is specified
+ BIT6 spare2,
+ BIT2 response_Time_Category
+} with {
+ variant "PRESENCE(iEI = '40'O)";
+ variant (lengthIndicator) "LENGTHTO (vert,vel,spare1,horizontal_Accuracy,hA_Indicator,vertical_Accuracy,vA_Indicator,spare2,response_Time_Category)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.51
+// 49.031
+type record LCS_Client_Type_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT4 client_Subtype,
+ BIT4 client_Category
+} with {
+ variant "PRESENCE(iEI = '41'O)";
+ variant (lengthIndicator) "LENGTHTO (client_Subtype,client_Category)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.52
+// 49.031
+type record Requested_GPS_Assistance_Data_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Requested_GPS_Assistance_Data_Value requested_GPS_Assistance_Data
+} with {
+ variant "PRESENCE(iEI = '42'O)";
+ variant (lengthIndicator) "LENGTHTO (requested_GPS_Assistance_Data)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record Requested_GPS_Assistance_Data_Value
+{
+ OCT1 bits_H_to_A,
+ OCT1 bits_P_to_I,
+ SatelliteRelatedData satelliteRelatedData
+}
+
+type record SatelliteRelatedData
+{
+ BIT6 spare,
+ BIT10 gPS_Week,
+ OCT1 gPS_Toe,
+ BIT4 t_Toe_Limit,
+ integer nSAT,
+ SatID_and_IODE_List satID_and_IODE_List
+} with { variant(nSAT) "FIELDLENGTH(4)";
+ variant(nSAT) "LENGTHTO(satID_and_IODE_List)";
+ variant(nSAT) "UNIT(elements)";
+}
+
+type record of SatID_and_IODE SatID_and_IODE_List;
+
+type record SatID_and_IODE
+{
+ BIT6 satID,
+ BIT2 spare,
+ OCT1 iODE
+}
+
+// 11.3.53
+// 49.031
+type record Location_Type_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 location_Information,
+ OCT1 positioning_Method optional
+} with {
+ variant "PRESENCE(iEI = '43'O)";
+ variant (lengthIndicator) "LENGTHTO (location_Information,positioning_Method)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.54
+// 48.008 -> 23.03
+type record Location_Estimate_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring location // encoded location information
+} with {
+ variant "PRESENCE(iEI = '44'O)";
+ variant (lengthIndicator) "LENGTHTO (location)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.55
+// 49.031
+type record Positioning_Data_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ PositioningDataValue positioningDataValue // encoded location data
+} with {
+ variant "PRESENCE(iEI = '45'O)";
+ variant (lengthIndicator) "LENGTHTO (positioningDataValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record PositioningDataValue
+{
+ BIT4 positioningDataDiscriminator,
+ BIT4 spare,
+ PositioningMethod_List positioningMethod_List
+}
+
+type record of PositioningMethodValue PositioningMethod_List;
+
+type record PositioningMethodValue
+{
+ BIT3 usage,
+ BIT5 positioningMethod
+}
+
+// 11.3.56
+type record Deciphering_Keys_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ DecipheringKeysValue decipheringKeysValue // encoded deciphering keys data
+} with {
+ variant "PRESENCE(iEI = '46'O)";
+ variant (lengthIndicator) "LENGTHTO (decipheringKeysValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record DecipheringKeysValue
+{
+ BIT1 cipheringkeyFlag,
+ BIT7 spare,
+ OCT7 currentDecipheringKeyValue,
+ OCT7 nextDecipheringKeyValue
+}
+
+// 11.3.57
+// 49.031
+type record LCS_Priority_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 priority_Value // 0: highest, other: normal
+} with {
+ variant "PRESENCE(iEI = '47'O)";
+ variant (lengthIndicator) "LENGTHTO (priority_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.58
+// 49.031
+type record LCS_Cause_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 cause_Value,
+ OCT1 diagnostic_Value optional
+} with {
+ variant "PRESENCE(iEI = '48'O)";
+ variant (lengthIndicator) "LENGTHTO (cause_Value,diagnostic_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.59
+// 24.008
+type record LCS_Capability_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 gPS_C,
+ BIT1 gPS_B,
+ BIT1 gPS_A,
+ BIT1 oTD_B,
+ BIT1 oTD_A,
+ BIT3 spare
+} with {
+ variant "PRESENCE(iEI = '49'O)";
+ variant (lengthIndicator) "LENGTHTO (gPS_C,gPS_B,gPS_A,oTD_B,oTD_A,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.60
+type record RRLP_Flags_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 flag1,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '4A'O)";
+ variant (lengthIndicator) "LENGTHTO (flag1,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+//11.3.61
+type record RIM_Application_Identity
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 rIMApplicationIdentity
+} with {
+ variant "PRESENCE(iEI = '4B'O)";
+ variant (lengthIndicator) "LENGTHTO (rIMApplicationIdentity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+//11.3.62
+type record RIM_Sequence_Number
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT4 rIMSequenceNumber
+} with {
+ variant "PRESENCE(iEI = '4C'O)";
+ variant (lengthIndicator) "LENGTHTO (rIMSequenceNumber)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// Table 11.3.62a.1
+type record RAN_Information_Request_RIM_Container
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a lengthIndicator,
+RIM_Application_Identity rIM_Application_Identity,
+RIM_Sequence_Number rIM_Sequence_Number,
+RIM_PDU_Indications rIM_PDU_Indications,
+RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
+RAN_Information_Request_Application_Container application_Container optional,
+SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity_TLV optional
+} with {
+ variant "PRESENCE(iEI = '57'O)";
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ application_Container,sON_Transfer_Application_Identity_TLV)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (application_Container)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '01'O,
+ rIM_Application_Identity.rIMApplicationIdentity = '02'O,
+ rIM_Application_Identity.rIMApplicationIdentity = '03'O)";
+ variant (application_Container)
+ "CROSSTAG
+ (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
+};
+
+
+// Table 11.3.62a.2
+type record RAN_Information_RIM_Container
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a lengthIndicator,
+RIM_Application_Identity rIM_Application_Identity,
+RIM_Sequence_Number rIM_Sequence_Number,
+RIM_PDU_Indications rIM_PDU_Indications,
+RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
+ApplContainer_or_ApplErrContainer applContainer_or_ApplErrContainer optional,
+SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
+} with {
+ variant "PRESENCE(iEI = '58'O)";
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ applContainer_or_ApplErrContainer,sON_Transfer_Application_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (applContainer_or_ApplErrContainer)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '01'O,
+ rIM_Application_Identity.rIMApplicationIdentity = '02'O,
+ rIM_Application_Identity.rIMApplicationIdentity = '03'O)";
+ variant (applContainer_or_ApplErrContainer)
+ "CROSSTAG
+ (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
+};
+
+
+type union ApplContainer_or_ApplErrContainer
+{
+ ApplContainer_or_ApplErrContainer_NACC nacc,
+ ApplContainer_or_ApplErrContainer_SI3 si3,
+ ApplContainer_or_ApplErrContainer_MBMS_data_channel mBMS_data_channel
+}
+
+type union ApplContainer_or_ApplErrContainer_NACC
+{
+ RAN_Information_Application_Container_NACC application_Container,
+ Application_Error_Container_NACC application_Error_Container
+};
+
+type union ApplContainer_or_ApplErrContainer_SI3
+{
+ RAN_Information_Application_Container_SI3 application_Container,
+ Application_Error_Container_SI3 application_Error_Container
+};
+
+type union ApplContainer_or_ApplErrContainer_MBMS_data_channel
+{
+ RAN_Information_Application_Container_MBMS_data_channel application_Container,
+ Application_Error_Container_MBMS_data_channel application_Error_Container
+};
+
+// Table 11.3.62a.3
+type record RAN_Information_Ack_RIM_Container
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a lengthIndicator,
+RIM_Application_Identity rIM_Application_Identity,
+RIM_Sequence_Number rIM_Sequence_Number,
+RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
+SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
+} with {
+ variant "PRESENCE(iEI = '5A'O)";
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_Protocol_Version_Number,sON_Transfer_Application_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// Table 11.3.62a.4
+type record RAN_Information_Error_RIM_Container
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a lengthIndicator,
+RIM_Application_Identity rIM_Application_Identity,
+Cause_BSSGP rIM_cause,
+RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
+PDU_in_Error pDU_in_Error,
+SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
+} with {
+ variant "PRESENCE(iEI = '5B'O)";
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_cause,rIM_Protocol_Version_Number,pDU_in_Error,sON_Transfer_Application_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// Table 11.3.62a.5
+type record RAN_Information_Application_Error_RIM_Container
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a lengthIndicator,
+RIM_Application_Identity rIM_Application_Identity,
+RIM_Sequence_Number rIM_Sequence_Number,
+RIM_PDU_Indications rIM_PDU_Indications,
+RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
+Application_Error_Container application_Error_Container,
+SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
+} with {
+ variant "PRESENCE(iEI = '59'O)";
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ application_Error_Container,sON_Transfer_Application_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (application_Error_Container)
+ "CROSSTAG
+ (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
+};
+
+
+// 11.3.63.1
+type union RAN_Information_Request_Application_Container
+{
+RAN_Information_Request_Application_Container_NACC nacc,
+RAN_Information_Request_Application_Container_SI3 si3,
+RAN_Information_Request_Application_Container_MBMS_data_channel mBMS_data_channel
+}
+
+
+//Table 11.3.63.1.1
+type record RAN_Information_Request_Application_Container_NACC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier
+} with {
+ variant "PRESENCE(iEI = '4D'O)";
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//Table 11.3.63.1.2
+type record RAN_Information_Request_Application_Container_SI3
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier
+} with {
+ variant "PRESENCE(iEI = '4D'O)";
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//Table 11.3.63.1.3
+type record RAN_Information_Request_Application_Container_MBMS_data_channel
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier
+} with {
+ variant "PRESENCE(iEI = '4D'O)";
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//11.3.63.1.4
+type record RAN_Information_Request_Application_Container_SON_transfer
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier,
+ OCTN sON_Transfer_Request_Container
+} with {
+ variant "PRESENCE(iEI = '4D'O)";
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier,sON_Transfer_Request_Container)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//11.3.63.1.5
+type record RAN_Information_Request_Application_Container_UTRA_SI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier
+} with {
+ variant "PRESENCE(iEI = '4D'O)";
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//Table 11.3.63.2.1
+type record RAN_Information_Application_Container_NACC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier,
+ BIT1 typeBit,
+ BIT7 number_of_SI_PSI,
+ octetstring sI_PSI
+} with {
+ variant "PRESENCE(iEI = '4E'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,typeBit,number_of_SI_PSI,sI_PSI)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//Table 11.3.63.2.2
+type record RAN_Information_Application_Container_SI3
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier,
+ SI3 sI3
+} with {
+ variant "PRESENCE(iEI = '4E'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,sI3)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//44.018 9.1.35
+type record SI3
+{
+ OCT1 sI3MessageType, //'1B'O
+ OCT2 cellIdentity, //10.5.1.1 -> 24.008
+ LocationAreaIdentification locationAreaIdentification, //10.5.1.3 -> 24.008
+ ControlChannelDescription controlChannelDescription, //10.5.2.11
+ CellOptions cellOptions, //10.5.2.3
+ CellSelectionParameters cellSelectionParameters, //10.5.2.4
+ RACHControlParameters rACHControlParameters, //10.5.2.29
+ OCT4 sI3RestOctets //10.5.2.34, bit encoded
+}
+
+type record LocationAreaIdentification
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac
+}
+
+type record ControlChannelDescription
+{
+ BIT3 cCCH_Conf,
+ BIT3 bS_AG_BLKS_RES,
+ BIT1 aTT,
+ BIT1 mSCR,
+ BIT3 bS_PA_MFRMS,
+ BIT2 spare1, //'00'B
+ BIT2 cBQ3,
+ BIT1 spare2, //'0'B
+ OCT1 t3212
+}
+
+type record CellOptions
+{
+ BIT4 radioLinkTimeout,
+ BIT2 dTX1,
+ BIT1 pWRC,
+ BIT1 dtx2
+}
+
+type record CellSelectionParameters
+{
+ BIT5 mS_TXPWR_MAX_CCH,
+ BIT3 cellReselectHysterisis,
+ BIT6 rXLEV_Access_Min,
+ BIT1 nECI,
+ BIT1 aCS
+}
+
+type record RACHControlParameters
+{
+ BIT1 rE,
+ BIT1 cellBarrAccess,
+ BIT4 tX_Integer,
+ BIT2 maxRetrans,
+ OCT1 aC_15_to_8,
+ OCT1 aC_7_to_0
+}
+
+//Table 11.3.63.2.3
+type record RAN_Information_Application_Container_MBMS_data_channel
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier,
+ octetstring mBMS_data_channel_report //bit encoded
+} with {
+ variant "PRESENCE(iEI = '4E'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,mBMS_data_channel_report)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//11.3.63.2.4
+type record RAN_Information_Application_Container_SON_transfer
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT4 rAT_Discriminator,
+ BIT4 spare,
+ Cell_Identifier reporting_Cell_Identifier,
+ OCTN sON_Transfer_Response_Container
+} with {
+ variant "PRESENCE(iEI = '4E'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (rAT_Discriminator,spare,reporting_Cell_Identifier,sON_Transfer_Response_Container)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//11.3.63.2.5
+type record RAN_Information_Application_Container_UTRA_SI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Cell_Identifier reporting_Cell_Identifier,
+ OCTN uTRA_SI_Container
+} with {
+ variant "PRESENCE(iEI = '4E'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,uTRA_SI_Container)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.64
+type union Application_Error_Container
+{
+ Application_Error_Container_NACC nacc,
+ Application_Error_Container_SI3 si3,
+ Application_Error_Container_MBMS_data_channel mBMS_data_channel
+}
+
+//11.3.64.1
+type record Application_Error_Container_NACC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 nACC_cause,
+ Application_Container_IE_NACC erroneousApplicationContainer
+} with {
+ variant "PRESENCE(iEI = '56'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (nACC_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type union Application_Container_IE_NACC
+{
+ RAN_Information_Request_Application_Container_NACC
+ rAN_Information_Request_Application_Container,
+
+ RAN_Information_Application_Container_NACC
+ rAN_Information_Application_Container
+};
+
+//11.3.64.2
+type record Application_Error_Container_SI3
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 sI3_cause,
+ Application_Container_IE_SI3 erroneousApplicationContainer
+} with {
+ variant "PRESENCE(iEI = '56'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (sI3_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type union Application_Container_IE_SI3
+{
+ RAN_Information_Request_Application_Container_SI3
+ rAN_Information_Request_Application_Container,
+
+ RAN_Information_Application_Container_SI3
+ rAN_Information_Application_Container
+};
+
+
+//11.3.64.3
+type record Application_Error_Container_MBMS_data_channel
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 mBMS_data_channel_cause,
+ Application_Container_IE_MBMS_data_channel erroneousApplicationContainer
+} with {
+ variant "PRESENCE(iEI = '56'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (mBMS_data_channel_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type union Application_Container_IE_MBMS_data_channel
+{
+ RAN_Information_Request_Application_Container_MBMS_data_channel
+ rAN_Information_Request_Application_Container,
+
+ RAN_Information_Application_Container_MBMS_data_channel
+ rAN_Information_Application_Container
+};
+
+//11.3.64.4
+type record Application_Error_Container_SON_transfer
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 sON_transfer_cause,
+ Application_Container_IE_SON_transfer erroneousApplicationContainer
+};
+
+type union Application_Container_IE_SON_transfer
+{
+ RAN_Information_Request_Application_Container_SON_transfer
+ rAN_Information_Request_Application_Container,
+ RAN_Information_Application_Container_SON_transfer
+ rAN_Information_Application_Container
+};
+
+//11.3.64.5
+type record Application_Error_Container_UTRA_SI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 uTRA_SI_cause,
+ Application_Container_IE_UTRA_SI erroneousApplicationContainer
+};
+
+type union Application_Container_IE_UTRA_SI
+{
+ RAN_Information_Request_Application_Container_UTRA_SI
+ rAN_Information_Request_Application_Container,
+ RAN_Information_Application_Container_UTRA_SI
+ rAN_Information_Application_Container
+};
+
+//11.3.65
+type record RIM_PDU_Indications
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 ack,
+ BIT3 pDU_Type_Extension,
+ BIT4 reserved
+} with {
+ variant "PRESENCE(iEI = '4F'O)";
+ variant (lengthIndicator) "LENGTHTO (ack,pDU_Type_Extension,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+//11.3.67
+type record RIM_Protocol_Version_Number
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 rIMProtocolVersionNumber
+} with {
+ variant "PRESENCE(iEI = '55'O)";
+ variant (lengthIndicator) "LENGTHTO (rIMProtocolVersionNumber)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.68
+type record PFC_flow_control_parameters
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ integer number_of_PFC (0..11),
+ PFCs pFCs
+} with {
+ variant "PRESENCE(iEI = '52'O)";
+ variant (lengthIndicator) "LENGTHTO (number_of_PFC,pFCs)";
+ variant (number_of_PFC) "LENGTHTO (pFCs)";
+ variant (number_of_PFC) "UNIT(elements)"
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type record length(0..11) of PFC PFCs;
+
+type record PFC
+{
+BIT7 pFI_Value,
+BIT1 spare, // '0'B according to 10.5.6.11 of 24.008
+OCT2 bmax_PFC,
+OCT2 r_PFC,
+OCT1 b_PFC
+};
+
+// 11.3.69
+type record Global_CN_Id_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Global_CN_Id_Value global_CN_Id // encoded Global CN-Id
+} with {
+ variant "PRESENCE(iEI = '53'O)";
+ variant (lengthIndicator) "LENGTHTO (global_CN_Id)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record Global_CN_Id_Value
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 cN_Id
+}
+
+
+// 11.3.70
+type record RIM_Routing_Information
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 rIMRoutingAddressDiscriminator,
+ HEX1 spare,
+ RIM_Routing_Address rIM_Routing_Address
+} with {
+ variant "PRESENCE(iEI = '54'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (rIMRoutingAddressDiscriminator,spare,rIM_Routing_Address)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (rIM_Routing_Address)
+ "CROSSTAG (cell_Identifier, rIMRoutingAddressDiscriminator = '0'H;
+ globalRNCID, rIMRoutingAddressDiscriminator = '1'H;
+ eNB_Identifier, rIMRoutingAddressDiscriminator = '2'H;
+ eHRPD_SectorID, rIMRoutingAddressDiscriminator = '3'H
+ )"
+};
+
+type union RIM_Routing_Address
+{
+ Cell_Identifier_V cell_Identifier,
+ GlobalRNC_ID_BSSGP globalRNCID,
+ ENB_Identifier_V eNB_Identifier,
+ octetstring eHRPD_SectorID
+}
+
+type record GlobalRNC_ID_BSSGP
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac,
+ HEX1 spare,
+ integer rNC_ID
+} with {
+ variant (spare,rNC_ID) "FIELDORDER(msb)";
+ variant (rNC_ID) "BYTEORDER(last)";
+ variant (rNC_ID) "FIELDLENGTH(12)";
+}
+
+type record ENB_Identifier_V {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 tac,
+ octetstring globaleNBID
+}
+
+
+// 11.3.71
+type record MBMS_Session_Identity
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 mBMS_Session_Identifier_Value
+} with {
+ variant "PRESENCE(iEI = '5D'O)";
+ variant (lengthIndicator) "LENGTHTO (mBMS_Session_Identifier_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.72
+// 29.061
+
+type record MBMS_Session_Duration
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring mBMS_Session_Duration_Value
+} with {
+ variant "PRESENCE(iEI = '5E'O)";
+ variant (lengthIndicator) "LENGTHTO (mBMS_Session_Duration_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.73
+type record MBMS_Service_Area_Identity_List
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring mBMS_Service_Area_Identity_List_Value
+} with {
+ variant "PRESENCE(iEI = '5F'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (mBMS_Service_Area_Identity_List_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.74
+type record MBMS_Response
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 causeValue,
+ HEX1 spare
+} with {
+ variant "PRESENCE(iEI = '60'O)";
+ variant (lengthIndicator) "LENGTHTO (causeValue,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.75
+type record MBMS_Routing_Area_List
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 spare,
+ HEX1 number_of_Routing_Area_Identifications,
+ octetstring routing_Area_Identifications optional
+
+} with {
+ variant "PRESENCE(iEI = '61'O)";
+ variant (lengthIndicator)
+ "LENGTHTO (spare,number_of_Routing_Area_Identifications,
+ routing_Area_Identifications)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+// 11.3.76
+type record MBMS_Session_Information
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 bCMC,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '62'O)";
+ variant (lengthIndicator) "LENGTHTO (bCMC, spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//11.3.77
+// 24.008 10.5.6.13
+type record TMGI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT3 mBMS_Service_ID,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2
+} with {
+ variant "PRESENCE(iEI = '5C'O)";
+ variant (lengthIndicator) "LENGTHTO
+ (mBMS_Service_ID,mccDigit1,mccDigit2,mccDigit3,mncDigit3,
+ mncDigit1,mncDigit2)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.78 MBMS Stop Cause
+type record MBMS_Stop_Cause
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 causeValue,
+ HEX1 spare
+} with {
+ variant "PRESENCE(iEI = '63'O)";
+ variant (lengthIndicator) "LENGTHTO (causeValue, spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+// 11.3.79
+type record Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Source_BSS_to_Target_BSS_Transparent_Container_Contents
+ source_BSS_to_Target_BSS_Transparent_Container_Contents
+} with {
+ variant "PRESENCE(iEI = '64'O)";
+ variant (lengthIndicator) "LENGTHTO (source_BSS_to_Target_BSS_Transparent_Container_Contents)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record Source_BSS_to_Target_BSS_Transparent_Container_Contents
+{
+ MS_Radio_Access_Capability mS_Radio_Access_Capability,
+ Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info optional,
+ Page_Mode_BSSGP page_Mode_BSSGP optional,
+ Container_ID_BSSGP container_ID optional,
+ Global_TFI_BSSGP global_TFI optional,
+ PS_HandoverIndications pS_HandoverIndications optional,
+ CS_Indication cS_Indication optional,
+ E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional,
+ IRAT_Measurement_Configuration iRAT_Measurement_Configuration optional,
+ Source_Cell_ID source_Cell_ID optional,
+ IRAT_Measurement_Configuration_Extended_eARFCNs iRAT_Measurement_Configuration_Extended_eARFCNs optional
+};
+
+// 11.3.80
+type record Target_BSS_to_Source_BSS_Transparent_Container
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ Target_BSS_to_Source_BSS_Transparent_Container_Contents
+ target_BSS_to_Source_BSS_Transparent_Container_Contents
+} with {
+ variant "PRESENCE(iEI = '65'O)";
+ variant (lengthIndicator) "LENGTHTO (target_BSS_to_Source_BSS_Transparent_Container_Contents)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+//Note: Only PS_Handover_Command_BSSGP or DTM_Handover_Command is present
+type record Target_BSS_to_Source_BSS_Transparent_Container_Contents
+{
+ PS_Handover_Command_BSSGP pS_Handover_Command optional,
+ SI_PSI_Container sI_PSI_Container optional, //NEW
+ DTM_Handover_Command dTM_Handover_Command optional //NEW
+}
+
+// 11.3.81
+type record NAS_container_for_PS_Handover
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ NAS_Container_for_PS_HO nAS_Container_for_PS_HO
+} with {
+ variant "PRESENCE(iEI = '66'O)";
+ variant (lengthIndicator) "LENGTHTO (nAS_Container_for_PS_HO)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//24.008 10.5.1.14
+type record NAS_Container_for_PS_HO
+{
+ BIT3 typeOfCipheringAlgorithm,
+ BIT1 spare1,
+ BIT1 oldXID,
+ BIT3 spare2,
+ OCT4 iOV_UI
+}
+
+// 11.3.82
+type record PFCs_to_be_set_up_list
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ integer number_of_PFCs (1..11), // note: 0 and 12 .. 255 are reserved!!!
+ Multiple_PFCs_BSSGP pFCs
+} with {
+ variant "PRESENCE(iEI = '67'O)";
+ variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFCs)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFCs),FIELDORDER(msb),FIELDLENGTH(8)";
+}
+
+type record Single_PFC_BSSGP
+{
+ PFI pFI,
+ GPRS_Timer pFT,
+ ABQP aBQP,
+ Priority_BSSGP allocation_Retention_Priority optional,
+ GPRS_Timer t10 optional
+}
+
+type record length (1..11) of Single_PFC_BSSGP Multiple_PFCs_BSSGP;
+
+
+// 11.3.83
+type record List_of_set_up_PFCs_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
+ Multiple_PFIs_BSSGP pFIs
+} with {
+ variant "PRESENCE(iEI = '68'O)";
+ variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFIs)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDORDER(msb),FIELDLENGTH(8)";
+}
+
+type record Single_PFI_BSSGP
+{
+ BIT7 pFI_Value,
+ BIT1 spare
+}
+
+type record length (0..11) of Single_PFI_BSSGP Multiple_PFIs_BSSGP;
+
+
+// 11.3.84 Extended Feature Bitmap
+type record Extended_Feature_Bitmap
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 pS_Handover,
+ BIT1 gigabitInterface,
+ BIT1 mOCN,
+ BIT1 cS_PS_Coordination_Enhancements,
+ BIT4 spare
+} with {
+ variant "PRESENCE(iEI = '69'O)";
+ variant (lengthIndicator) "LENGTHTO (pS_Handover,gigabitInterface,mOCN,cS_PS_Coordination_Enhancements,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.85
+type record Source_to_Target_Transparent_Container
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring source_to_Target_Transparent_Container_Contents //RANAP ASN.1 PER
+} with {
+ variant "PRESENCE(iEI = '6A'O)";
+ variant (lengthIndicator) "LENGTHTO (source_to_Target_Transparent_Container_Contents)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.86
+type record Target_to_Source_Transparent_Container
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring handover_to_UTRAN_or_Radio_Bearer_Reconfiguration_radio_interface_message //ASN.1
+} with {
+ variant "PRESENCE(iEI = '6B'O)";
+ variant (lengthIndicator) "LENGTHTO (handover_to_UTRAN_or_Radio_Bearer_Reconfiguration_radio_interface_message)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+
+// 11.3.87
+type record RNC_Identifier_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac,
+ OCT2 rNC_ID
+} with {
+ variant "PRESENCE(iEI = '6C'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1, mccDigit2, mccDigit3, mncDigit3, mncDigit1, mncDigit2,
+ lac, rac, rNC_ID)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.88
+type record Page_Mode_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT2 page_mode, // specified in 3GPP TS 44.060
+ BIT6 reserved
+} with {
+ variant "PRESENCE(iEI = '6D'O)";
+ variant (lengthIndicator) "LENGTHTO (page_mode,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.89
+type record Container_ID_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT2 container_ID, // specified in 3GPP TS 44.060
+ BIT6 reserved
+} with {
+ variant "PRESENCE(iEI = '6E'O)";
+ variant (lengthIndicator) "LENGTHTO (container_ID,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.90
+type record Global_TFI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT6 global_TFI, // specified in 3GPP TS 44.060
+ BIT2 reserved
+} with {
+ variant "PRESENCE(iEI = '6F'O)";
+ variant (lengthIndicator) "LENGTHTO (global_TFI,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.91
+type record IMEI_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ IMEI_Value iMEI
+} with {
+ variant "PRESENCE(iEI = '70'O)";
+ variant (lengthIndicator) "LENGTHTO (iMEI)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record IMEI_Value
+{
+ BIT3 typeOfIdentity,
+ BIT1 oddevenIndicator,
+ hexstring digits length(15)
+}
+
+
+// 11.3.92 Time to MBMS Data Transfer
+type record Time_To_MBMS_Data_Transfer
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 valuePart
+} with {
+ variant "PRESENCE(iEI = '71'O)";
+ variant (lengthIndicator) "LENGTHTO (valuePart)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.93 MBMS Session Repetition Number
+type record MBMS_Session_Repetition_Number
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring repetitionNumber
+} with {
+ variant "PRESENCE(iEI = '72'O)";
+ variant (lengthIndicator) "LENGTHTO (repetitionNumber)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.94
+type record Inter_RAT_Handover_Info_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring inter_RAT_Handover_Information //as specified in 3GPP TS 25.331
+} with {
+ variant "PRESENCE(iEI = '73'O)";
+ variant (lengthIndicator) "LENGTHTO (inter_RAT_Handover_Information)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.95
+type record PS_Handover_Command_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring pS_Handover_Command_radio_interface_message
+} with {
+ variant "PRESENCE(iEI = '74'O)";
+ variant (lengthIndicator) "LENGTHTO (pS_Handover_Command_radio_interface_message)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.95a
+type record PS_HandoverIndications
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 sI_PSI,
+ BIT2 dMLC_Carriers,
+ BIT5 spare
+} with {
+ variant "PRESENCE(iEI = '75'O)";
+ variant (lengthIndicator) "LENGTHTO (sI_PSI,dMLC_Carriers,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+// 11.3.95b
+type record SI_PSI_Container
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 typeField,
+ SI_PSI_ContainerValue sI_PSI_ContainerValue
+} with {
+ variant "PRESENCE(iEI = '76'O)";
+ variant (lengthIndicator) "LENGTHTO (typeField,sI_PSI_ContainerValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (sI_PSI_ContainerValue) "CROSSTAG
+ (
+ sI_message_Container, typeField ='0'B;
+ pSI_message_Container, typeField ='1'B;
+ )";
+ };
+
+type union SI_PSI_ContainerValue
+{
+ SI_message_Container sI_message_Container,
+ PSI_message_Container pSI_message_Container
+}
+
+type record SI_message_Container
+{
+ integer number_of_SI,
+ SI_message_List sI_message_List
+} with {
+ variant (number_of_SI) "UNIT(elements),LENGTHTO(sI_message_List),FIELDORDER(msb),FIELDLENGTH(7)";
+}
+
+type record PSI_message_Container
+{
+ integer number_of_PSI,
+ PSI_message_List pSI_message_List
+} with {
+ variant (number_of_PSI) "UNIT(elements),LENGTHTO(pSI_message_List),FIELDORDER(msb),FIELDLENGTH(7)";
+}
+
+type record of SI_message SI_message_List;
+
+type record of PSI_message PSI_message_List;
+
+type octetstring SI_message length (21);
+
+type octetstring PSI_message length (22);
+
+
+// 11.3.95c 48.008 CR 240
+type record Active_PFCs_List_BSSGP
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
+ Multiple_PFIs_BSSGP pFIs
+} with {
+ variant "PRESENCE(iEI = '77'O)";
+ variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFIs)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDORDER(msb),FIELDLENGTH(8)";
+}
+
+//11.3.96
+type record VelocityData
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring velocityDataValue // 23.032
+}with {
+ variant "PRESENCE(iEI = '78'O)";
+ variant (lengthIndicator) "LENGTHTO (velocityDataValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.97
+type record DTM_Handover_Command
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring dTM_HandoverCommandValue // 44.060
+} with {
+ variant "PRESENCE(iEI = '79'O)";
+ variant (lengthIndicator) "LENGTHTO (dTM_HandoverCommandValue)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.98
+type record CS_Indication
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 cS_IndicationContents //48.008
+} with {
+ variant "PRESENCE(iEI = '7A'O)";
+ variant (lengthIndicator) "LENGTHTO (cS_IndicationContents)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.99
+type record Requested_GANSS_Assistance_Data
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ octetstring requested_GANSS_Assistance_Data_Value //49.031
+} with {
+ variant "PRESENCE(iEI = '7B'O)";
+ variant (lengthIndicator) "LENGTHTO (requested_GANSS_Assistance_Data_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.100
+type record GANSS_Location_Type
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 galileo,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '7C'O)";
+ variant (lengthIndicator) "LENGTHTO (galileo,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+// 11.3.101
+//49.031
+type record GANSS_Positioning_Data
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ GANSS_Positioning_DataList gANSS_Positioning_DataList
+} with {
+ variant "PRESENCE(iEI = '7D'O)";
+ variant (lengthIndicator) "LENGTHTO (gANSS_Positioning_DataList)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record of GANSS_Positioning_DataValue GANSS_Positioning_DataList
+
+type record GANSS_Positioning_DataValue
+{
+ BIT3 usage,
+ BIT3 gANSS_ID,
+ BIT2 method
+}
+
+//11.3.102
+type record Flow_Control_Granularity
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT2 granularity,
+ BIT6 reserved
+} with {
+ variant "PRESENCE(iEI = '7E'O)";
+ variant (lengthIndicator) "LENGTHTO (granularity,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+//11.3.103
+type record ENB_Identifier
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 tac,
+ OCTN globalEnbID
+
+} with {
+ variant "PRESENCE(iEI = '7F'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1, mccDigit2, mccDigit3, mncDigit3, mncDigit1,
+ mncDigit2, tac, globalEnbID)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+//11.3.104
+type record E_UTRAN_Inter_RAT_Handover_Info
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCTN ue_EUTRA_Capability
+
+} with {
+ variant "PRESENCE(iEI = '80'O)";
+ variant (lengthIndicator) "LENGTHTO (ue_EUTRA_Capability)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+//11.3.105
+type record Subscriber_Profile_ID_For_RAT_Priority
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT8 profile_ID
+} with {
+ variant "PRESENCE(iEI = '81'O)";
+ variant (lengthIndicator) "LENGTHTO (profile_ID)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.106
+type record Request_For_Inter_RAT_Handover_Info
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 interRATHandoverInfoRequest,
+ BIT1 eUTRANinterRATHandoverInfoRequest,
+ BIT6 spare
+} with {
+ variant "PRESENCE(iEI = '82'O)";
+ variant (lengthIndicator) "LENGTHTO (interRATHandoverInfoRequest,eUTRANinterRATHandoverInfoRequest,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.107
+type record Reliable_Inter_RAT_Handover_Info
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 reliableInterRATHandoverInfoIndicator,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '83'O)";
+ variant (lengthIndicator) "LENGTHTO (reliableInterRATHandoverInfoIndicator,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.108
+type record SON_Transfer_Application_Identity_TLV
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCTN sON_Transfer_Application_Identity //3GPP TS 36.413 [36]
+} with {
+ variant "PRESENCE(iEI = '84'O)";
+ variant (lengthIndicator) "LENGTHTO (sON_Transfer_Application_Identity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.109
+type record CSG_Identifier_TLV
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ CSG_Identity cSG_Identity, //3GPP TS 23.003, bits 4 to 8 of octet 6 are spare
+ BIT1 cell_Acces_Mode,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '85'O)";
+ variant (lengthIndicator) "LENGTHTO (cSG_Identity,cell_Acces_Mode,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record CSG_Identity
+{
+ OCT3 cSG_Id24,
+ BIT3 cSG_Id3,
+ BIT5 spare // '0'B
+};
+
+//11.3.110
+type record Tracking_Area_Code_TLV
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT3 valueField //3GPP TS 24.301
+} with {
+ variant "PRESENCE(iEI = '86'O)";
+ variant (lengthIndicator) "LENGTHTO (valueField)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.111
+type record Redirect_Attempt_Flag
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 spare
+} with {
+ variant "PRESENCE(iEI = '87'O)";
+ variant (lengthIndicator) "LENGTHTO (spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.112
+type record Redirection_Indication
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT8 reroute_Reject_Cause_value
+} with {
+ variant "PRESENCE(iEI = '88'O)";
+ variant (lengthIndicator) "LENGTHTO (reroute_Reject_Cause_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.113
+type record Redirection_Completed
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT8 outcome_value
+} with {
+ variant "PRESENCE(iEI = '89'O)";
+ variant (lengthIndicator) "LENGTHTO (outcome_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.114
+type record Unconfirmed_Send_State_Variable
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT7 spare,
+ integer vU
+} with {
+ variant "PRESENCE(iEI = '8A'O)";
+ variant (lengthIndicator) "LENGTHTO (spare,vU)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (vU) "FIELDLENGTH(9)";
+ variant (vU) "BYTEORDER(last)";
+ variant (spare,vU) "FIELDORDER(msb)";
+}
+
+//11.3.115
+type record IRAT_Measurement_Configuration
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ INT6b reportingThreshold,
+ BIT1 repQuant,
+ BIT1 spare,
+ INT1 measurementDuration,
+ Measurement_List measurement_List
+} with {
+ variant "PRESENCE(iEI = '8B'O)";
+ variant (lengthIndicator) "LENGTHTO (reportingThreshold,repQuant,spare,measurementDuration,measurement_List)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record Measurement
+{
+ LIN2_BO_LAST e_ARFCN,
+ BIT3 measurementBandwidth,
+ BIT5 spare
+}
+
+type record of Measurement Measurement_List;
+
+type record RNC_Id_with_Transparent_Container_BSSGP
+{
+ RNC_Identifier_BSSGP target_RNC_Identifier,
+ Source_to_Target_Transparent_Container
+ source_to_Target_Transparent_Container
+}
+
+type union Cell_or_RNC_Id_with_Transparent_Container_BSSGP
+{
+ Cell_Id_with_Transparent_Container_BSSGP cell_Id_with_Transparent_Container,
+ RNC_Id_with_Transparent_Container_BSSGP rnc_Id_with_Transparent_Container
+}
+
+type record Cell_Id_with_Transparent_Container_BSSGP
+{
+ Cell_Identifier target_Cell_Identifier,
+ Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
+ source_BSS_to_Target_BSS_Transparent_Container
+}
+
+//11.3.116
+type record SCI
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 service_Class_Value
+} with {
+ variant "PRESENCE(iEI = '8c'O)";
+ variant (lengthIndicator) "LENGTHTO (service_Class_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.117
+type record GGSN_PGW_Location
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT3 gGSN_PGW_Location_Value,
+ BIT5 spare
+} with {
+ variant "PRESENCE(iEI = '8d'O)";
+ variant (lengthIndicator) "LENGTHTO (gGSN_PGW_Location_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.118
+type record Selected_PLMN_ID
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2
+} with {
+ variant "PRESENCE(iEI = '8e'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.119
+type record Priority_Class_Indicator
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT1 priority_Class_Indicator_Value,
+ BIT7 spare
+} with {
+ variant "PRESENCE(iEI = '8f'O)";
+ variant (lengthIndicator) "LENGTHTO (priority_Class_Indicator_Value,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.120
+type record Source_Cell_ID
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ TrackingAreaIdentity_BSSGP tracking_Area_Identity,
+ ECGI_BSSGP eUTRAN_CGI,
+ octetstring globaleNBID
+} with {
+ variant "PRESENCE(iEI = '90'O)";
+ variant (lengthIndicator) "LENGTHTO (tracking_Area_Identity,eUTRAN_CGI,globaleNBID)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+type record TrackingAreaIdentity_BSSGP
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 tAC
+}
+
+type record ECGI_BSSGP
+{
+ 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)";
+};
+
+
+//11.3.121
+type record IRAT_Measurement_Configuration_Extended_eARFCNs
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ INT6b reportingThreshold,
+ BIT1 repQuant,
+ BIT1 spare,
+ INT1 measurementDuration,
+ Measurement_List_Extended measurement_List
+} with {
+ variant "PRESENCE(iEI = '91'O)";
+ variant (lengthIndicator) "LENGTHTO (reportingThreshold,repQuant,spare,measurementDuration,measurement_List)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+type record Measurement_Extended
+{
+ INT18b_BO_LAST e_ARFCN,
+ BIT3 spare,
+ BIT3 measurementBandwidth
+} with {
+ variant (e_ARFCN,spare,measurementBandwidth) "FIELDORDER(msb)";
+}
+type record of Measurement_Extended Measurement_List_Extended;
+
+//11.3.122
+type record EDRX_Parameters
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ BIT4 eDRX_Cycle_Value,
+ BIT4 spare
+} with {
+ variant "PRESENCE(iEI = '92'O)";
+ variant (lengthIndicator) "LENGTHTO (eDRX_Cycle_Value,spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.123
+type record Time_Until_Next_Paging_Occasion
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ INT6b minutes,
+ BIT2 spare,
+ INT6b seconds,
+ BIT2 spare2
+} with {
+ variant "PRESENCE(iEI = '93'O)";
+ variant (lengthIndicator) "LENGTHTO (minutes,spare,seconds,spare2)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.124
+type record Old_Routing_Area_Identification
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac
+} with {
+ variant "PRESENCE(iEI = '94'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2,lac,rac)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.125
+type record Attach_Indicator
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 spare
+} with {
+ variant "PRESENCE(iEI = '95'O)";
+ variant (lengthIndicator) "LENGTHTO (spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.126
+type record PLMN_Identity
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2
+} with {
+ variant "PRESENCE(iEI = '96'O)";
+ variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//11.3.127
+type record MME_Query
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a lengthIndicator,
+ OCT1 spare
+} with {
+ variant "PRESENCE(iEI = '97'O)";
+ variant (lengthIndicator) "LENGTHTO (spare)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+
+//-----------------------------------------------------------------------------
+// PDUs
+//-----------------------------------------------------------------------------
+
+//10.2.1
+type record PDU_BSSGP_DL_UNITDATA
+{
+ OCT1 bssgpPduType,
+ OCT4 tLLI_current,
+ QoS_Profile_V qoS_Profile,
+ PDU_Lifetime pDU_Lifetime,
+ MS_Radio_Access_Capability mS_Radio_Access_Capability optional,
+ Priority_BSSGP priority optional,
+ DRX_Parameters dRX_Parameters optional,
+ IMSI_BSSGP iMSI optional,
+ TLLI_BSSGP tLLI_old optional,
+ PFI pFI optional,
+ LSA_Information_BSSGP lSA_Information optional,
+ Service_UTRAN_CCO service_UTRAN_CCO optional,
+ Service_Class_Indicator service_Class_Indicator optional,
+ Subscriber_Profile_ID_For_RAT_Priority subscriber_Profile_ID_For_RAT_Priority optional,
+ Redirection_Indication redirection_Indication optional,
+ Redirection_Completed redirection_Completed optional,
+ Unconfirmed_Send_State_Variable unconfirmed_Send_State_Variable optional,
+ SCI sCI optional,
+ GGSN_PGW_Location gGSN_PGW_Location optional,
+ EDRX_Parameters eDRX_Paremeters optional,
+ Old_Routing_Area_Identification old_Routing_Area_Identification optional,
+ Attach_Indicator attach_Indicator optional,
+ Alignment_octets alignment_octets optional,
+ LLC_PDU lLC_PDU,
+ LLC_PDU initialLLC_PDU optional
+} with { variant "PRESENCE(bssgpPduType = '00'O)"; };
+
+//10.2.2
+type record PDU_BSSGP_UL_UNITDATA
+{
+ OCT1 bssgpPduType,
+ OCT4 tLLI,
+ QoS_Profile_V qoS_Profile,
+ Cell_Identifier cell_Identifier,
+ PFI pFI optional,
+ LSA_Identifier_List_BSSGP lSA_Identifier_List optional,
+ Redirect_Attempt_Flag redirect_Attempt_Flag optional,
+ IMSI_BSSGP iMSI_BSSGP optional,
+ Unconfirmed_Send_State_Variable unconfirmed_Send_State_Variable optional,
+ Selected_PLMN_ID selected_PLMN_ID optional,
+ PLMN_Identity selected_Operator optional,
+ PLMN_Identity cS_Registered_Operator optional,
+ Alignment_octets alignment_octets optional,
+ LLC_PDU lLC_PDU
+} with { variant "PRESENCE(bssgpPduType = '01'O)"; };
+
+//10.2.3
+type record PDU_BSSGP_RA_CAPABILITY
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ MS_Radio_Access_Capability mS_Radio_Access_Capability
+} with { variant "PRESENCE(bssgpPduType = '02'O)"; };
+
+//10.2.5
+type record PDU_BSSGP_DL_MBMS_UNITDATA
+{
+ OCT1 bssgpPduType,
+ PDU_Lifetime pDU_Lifetime,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ Alignment_octets alignment_octets optional,
+ LLC_PDU lLC_PDU
+} with { variant "PRESENCE(bssgpPduType = '04'O)"; };
+
+
+// 10.2.6; Deleted from spec 7.10.0,kept in prot module for backward compatibility
+type record PDU_BSSGP_UL_MBMS_UNITDATA
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ Alignment_octets alignment_octets optional,
+ LLC_PDU lLC_PDU
+} with { variant "PRESENCE(bssgpPduType = '05'O)"; };
+
+// 10.3.1
+type record PDU_BSSGP_PAGING_PS
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ DRX_Parameters dRX_Parameters optional,
+ Paging_Field4 paging_Field4,
+ PFI pFI optional,
+ ABQP aBQP optional,
+ QoS_Profile qoS_Profile,
+ TMSI_BSSGP pTMSI optional,
+ EDRX_Parameters eDRX_Paremeters optional
+} with { variant "PRESENCE(bssgpPduType = '06'O)"; };
+
+//10.3.2
+type record PDU_BSSGP_PAGING_CS
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ DRX_Parameters dRX_Parameters,
+ Paging_Field4 paging_Field4,
+ TLLI_BSSGP tLLI optional,
+ Channel_needed channel_needed optional,
+ EMLPP_Priority_BSSGP eMLPP_Priority optional,
+ TMSI_BSSGP tMSI optional,
+ Global_CN_Id_BSSGP global_CN_Id optional
+} with { variant "PRESENCE(bssgpPduType = '07'O)"; };
+
+
+type union Paging_Field4
+{
+ BVCI bVCI,
+ Location_Area location_Area,
+ Routeing_Area routeing_Area,
+ BSS_Area_Indication bSS_Area_Indication
+};
+
+//10.3.3
+type record PDU_BSSGP_RA_CAPABILITY_UPDATE
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag
+} with { variant "PRESENCE(bssgpPduType = '08'O)"; };
+
+
+//10.3.4
+type record PDU_BSSGP_RA_CAPABILITY_UPDATE_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag,
+ IMSI_BSSGP iMSI optional,
+ RA_Cap_UPD_CAUSE rA_Cap_UPDATE_CAUSE,
+ MS_Radio_Access_Capability mS_Radio_Access_Capability optional
+} with { variant "PRESENCE(bssgpPduType = '09'O)"; };
+
+//10.3.5
+type record PDU_BSSGP_RADIO_STATUS
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI optional,
+ TMSI_BSSGP tMSI optional,
+ IMSI_BSSGP iMSI optional,
+ Radio_Cause radio_Cause
+} with { variant "PRESENCE(bssgpPduType = '0A'O)"; };
+
+//10.3.6
+type record PDU_BSSGP_SUSPEND
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area
+} with { variant "PRESENCE(bssgpPduType = '0B'O)"; };
+
+// 10.3.7
+type record PDU_BSSGP_SUSPEND_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area ,
+ Suspend_Reference_Number suspend_Reference_Number
+} with { variant "PRESENCE(bssgpPduType = '0C'O)"; };
+
+// 10.3.8
+type record PDU_BSSGP_SUSPEND_NACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area,
+ Cause_BSSGP cause optional
+} with { variant "PRESENCE(bssgpPduType = '0D'O)"; };
+
+// 10.3.9
+type record PDU_BSSGP_RESUME
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area,
+ Suspend_Reference_Number suspend_Reference_Number
+} with { variant "PRESENCE(bssgpPduType = '0E'O)"; };
+
+//10.3.10
+type record PDU_BSSGP_RESUME_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area
+} with { variant "PRESENCE(bssgpPduType = '0F'O)"; };
+
+// 10.3.11
+type record PDU_BSSGP_RESUME_NACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Routeing_Area routeing_Area,
+ Cause_BSSGP cause optional
+} with { variant "PRESENCE(bssgpPduType = '10'O)"; };
+
+// 10.3.12
+type record PDU_BSSGP_PAGING_PS_REJECT
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ TMSI_BSSGP pTMSI optional,
+ Time_Until_Next_Paging_Occasion time_Until_Next_Paging_Occasion
+} with { variant "PRESENCE(bssgpPduType = '11'O)"; };
+
+// 10.3.13
+type record PDU_BSSGP_DUMMY_PAGING_PS
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ Routeing_Area routeing_Area optional,
+ EDRX_Parameters eDRX_Paremeters optional
+} with { variant "PRESENCE(bssgpPduType = '12'O)"; };
+
+// 10.3.14
+type record PDU_BSSGP_DUMMY_PAGING_PS_RESPONSE
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ Time_Until_Next_Paging_Occasion time_Until_Next_Paging_Occasion
+} with { variant "PRESENCE(bssgpPduType = '13'O)"; };
+
+// 10.3.15
+type record PDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ PLMN_Identity pS_Registered_Operator optional
+} with { variant "PRESENCE(bssgpPduType = '15'O)"; };
+
+// 10.3.15
+type record PDU_BSSGP_MS_REGISTRATION_ENQUIRY
+{
+ OCT1 bssgpPduType,
+ IMSI_BSSGP iMSI,
+ MME_Query mME_Query optional
+} with { variant "PRESENCE(bssgpPduType = '14'O)"; };
+
+// 10.4.1
+type record PDU_BSSGP_FLUSH_LL
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ BVCI bVCI_old,
+ BVCI bVCI_new optional,
+ NSEI_BSSGP nSEI optional
+} with { variant "PRESENCE(bssgpPduType = '2A'O)"; };
+
+// 10.4.2
+type record PDU_BSSGP_FLUSH_LL_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Flush_Action flush_Action,
+ BVCI bVCI_new optional,
+ Number_of_octets_affected number_of_octets_affected,
+ NSEI_BSSGP nSEI optional
+} with { variant "PRESENCE(bssgpPduType = '2B'O)"; };
+
+// 10.4.3
+type record PDU_BSSGP_LLC_DISCARDED
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ LLC_Frames_Discarded lLC_Frames_Discarded,
+ BVCI bVCI,
+ Number_of_octets_affected number_of_octets_deleted,
+ PFI pFI optional
+} with { variant "PRESENCE(bssgpPduType = '2C'O)"; };
+
+// 10.4.4
+type record PDU_BSSGP_FLOW_CONTROL_BVC
+{
+ OCT1 bssgpPduType,
+ Tag tag,
+ BVC_Bucket_Size bVC_Bucket_Size,
+ Bucket_Leak_Rate bucket_Leak_Rate,
+ Bmax_default_MS bmax_default_MS,
+ R_default_MS r_default_MS,
+ Bucket_Full_Ratio bucket_Full_Ratio optional,
+ BVC_Measurement bVC_Measurement optional,
+ Flow_Control_Granularity flow_Control_Granularity optional
+} with { variant "PRESENCE(bssgpPduType = '26'O)"; };
+
+// 10.4.5
+type record PDU_BSSGP_FLOW_CONTROL_BVC_ACK
+{
+ OCT1 bssgpPduType,
+ Tag tag
+} with { variant "PRESENCE(bssgpPduType = '27'O)"; };
+
+// 10.4.6
+type record PDU_BSSGP_FLOW_CONTROL_MS
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag,
+ MS_Bucket_Size mS_Bucket_Size,
+ Bucket_Leak_Rate bucket_Leak_Rate,
+ Bucket_Full_Ratio bucket_Full_Ratio optional,
+ Flow_Control_Granularity flow_Control_Granularity optional
+} with { variant "PRESENCE(bssgpPduType = '28'O)"; };
+
+// 10.4.7
+type record PDU_BSSGP_FLOW_CONTROL_MS_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag
+} with { variant "PRESENCE(bssgpPduType = '29'O)"; };
+
+
+// 10.4.8
+type record PDU_BSSGP_BVC_BLOCK
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI,
+ Cause_BSSGP cause
+} with { variant "PRESENCE(bssgpPduType = '20'O)"; };
+
+// 10.4.9
+type record PDU_BSSGP_BVC_BLOCK_ACK
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI
+} with { variant "PRESENCE(bssgpPduType = '21'O)"; };
+
+// 10.4.10
+type record PDU_BSSGP_BVC_UNBLOCK
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI
+} with { variant "PRESENCE(bssgpPduType = '24'O)"; };
+
+// 10.4.11
+type record PDU_BSSGP_BVC_UNBLOCK_ACK
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI
+} with { variant "PRESENCE(bssgpPduType = '25'O)"; };
+
+// 10.4.12
+type record PDU_BSSGP_BVC_RESET
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI,
+ Cause_BSSGP cause,
+ Cell_Identifier cell_Identifier optional,
+ Feature_bitmap feature_bitmap optional,
+ Extended_Feature_Bitmap extended_Feature_Bitmap optional
+} with { variant "PRESENCE(bssgpPduType = '22'O)"; };
+
+// 10.4.13
+type record PDU_BSSGP_BVC_RESET_ACK
+{
+ OCT1 bssgpPduType,
+ BVCI bVCI,
+ Cell_Identifier cell_Identifier optional,
+ Feature_bitmap feature_bitmap optional,
+ Extended_Feature_Bitmap extended_Feature_Bitmap optional
+} with { variant "PRESENCE(bssgpPduType = '23'O)"; };
+
+// 10.4.14
+type record PDU_BSSGP_STATUS
+{
+ OCT1 bssgpPduType,
+ Cause_BSSGP cause,
+ BVCI bVCI optional,
+ PDU_in_Error pDU_in_Error optional
+} with { variant "PRESENCE(bssgpPduType = '41'O)"; };
+
+// 10.4.15
+type record PDU_BSSGP_SGSN_INVOKE_TRACE
+{
+ OCT1 bssgpPduType,
+ Trace_Type_BSSGP traceType,
+ Trace_Reference_BSSGP traceReference,
+ Trigger_Id_BSSGP triggerId optional,
+ Mobile_Id_BSSGP mobileId optional,
+ OMC_Id_BSSGP omcId optional,
+ TransactionId_BSSGP transactionId optional
+} with { variant "PRESENCE(bssgpPduType = '40'O)"; };
+
+// 10.4.16
+type record PDU_BSSGP_DOWNLOAD_BSS_PFC
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI
+} with { variant "PRESENCE(bssgpPduType = '50'O)"; };
+
+// 10.4.17
+type record PDU_BSSGP_CREATE_BSS_PFC
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ IMSI_BSSGP iMSI optional,
+ PFI pFI,
+ GPRS_Timer pFT,
+ ABQP aBQP,
+ Service_UTRAN_CCO service_UTRAN_CCO optional,
+ MS_Radio_Access_Capability mS_Radio_Access_Capability optional,
+ Priority_BSSGP allocation_Retention_Priority optional,
+ GPRS_Timer t10 optional,
+ Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info optional,
+ E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional,
+ Subscriber_Profile_ID_For_RAT_Priority subscriber_Profile_ID_For_RAT optional
+
+
+} with { variant "PRESENCE(bssgpPduType = '51'O)"; };
+
+// 10.4.18
+type record PDU_BSSGP_CREATE_BSS_PFC_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI,
+ ABQP aBQP,
+ Cause_BSSGP cause optional
+} with { variant "PRESENCE(bssgpPduType = '52'O)"; };
+
+// 10.4.19
+type record PDU_BSSGP_CREATE_BSS_PFC_NACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI,
+ Cause_BSSGP cause
+} with { variant "PRESENCE(bssgpPduType = '53'O)"; };
+
+// 10.4.20
+type record PDU_BSSGP_MODIFY_BSS_PFC
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI,
+ ABQP aBQP
+} with { variant "PRESENCE(bssgpPduType = '54'O)"; };
+
+// 10.4.21
+type record PDU_BSSGP_MODIFY_BSS_PFC_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI,
+ GPRS_Timer pFT,
+ ABQP aBQP
+} with { variant "PRESENCE(bssgpPduType = '55'O)"; };
+
+// 10.4.22
+type record PDU_BSSGP_DELETE_BSS_PFC
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI
+} with { variant "PRESENCE(bssgpPduType = '56'O)"; };
+
+// 10.4.23
+type record PDU_BSSGP_DELETE_BSS_PFC_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI
+} with { variant "PRESENCE(bssgpPduType = '57'O)"; };
+
+// 10.4.24
+type record PDU_BSSGP_FLOW_CONTROL_PFC
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag,
+ MS_Bucket_Size mS_Bucket_Size optional,
+ Bucket_Leak_Rate bucket_Leak_Rate optional,
+ Bucket_Full_Ratio bucket_Full_Ratio optional,
+ PFC_flow_control_parameters pFC_flow_control_parameters,
+ Flow_Control_Granularity flow_Control_Granularity optional
+
+} with { variant "PRESENCE(bssgpPduType = '2D'O)"; };
+
+// 10.4.25
+type record PDU_BSSGP_FLOW_CONTROL_PFC_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Tag tag
+} with { variant "PRESENCE(bssgpPduType = '2E'O)"; };
+
+// 10.4.26
+type record PDU_BSSGP_DELETE_BSS_PFC_REQ
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ PFI pFI,
+ Cause_BSSGP cause
+} with { variant "PRESENCE(bssgpPduType = '58'O)"; };
+
+// 10.4.27
+type record PDU_BSSGP_PS_HANDOVER_REQUIRED
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Cause_BSSGP cause,
+ Cell_Identifier source_Cell_Identifier,
+ Cell_or_RNC_Id_with_Transparent_Container_BSSGP
+ cell_or_RNC_Id_with_Transparent_Container,
+ Active_PFCs_List_BSSGP active_PFCs_List,
+ ENB_Identifier target_ENB_Identifier optional,
+ Reliable_Inter_RAT_Handover_Info
+ reliable_Inter_RAT_Handover_Info optional,
+ CSG_Identifier_TLV cSG_Identifier optional,
+ Tracking_Area_Code_TLV tracking_Area_Code optional
+ } with { variant "PRESENCE(bssgpPduType = '59'O)"; };
+
+
+// 10.4.28
+type record PDU_BSSGP_PS_HANDOVER_REQUIRED_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ List_of_set_up_PFCs_BSSGP list_of_set_up_PFCs,
+ Target_BSS_to_Source_BSS_Transparent_Container
+ target_BSS_to_Source_BSS_Transparent_Container optional,
+ Target_to_Source_Transparent_Container
+ target_to_Source_Transparent_Container optional
+} with { variant "PRESENCE(bssgpPduType = '5A'O)"; };
+
+
+// 10.4.29
+type record PDU_BSSGP_PS_HANDOVER_REQUIRED_NACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Cause_BSSGP cause
+} with { variant "PRESENCE(bssgpPduType = '5B'O)"; };
+
+
+// 10.4.30
+type record PDU_BSSGP_PS_HANDOVER_REQUEST
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ IMSI_BSSGP iMSI,
+ Cause_BSSGP cause,
+ Cell_Identifier source_Cell_Identifier optional,
+ RNC_Identifier_BSSGP source_RNC_Identifier optional,
+ Cell_Identifier target_Cell_Identifier optional, // it is mandatory
+ Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
+ source_BSS_to_Target_BSS_Transparent_Container_BSSGP,
+ PFCs_to_be_set_up_list pFCs_to_be_set_up_list,
+ NAS_container_for_PS_Handover nAS_container_for_PS_Handover optional,
+ Service_UTRAN_CCO service_UTRAN_CCO optional,
+ Subscriber_Profile_ID_For_RAT_Priority
+ subscriber_Profile_ID_For_RAT_Priority optional,
+ Reliable_Inter_RAT_Handover_Info
+ reliable_Inter_RAT_Handover_Info optional
+} with { variant "PRESENCE(bssgpPduType = '5C'O)"; };
+
+
+// 10.4.31
+type record PDU_BSSGP_PS_HANDOVER_REQUEST_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ List_of_set_up_PFCs_BSSGP list_of_set_up_PFCs,
+ Target_BSS_to_Source_BSS_Transparent_Container
+ target_BSS_to_Source_BSS_Transparent_Container
+} with { variant "PRESENCE(bssgpPduType = '5D'O)"; };
+
+
+// 10.4.32
+type record PDU_BSSGP_PS_HANDOVER_REQUEST_NACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Cause_BSSGP cause
+} with { variant "PRESENCE(bssgpPduType = '5E'O)"; };
+
+
+// 10.4.33
+type record PDU_BSSGP_PS_HANDOVER_COMPLETE
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ IMSI_BSSGP iMSI,
+ Cell_Identifier target_Cell_Identifier optional,
+ Request_For_Inter_RAT_Handover_Info
+ request_For_Inter_RAT_Handover_Info optional
+} with { variant "PRESENCE(bssgpPduType = '91'O)"; };
+
+
+// 10.4.34
+type record PDU_BSSGP_PS_HANDOVER_CANCEL
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Cause_BSSGP cause,
+ Cell_Identifier source_Cell_Identifier,
+ Cell_Identifier target_Cell_Identifier optional,
+ RNC_Identifier_BSSGP target_RNC_Identifier optional,
+ ENB_Identifier target_Enb_Identifier optional
+} with { variant "PRESENCE(bssgpPduType = '92'O)"; };
+
+// 10.4.35
+type record PDU_BSSGP_PS_HANDOVER_COMPLETE_ACK
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info_BSSGP,
+ E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional
+} with { variant "PRESENCE(bssgpPduType = '93'O)";};
+
+// 10.4.36
+type record PDU_BSSGP_OVERLOAD
+{
+ OCT1 bssgpPduType,
+ Priority_Class_Indicator priority_Class_Indicator
+} with { variant "PRESENCE(bssgpPduType = '42'O)";};
+
+// 10.5.1
+type record PDU_BSSGP_PERFORM_LOCATION_REQUEST
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ IMSI_BSSGP iMSI,
+ DRX_Parameters dRX_Parameters optional,
+ BVCI bVCI,
+ NSEI_BSSGP nSEI,
+ Location_Type_BSSGP location_Type,
+ Cell_Identifier cell_Identifier,
+ LCS_Capability_BSSGP lCS_Capability optional,
+ LCS_Priority_BSSGP lCS_Priority optional,
+ LCS_QoS_BSSGP lCS_QoS optional,
+ LCS_Client_Type_BSSGP lCS_Client_Type optional,
+ Requested_GPS_Assistance_Data_BSSGP requested_GPS_Assistance_Data optional,
+ IMEI_BSSGP iMEI optional,
+ GANSS_Location_Type gANSS_Location_Type optional,
+ Requested_GANSS_Assistance_Data requested_GANSS_Assistance_Data optional,
+ EDRX_Parameters eDRX_Parameters optional
+} with { variant "PRESENCE(bssgpPduType = '60'O)"; };
+
+
+// 10.5.2
+type record PDU_BSSGP_PERFORM_LOCATION_RESPONSE
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ BVCI bVCI,
+ Location_Estimate_BSSGP location_Estimate optional,
+ Positioning_Data_BSSGP positioning_Data optional,
+ Deciphering_Keys_BSSGP deciphering_Keys optional,
+ LCS_Cause_BSSGP lCS_Cause optional,
+ VelocityData velocityData optional,
+ GANSS_Positioning_Data gANSS_Positioning_Data optional
+} with { variant "PRESENCE(bssgpPduType = '61'O)"; };
+
+
+// 10.5.3
+type record PDU_BSSGP_PERFORM_LOCATION_ABORT
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ BVCI bVCI,
+ LCS_Cause_BSSGP lCS_Cause
+} with { variant "PRESENCE(bssgpPduType = '62'O)"; };
+
+
+// 10.5.4
+type record PDU_BSSGP_POSITION_COMMAND
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ BVCI bVCI,
+ RRLP_Flags_BSSGP rRLP_Flags,
+ RRLP_APDU_BSSGP rRLP_APDU
+} with { variant "PRESENCE(bssgpPduType = '63'O)"; };
+
+
+// 10.5.5
+type record PDU_BSSGP_POSITION_RESPONSE
+{
+ OCT1 bssgpPduType,
+ TLLI_BSSGP tLLI,
+ BVCI bVCI,
+ RRLP_Flags_BSSGP rRLP_Flags optional,
+ RRLP_APDU_BSSGP rRLP_APDU optional,
+ LCS_Cause_BSSGP lCS_Cause optional
+} with { variant "PRESENCE(bssgpPduType = '64'O)"; };
+
+// 10.6.1
+type record PDU_BSSGP_RAN_INFORMATION_REQUEST
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information destination_Cell_Identifier,
+ RIM_Routing_Information source_Cell_Identifier,
+ RAN_Information_Request_RIM_Container rIM_Container
+} with { variant "PRESENCE(bssgpPduType = '71'O)"; };
+
+// 10.6.2
+type record PDU_BSSGP_RAN_INFORMATION
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information destination_Cell_Identifier,
+ RIM_Routing_Information source_Cell_Identifier,
+ RAN_Information_RIM_Container rIM_Container
+} with { variant "PRESENCE(bssgpPduType = '70'O)"; };
+
+// 10.6.3
+type record PDU_BSSGP_RAN_INFORMATION_ACK
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information destination_Cell_Identifier,
+ RIM_Routing_Information source_Cell_Identifier,
+ RAN_Information_Ack_RIM_Container rIM_Container
+} with { variant "PRESENCE(bssgpPduType = '72'O)"; };
+
+// 10.6.4
+type record PDU_BSSGP_RAN_INFORMATION_ERROR
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information destination_Cell_Identifier,
+ RIM_Routing_Information source_Cell_Identifier,
+ RAN_Information_Error_RIM_Container rIM_Container
+} with { variant "PRESENCE(bssgpPduType = '73'O)"; };
+
+// 10.6.5
+type record PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information destination_Cell_Identifier,
+ RIM_Routing_Information source_Cell_Identifier,
+ RAN_Information_Application_Error_RIM_Container rIM_Container
+} with { variant "PRESENCE(bssgpPduType = '74'O)"; };
+
+// 10.7.1
+type record PDU_BSSGP_MBMS_SESSION_START_REQUEST
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ ABQP aBQP,
+ MBMS_Service_Area_Identity_List mBMS_Service_Area_Identity_List,
+ MBMS_Routing_Area_List mBMS_Routing_Area_List,
+ MBMS_Session_Duration mBMS_Session_Duration,
+ MBMS_Session_Information mBMS_Session_Information,
+ Time_To_MBMS_Data_Transfer time_To_MBMS_Data_Transfer,
+ Priority_BSSGP allocation_Retention_Priority optional,
+ MBMS_Session_Repetition_Number mBMS_Session_Repetition_Number optional
+} with { variant "PRESENCE(bssgpPduType = '80'O)"; };
+
+// 10.7.2
+type record PDU_BSSGP_MBMS_SESSION_START_RESPONSE
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ MBMS_Response mBMS_Response
+} with { variant "PRESENCE(bssgpPduType = '81'O)"; };
+
+// 10.7.3
+type record PDU_BSSGP_MBMS_SESSION_STOP_REQUEST
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ MBMS_Stop_Cause mBMS_Stop_Cause
+} with { variant "PRESENCE(bssgpPduType = '82'O)"; };
+
+// 10.7.4
+type record PDU_BSSGP_MBMS_STOP_RESPONSE
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ MBMS_Response mBMS_Response
+} with { variant "PRESENCE(bssgpPduType = '83'O)"; };
+
+
+// 10.7.5
+type record PDU_BSSGP_SESSION_UPDATE_REQUEST
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ ABQP aBQP,
+ MBMS_Service_Area_Identity_List mBMS_Service_Area_Identity_List,
+ MBMS_Routing_Area_List mBMS_Routing_Area_List,
+ MBMS_Session_Duration mBMS_Session_Duration,
+ MBMS_Session_Information mBMS_Session_Information,
+ Time_To_MBMS_Data_Transfer time_To_MBMS_Data_Transfer,
+ Priority_BSSGP allocation_Retention_Priority optional,
+ MBMS_Session_Repetition_Number mBMS_Session_Repetition_Number optional
+} with { variant "PRESENCE(bssgpPduType = '84'O)"; };
+
+
+// 10.7.6
+type record PDU_BSSGP_SESSION_UPDATE_RESPONSE
+{
+ OCT1 bssgpPduType,
+ TMGI_BSSGP tMGI,
+ MBMS_Session_Identity mBMS_Session_Identity optional,
+ MBMS_Response mBMS_Response
+} with { variant "PRESENCE(bssgpPduType = '85'O)"; };
+
+
+
+type union PDU_BSSGP
+{
+
+ PDU_BSSGP_DL_UNITDATA pDU_BSSGP_DL_UNITDATA,
+ PDU_BSSGP_UL_UNITDATA pDU_BSSGP_UL_UNITDATA,
+ PDU_BSSGP_RA_CAPABILITY pDU_BSSGP_RA_CAPABILITY,
+ PDU_BSSGP_DL_MBMS_UNITDATA pDU_BSSGP_DL_MBMS_UNITDATA,
+ PDU_BSSGP_UL_MBMS_UNITDATA pDU_BSSGP_UL_MBMS_UNITDATA,
+ PDU_BSSGP_PAGING_PS pDU_BSSGP_PAGING_PS,
+ PDU_BSSGP_PAGING_CS pDU_BSSGP_PAGING_CS,
+ PDU_BSSGP_RA_CAPABILITY_UPDATE pDU_BSSGP_RA_CAPABILITY_UPDATE,
+ PDU_BSSGP_RA_CAPABILITY_UPDATE_ACK pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK,
+ PDU_BSSGP_RADIO_STATUS pDU_BSSGP_RADIO_STATUS,
+ PDU_BSSGP_SUSPEND pDU_BSSGP_SUSPEND,
+ PDU_BSSGP_SUSPEND_ACK pDU_BSSGP_SUSPEND_ACK,
+ PDU_BSSGP_SUSPEND_NACK pDU_BSSGP_SUSPEND_NACK,
+ PDU_BSSGP_RESUME pDU_BSSGP_RESUME,
+ PDU_BSSGP_RESUME_ACK pDU_BSSGP_RESUME_ACK,
+ PDU_BSSGP_RESUME_NACK pDU_BSSGP_RESUME_NACK,
+ PDU_BSSGP_PAGING_PS_REJECT pDU_BSSGP_PAGING_PS_REJECT,
+ PDU_BSSGP_DUMMY_PAGING_PS pDU_BSSGP_DUMMY_PAGING_PS,
+ PDU_BSSGP_DUMMY_PAGING_PS_RESPONSE pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE,
+ PDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE,
+ PDU_BSSGP_MS_REGISTRATION_ENQUIRY pDU_BSSGP_MS_REGISTRATION_ENQUIRY,
+ PDU_BSSGP_FLUSH_LL pDU_BSSGP_FLUSH_LL,
+ PDU_BSSGP_FLUSH_LL_ACK pDU_BSSGP_FLUSH_LL_ACK,
+ PDU_BSSGP_LLC_DISCARDED pDU_BSSGP_LLC_DISCARDED,
+ PDU_BSSGP_FLOW_CONTROL_BVC pDU_BSSGP_FLOW_CONTROL_BVC,
+ PDU_BSSGP_FLOW_CONTROL_BVC_ACK pDU_BSSGP_FLOW_CONTROL_BVC_ACK,
+ PDU_BSSGP_FLOW_CONTROL_MS pDU_BSSGP_FLOW_CONTROL_MS,
+ PDU_BSSGP_FLOW_CONTROL_MS_ACK pDU_BSSGP_FLOW_CONTROL_MS_ACK,
+ PDU_BSSGP_FLOW_CONTROL_PFC pDU_BSSGP_FLOW_CONTROL_PFC,
+ PDU_BSSGP_FLOW_CONTROL_PFC_ACK pDU_BSSGP_FLOW_CONTROL_PFC_ACK,
+ PDU_BSSGP_STATUS pDU_BSSGP_STATUS,
+ PDU_BSSGP_BVC_BLOCK pDU_BSSGP_BVC_BLOCK,
+ PDU_BSSGP_BVC_BLOCK_ACK pDU_BSSGP_BVC_BLOCK_ACK,
+ PDU_BSSGP_BVC_UNBLOCK pDU_BSSGP_BVC_UNBLOCK,
+ PDU_BSSGP_BVC_UNBLOCK_ACK pDU_BSSGP_BVC_UNBLOCK_ACK,
+ PDU_BSSGP_BVC_RESET pDU_BSSGP_BVC_RESET,
+ PDU_BSSGP_BVC_RESET_ACK pDU_BSSGP_BVC_RESET_ACK,
+ PDU_BSSGP_SGSN_INVOKE_TRACE pDU_BSSGP_SGSN_INVOKE_TRACE,
+ PDU_BSSGP_DOWNLOAD_BSS_PFC pDU_BSSGP_DOWNLOAD_BSS_PFC,
+ PDU_BSSGP_CREATE_BSS_PFC pDU_BSSGP_CREATE_BSS_PFC,
+ PDU_BSSGP_CREATE_BSS_PFC_ACK pDU_BSSGP_CREATE_BSS_PFC_ACK,
+ PDU_BSSGP_CREATE_BSS_PFC_NACK pDU_BSSGP_CREATE_BSS_PFC_NACK,
+ PDU_BSSGP_MODIFY_BSS_PFC pDU_BSSGP_MODIFY_BSS_PFC,
+ PDU_BSSGP_MODIFY_BSS_PFC_ACK pDU_BSSGP_MODIFY_BSS_PFC_ACK,
+ PDU_BSSGP_DELETE_BSS_PFC pDU_BSSGP_DELETE_BSS_PFC,
+ PDU_BSSGP_DELETE_BSS_PFC_ACK pDU_BSSGP_DELETE_BSS_PFC_ACK,
+ PDU_BSSGP_DELETE_BSS_PFC_REQ pDU_BSSGP_DELETE_BSS_PFC_REQ,
+ PDU_BSSGP_PS_HANDOVER_REQUIRED pDU_BSSGP_PS_HANDOVER_REQUIRED,
+ PDU_BSSGP_PS_HANDOVER_REQUIRED_ACK pDU_BSSGP_PS_HANDOVER_REQUIRED_ACK,
+ PDU_BSSGP_PS_HANDOVER_REQUIRED_NACK pDU_BSSGP_PS_HANDOVER_REQUIRED_NACK,
+ PDU_BSSGP_PS_HANDOVER_REQUEST pDU_BSSGP_PS_HANDOVER_REQUEST,
+ PDU_BSSGP_PS_HANDOVER_REQUEST_ACK pDU_BSSGP_PS_HANDOVER_REQUEST_ACK,
+ PDU_BSSGP_PS_HANDOVER_REQUEST_NACK pDU_BSSGP_PS_HANDOVER_REQUEST_NACK,
+ PDU_BSSGP_PS_HANDOVER_COMPLETE pDU_BSSGP_PS_HANDOVER_COMPLETE,
+ PDU_BSSGP_PS_HANDOVER_COMPLETE_ACK pDU_BSSGP_PS_HANDOVER_COMPLETE_ACK,
+ PDU_BSSGP_PS_HANDOVER_CANCEL pDU_BSSGP_PS_HANDOVER_CANCEL,
+ PDU_BSSGP_OVERLOAD pDU_BSSGP_OVERLOAD,
+ PDU_BSSGP_PERFORM_LOCATION_REQUEST pDU_BSSGP_PERFORM_LOCATION_REQUEST,
+ PDU_BSSGP_PERFORM_LOCATION_RESPONSE pDU_BSSGP_PERFORM_LOCATION_RESPONSE,
+ PDU_BSSGP_PERFORM_LOCATION_ABORT pDU_BSSGP_PERFORM_LOCATION_ABORT,
+ PDU_BSSGP_POSITION_COMMAND pDU_BSSGP_POSITION_COMMAND,
+ PDU_BSSGP_POSITION_RESPONSE pDU_BSSGP_POSITION_RESPONSE,
+ PDU_BSSGP_RAN_INFORMATION pDU_BSSGP_RAN_INFORMATION,
+ PDU_BSSGP_RAN_INFORMATION_REQUEST pDU_BSSGP_RAN_INFORMATION_REQUEST,
+ PDU_BSSGP_RAN_INFORMATION_ACK pDU_BSSGP_RAN_INFORMATION_ACK,
+ PDU_BSSGP_RAN_INFORMATION_ERROR pDU_BSSGP_RAN_INFORMATION_ERROR,
+ PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
+ pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR,
+ PDU_BSSGP_MBMS_SESSION_START_REQUEST pDU_BSSGP_MBMS_SESSION_START_REQUEST,
+ PDU_BSSGP_MBMS_SESSION_START_RESPONSE pDU_BSSGP_MBMS_SESSION_START_RESPONSE,
+ PDU_BSSGP_MBMS_SESSION_STOP_REQUEST pDU_BSSGP_MBMS_SESSION_STOP_REQUEST,
+ PDU_BSSGP_MBMS_STOP_RESPONSE pDU_BSSGP_MBMS_STOP_RESPONSE,
+ PDU_BSSGP_SESSION_UPDATE_REQUEST pDU_BSSGP_SESSION_UPDATE_REQUEST,
+ PDU_BSSGP_SESSION_UPDATE_RESPONSE pDU_BSSGP_SESSION_UPDATE_RESPONSE,
+ octetstring pDU_BSSGP_unknown
+} with { variant "" };
+
+} with {encode "RAW"} // end of module
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/BSSMAP_v11.2.0_CNL113761.tpd b/BSSMAP_v11.2.0_CNL113761_LATEST/BSSMAP_v11.2.0_CNL113761.tpd
new file mode 100644
index 00000000..da7ed53b
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/BSSMAP_v11.2.0_CNL113761.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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) has been supplied.
+
+
+ File: BSSMAP_v11.2.0_CNL113761.tpd
+ Description: tpd project file
+ Rev: R1A01
+ Prodnr: CNL 113 761
+ Updated: 2012-11-09
+ Contact: http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>BSSMAP_v11.2.0_CNL113761</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+ </ReferencedProjects>
+ <Folders>
+ <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+ <FolderResource projectRelativePath="src" relativeURI="src"/>
+ </Folders>
+ <Files>
+ <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_FS.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf"/>
+ <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf"/>
+ <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_UG.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf"/>
+ <FileResource projectRelativePath="src/BSSAP_Types.ttcn" relativeURI="/src/BSSAP_Types.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <generateInternalMakefile>true</generateInternalMakefile>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/BSSMAP_v11.2.0_CNL113761</targetExecutable>
+ <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ <FolderProperties>
+ <FolderResource>
+ <FolderPath>doc</FolderPath>
+ <FolderProperties>
+ <ExcludeFromBuild>true</ExcludeFromBuild>
+ </FolderProperties>
+ </FolderResource>
+ </FolderProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information>
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf
new file mode 100644
index 00000000..ee85895b
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf
Binary files differ
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf
new file mode 100644
index 00000000..59581708
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf
Binary files differ
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf
new file mode 100644
index 00000000..a5c86418
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf
Binary files differ
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSAP_Types.ttcn b/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSAP_Types.ttcn
new file mode 100644
index 00000000..8c8b5dd3
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSAP_Types.ttcn
@@ -0,0 +1,2984 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: BSSAP_Types.ttcn
+// Rev: R1A01
+// Prodnr: CNL 113 761
+// Updated: 2012-10-30
+// Contact: http://ttcn.ericsson.se
+
+module BSSAP_Types {
+
+// This module contains the type definitions and encoding attributes for
+// Base Station System. The signalling protocol reference model is based
+// on 48.008 V11.2.0 Figure 1.
+//
+// ------------------------------
+// | BSSAP |
+// | |
+// | ------------------------- | BSSMAP layer is defined in 48.008 v11.2.0
+// | | | | |
+// | | DTAP | BSSMAP | |
+// | | | | |
+// | ------------------------- |
+// | | Distribution Function | |
+// |=============================|
+// | SCCP |
+// ------------------------------
+
+
+import from General_Types all;
+
+external function enc_PDU_BSSAP(in PDU_BSSAP pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)" }
+external function dec_PDU_BSSAP(in octetstring stream) return PDU_BSSAP
+with { extension "prototype(convert) decode(RAW)" }
+
+external function enc_PDU_BSSAP_fast(in PDU_BSSAP pdu, out octetstring stream)
+with { extension "prototype(fast) encode(RAW)" }
+external function dec_PDU_BSSAP_backtrack(in octetstring stream, out PDU_BSSAP pdu) return integer
+with { extension "prototype(backtrack) decode(RAW)" }
+
+///////////////////////////////////////////
+// BSSMAP information element definition
+///////////////////////////////////////////
+
+// Circuit Identity Code - 48.008 subclause 3.2.2.2
+type record BSSMAP_IE_CircuitIdentityCode
+{
+ OCT1 elementIdentifier, // '01'O
+ OCT1 cicHigh, // CIC = 11 bits of used information
+ OCT1 cicLow // (last 5 bits not used)
+} with { variant "PRESENCE (elementIdentifier = '01'O)" }
+
+
+// Connection Release Requested - 48.008 subclause 3.2.2.3
+type record BSSMAP_IE_ConnectionReleaseRequested
+{
+ OCT1 elementIdentifier // '36'O
+} with { variant "PRESENCE (elementIdentifier = '36'O)" }
+
+
+// Resource Available - 48.008 subclause 3.2.2.4
+type record BSSMAP_IE_ResourceAvailable
+{
+ OCT1 elementIdentifier, // '03'O
+ OCT4 band1,
+ OCT4 band2,
+ OCT4 band3,
+ OCT4 band4,
+ OCT4 band5
+} with { variant "PRESENCE (elementIdentifier = '03'O)" }
+
+// Cause - 48.008 subclause 3.2.2.5
+type record BSSMAP_IE_Cause
+{
+ OCT1 elementIdentifier, // '04'O
+ INT1 lengthIndicator,
+ BIT7 causeValue,
+ BIT1 extensionCauseValue,
+ OCT1 spare1 optional
+} with { variant "PRESENCE (elementIdentifier = '04'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (causeValue,extensionCauseValue,spare1)";
+ variant (spare1) "PRESENCE(extensionCauseValue = '1'B)"}
+
+// IMSI - 48.008 subclause 3.2.2.6
+type record BSSMAP_IE_IMSI
+{
+ OCT1 elementIdentifier, // '08'O
+ INT1 lengthIndicator,
+ BIT3 typeOfIdentity,
+ BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits
+ HEX5_16 digits // if nr of digits is even, the last digit: '1111'B
+} with { variant "PRESENCE (elementIdentifier = '08'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)";
+ variant "PADDING(yes),PADDING_PATTERN('1'B)"}
+
+
+// TMSI - 48.008 subclause 3.2.2.7
+type record BSSMAP_IE_TMSI
+{
+ OCT1 elementIdentifier, // '09'O
+ INT1 lengthIndicator,
+ OCT4 tmsiOctets // octets 3-6 in real
+} with { variant "PRESENCE (elementIdentifier = '09'O)"
+ variant (lengthIndicator) "LENGTHTO (tmsiOctets)"}
+
+
+// Number Of MSs - 48.008 subclause 3.2.2.8
+type record BSSMAP_IE_NumberOfMSs
+{
+ OCT1 elementIdentifier, // '0E'O
+ OCT1 NrOfHoCandidates
+}
+
+
+// Layer 3 Header Info - 48.008 subclause 3.2.2.9
+type record BSSMAP_IE_Layer3HeaderInfo
+{
+ OCT1 elementIdentifier, //'07'O
+ INT1 lengthIndicator, //'02'O
+ BIT4 pd, // '0110'B
+ BIT4 spare1_4, // '0000'B
+ BIT4 ti, // '0000'B
+ BIT4 spare2_4 // '0000'B
+} with { variant "PRESENCE (elementIdentifier = '07'O)"
+ variant (lengthIndicator) "LENGTHTO (pd, spare1_4, ti, spare2_4)" }
+
+
+// Encryption Information - 48.008 subclause 3.2.2.10
+type record BSSMAP_IE_EncryptionInformation
+{
+ OCT1 elementIdentifier, // '0A'O
+ INT1 lengthIndicator, // 1..9
+ OCT1 permittedAlgorithms,// '1'B encryption no
+ // '0' B GSM A5/1 not useable
+ // '1' B GSM A5/useable 1
+ // '0' B GSM A5/2 not useable
+ // '1' B GSM A5/useable 2
+ // '0' B GSM A5/3 not useable
+ // '1' B GSM A5/useable 3
+ // '0' B GSM A5/4 not useable
+ // '1' B GSM A5/useable 4
+ // '0' B GSM A5/5 useable not
+ // '1' B GSM A5/useable 5
+ // '0' B GSM A5/6 useable not
+ // '1' B GSM A5/useable 6
+ // '0' B GSM A5/7 useable not
+ // '1' B GSM A5/useable 7
+ OCT8 key optional
+} with { variant "PRESENCE (elementIdentifier = '0A'O)"
+ variant (lengthIndicator) "LENGTHTO (permittedAlgorithms, key)" }
+
+
+// Channel Type - 48.008 subclause 3.2.2.11
+type record BSSMAP_IE_ChannelType
+{
+ OCT1 elementIdentifier, //'0B'O
+ INT1 lengthIndicator, // 3..8
+ BIT4 speechOrDataIndicator, //'0001'B Speech,'0010'B Data '0011'B Sign
+ BIT4 spare1_4, // '0000'B
+ OCT1 channelRateAndType, //
+ octetstring speechId_DataIndicator
+} with {variant (lengthIndicator) "LENGTHTO (speechOrDataIndicator,
+ spare1_4, channelRateAndType, speechId_DataIndicator)" }
+
+
+// Periodicity - 48.008 subclause 3.2.2.12
+type record BSSMAP_IE_Periodicity
+{
+ OCT1 elementIdentifier, //'0C'O
+ OCT1 periodicity
+}
+
+
+// Extended Resource Indicator - 48.008 subclause 3.2.2.13
+type record BSSMAP_IE_ExtendedResourceInd
+{
+ OCT1 elementIdentifier, //'0D'O
+ BIT1 TARR,
+ BIT1 SM,
+ BIT6 spare
+} with { variant "PRESENCE (elementIdentifier = '0D'O)" }
+
+
+// Total Resource Accessible - 48.008 subclause 3.2.2.14
+type record BSSMAP_IE_TotalResourceAccessible
+{
+ OCT1 elementIdentifier, //'22'O
+ OCT2 nrOfFullRateCh,
+ OCT2 nrOfHalfRateCh
+} with { variant "PRESENCE (elementIdentifier = '22'O)" }
+
+
+// LSA Identifier - 48.008 subclause 3.2.2.15
+type record BSSMAP_IE_LSAIdentifier
+{
+ OCT1 elementIdentifier, //'3B'O
+ INT1 lengthIndicator, // 3
+ BSSMAP_FIELD_LSAId lSAID
+} with { variant "PRESENCE (elementIdentifier = '3B'O)"
+ variant (lengthIndicator) "LENGTHTO (lSAID)"}
+
+type record BSSMAP_FIELD_LSAId
+{
+ OCT1 lSAID,
+ OCT1 lSAIDcont1,
+ OCT1 lSAIDcont2
+}
+
+
+// LSA Identifier List - 48.008 subclause 3.2.2.16
+type record BSSMAP_IE_LSAIdentifierList
+{
+ OCT1 elementIdentifier, //'3C'O
+ INT1 lengthIndicator,
+ BIT1 EP,
+ BIT7 spare,
+ BSSMAP_FIELD_LSAIdList lSAIDlist
+} with {variant (lengthIndicator) "LENGTHTO (EP,spare,lSAIDlist)"}
+
+type record of BSSMAP_FIELD_LSAId BSSMAP_FIELD_LSAIdList
+
+
+// Cell Identifier - 48.008 subclause 3.2.2.17
+type record BSSMAP_IE_CellIdentifier
+{
+ OCT1 elementIdentifier, // '05'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentification cellIdentification
+} with { variant "PRESENCE (elementIdentifier = '05'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentification)";
+ variant (cellIdentification) "CROSSTAG(
+ cI_CGI, cellIdentifierDiscriminator='0000'B;
+ cI_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cI_CI, cellIdentifierDiscriminator='0010'B;
+ cI_noCell, cellIdentifierDiscriminator='0011'B;
+ cI_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B;
+ cI_RNC, cellIdentifierDiscriminator='1001'B;
+ cI_LAC_RNC, cellIdentifierDiscriminator='1010'B;
+ cI_SAI, cellIdentifierDiscriminator='1011'B;
+ ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B;
+ )"}
+
+type union BSSMAP_FIELD_CellIdentification
+{
+ BSSMAP_FIELD_CellIdentification_CGI cI_CGI, // discriminator = '0000'B
+ BSSMAP_FIELD_CellIdentification_LAC_CI cI_LAC_CI, // discriminator = '0001'B
+ OCT2 cI_CI, // discriminator = '0010'B
+ OCT0 cI_noCell, // discriminator = '0011'B
+ BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC cI_PLMN_LAC_RNC,// discriminator = '1000'B
+ OCT2 cI_RNC, // discriminator = '1001'B
+ BSSMAP_FIELD_CellIdentification_LAC_RNC cI_LAC_RNC,// discriminator = '1010'B
+ BSSMAP_FIELD_CellIdentification_SAI cI_SAI, // discriminator = '1011'B
+ BSSMAP_FIELD_LAC_RNC_CI ci_LAC_RNC_CI // discriminator = '1100'B
+}
+
+type record BSSMAP_FIELD_CellIdentification_CGI
+{
+ OCT3 mcc_mnc,
+ OCT2 lac,
+ OCT2 ci
+}
+
+type record BSSMAP_FIELD_CellIdentification_LAC_CI
+{
+ OCT2 lac,
+ OCT2 ci
+}
+
+type record BSSMAP_FIELD_CellIdentification_LAI
+{
+ OCT3 mcc_mnc,
+ OCT2 lac
+}
+
+type record BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC
+{
+ OCT3 mcc_mnc,
+ OCT2 lac,
+ OCT2 rncId
+}
+
+type record BSSMAP_FIELD_CellIdentification_LAC_RNC
+{
+ OCT2 lac,
+ OCT2 rncId
+}
+
+type record BSSMAP_FIELD_CellIdentification_SAI
+{
+ OCT3 mcc_mnc,
+ OCT2 lac,
+ OCT2 sac
+}
+
+type record BSSMAP_FIELD_LAC_RNC_CI
+{
+ OCT3 mcc_mnc,
+ OCT2 lac,
+ OCT2 rncId,
+ OCT2 ci
+}
+
+
+// Cell Identifier List - 48.008 subclause 3.2.2.27
+type record BSSMAP_IE_CellIdentifierList
+{
+ OCT1 elementIdentifier, // '1A'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentificationList cellIdentificationList
+} with { variant "PRESENCE (elementIdentifier = '1A'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationList)";
+ variant (cellIdentificationList) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_noCell, cellIdentifierDiscriminator='0011'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B;
+ cIl_RNC, cellIdentifierDiscriminator='1001'B;
+ cIl_LAC_RNC, cellIdentifierDiscriminator='1010'B;)"}
+
+type union BSSMAP_FIELD_CellIdentificationList {
+ BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B
+ BSSMAP_FIELD_CellIdentificationList_LAC_CI cIl_LAC_CI,// discr. = '0001'B
+ RecordOfOCT2 cIl_CI, // discr. = '0010'B
+ OCT0 cIl_noCell,// discr. = '0011'B
+ BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B only paging
+ RecordOfOCT2 cIl_LAC, // discr. = '0101'B only paging
+ OCT0 cIl_allInBSS, // discr. = '0110'B only paging
+ BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC cIl_PLMN_LAC_RNC, // discr. = '1000'B
+ RecordOfOCT2 cIl_RNC, // discr. = '1001'B
+ BSSMAP_FIELD_CellIdentificationList_LAC_RNC cIl_LAC_RNC // discr. = '1010'B
+}
+
+
+type record of OCT2
+RecordOfOCT2
+
+type record of BSSMAP_FIELD_CellIdentification_CGI
+BSSMAP_FIELD_CellIdentificationList_CGI
+
+type record of BSSMAP_FIELD_CellIdentification_LAC_CI
+BSSMAP_FIELD_CellIdentificationList_LAC_CI
+
+type record of BSSMAP_FIELD_CellIdentification_LAI
+BSSMAP_FIELD_CellIdentificationList_LAI
+
+type record of BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC
+BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC
+
+type record of BSSMAP_FIELD_CellIdentification_LAC_RNC
+BSSMAP_FIELD_CellIdentificationList_LAC_RNC
+
+type record of BSSMAP_FIELD_CellIdentification_SAI
+BSSMAP_FIELD_CellIdentificationList_SAI
+
+// 3.2.2.27a Cell Identifier List Segment
+type record BSSMAP_IE_CellIdentifierListSegment
+{
+ OCT1 elementIdentifier, // '6D'O
+ INT1 lengthIndicator,
+ BIT4 sequenceNumber,
+ BIT4 sequenceLength,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare,
+ BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment
+} with { variant "PRESENCE (elementIdentifier = '6D'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(sequenceNumber, sequenceLength, cellIdentifierDiscriminator, spare, cellIdentificationListSegment)";
+ variant (cellIdentificationListSegment) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_noCell, cellIdentifierDiscriminator='0011'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"}
+
+
+
+type union BSSMAP_FIELD_CellIdentificationListSegment
+{
+ BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. ='0000'B;
+ BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. ='0001'B
+ BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B;
+ OCT0 cIl_noCell, // discr. ='0011'B;
+ BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. ='0100'B;
+ RecordOfOCT2 cIl_LAC, // discr. ='0101'B;
+ OCT0 cIl_allInBSS, // discr. ='0101'B;
+ RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B;
+}
+
+type record BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment
+{
+ OCT3 mcc_mnc,
+ BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_ci
+}
+
+type record BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment
+{
+ OCT3 mcc_mnc,
+ OCT2 lac,
+ RecordOfOCT2 ci
+}
+
+type record of OCT3
+RecordOfOCT3
+
+
+// 3.2.2.27b Cell Identifier List Segment for Established Cells
+type record BSSMAP_IE_CellIdentifierListSegmentEstCells
+{
+ OCT1 elementIdentifier, // '71'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells
+} with { variant "PRESENCE (elementIdentifier = '71'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListEstCells)";
+ variant (cellIdentificationListEstCells) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"}
+
+
+type union BSSMAP_FIELD_CellIdentificationListEstablishment
+{
+ BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B
+ BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. = '0001'B;
+ BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. = '0010'B;
+ BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B;
+ RecordOfOCT2 cIl_LAC, // discr. = '0101'B;
+ OCT0 cIl_allInBSS, // discr. = '0110'B;
+ RecordOfOCT3 cIl_MCC_MNC // discr. = '0111'B;
+ }
+
+// 3.2.2.27c
+type record BSSMAP_IE_CellIdentifierListSegmentCellsToEst
+{
+ OCT1 elementIdentifier, // '73'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst
+} with { variant "PRESENCE (elementIdentifier = '72'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListCellsToEst)";
+ variant (cellIdentificationListCellsToEst) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"}
+
+// 3.2.2.27e
+type record BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent
+{
+ OCT1 elementIdentifier, // '74'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent
+} with { variant "PRESENCE (elementIdentifier = '74'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListReleasedCellsNoUserPresent)";
+ variant (cellIdentificationListReleasedCellsNoUserPresent) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"}
+
+ // 3.2.2.27f
+type record BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible
+{
+ OCT1 elementIdentifier, // '73'O
+ INT1 lengthIndicator,
+ BIT4 cellIdentifierDiscriminator,
+ BIT4 spare1_4, // '0000'B
+ BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible
+} with { variant "PRESENCE (elementIdentifier = '73'O)"
+ variant (lengthIndicator)
+ "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListNotEstablishedCellsNoEstPossible)";
+ variant (cellIdentificationListNotEstablishedCellsNoEstPossible) "CROSSTAG(
+ cIl_CGI, cellIdentifierDiscriminator='0000'B;
+ cIl_LAC_CI, cellIdentifierDiscriminator='0001'B;
+ cIl_CI, cellIdentifierDiscriminator='0010'B;
+ cIl_LAI, cellIdentifierDiscriminator='0100'B;
+ cIl_LAC, cellIdentifierDiscriminator='0101'B;
+ cIl_allInBSS, cellIdentifierDiscriminator='0110'B;
+ cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"}
+
+
+// Priority - 48.008 subclause 3.2.2.18
+type record BSSMAP_IE_Priority
+{
+ OCT1 elementIdentifier, //'06'O
+ INT1 lengthIndicator, //'01'O
+ BIT1 pvi, // '0'B connection canNOT be preempted by other allocation
+ // '1'B connection might be preempted by other allocation
+ BIT1 qa, // '0'B queuing not allowed - '1'B queuing allowed
+ BIT4 priorityLevel, // '0000'B spare
+ // '0001'B priority 1 level (highest)
+ // '1110'B priority 14 level (lowest)
+ // '1111'B priority used not
+ BIT1 pci, // '0'B allocation canNOT preempt connection other
+ // '1'B allocation might preempt other connection
+ BIT1 spare1_1 // '0'B
+} with { variant "PRESENCE (elementIdentifier = '06'O)"
+ variant(lengthIndicator) "LENGTHTO(pvi,qa,priorityLevel,pci,spare1_1)" }
+
+
+// Classmark Information Type 2 - 48.008 subclause 3.2.2.19
+type record BSSMAP_IE_ClassmarkInformationType2
+{
+ OCT1 elementIdentifier, //'12'O
+ INT1 lengthIndicator, // '02'O or '03'O
+ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS)
+ // '001'B class2 (for GSM+DCS+PCS)
+ // '010'B class3 (for GSM+DCS+PCS)
+ // '011'class4 B (only for GSM)
+ // '100'class5 B (only for GSM)
+ BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B)
+ BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B)
+ BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS)
+ // '00'B reserved (PCS)
+ // '01'B used by phase2 MSs (GSM+DCS)
+ // '01'B used by PCS1900 MSs phase1 (PCS)
+ BIT1 spare1_1, // '0'B
+ BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B)
+ BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B)
+ BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B)
+ BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B)
+ BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS)
+ // '00'reserved B (PCS)
+ // '01'B capability of notation ellipsis
+ // '10'B for future use
+ // '11'B for use future
+ BIT1 ps_Capability, // ignored, if received
+ BIT1 spare2_1, // '0'B
+ BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5
+} with { variant "PRESENCE (elementIdentifier = '12'O)";
+ variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1,
+ esind, revisionLevel, spare1_1, fc, vgcs, vbs, sm_Capability,
+ ss_ScreenIndicator, ps_Capability, spare2_1,
+ classmarkInformationType2_oct5)" }
+
+// Helper type for BSSMAP Applib
+type record BSSMAP_IE_ClassmarkInformationType2_V
+{
+ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS)
+ // '001'B class2 (for GSM+DCS+PCS)
+ // '010'B class3 (for GSM+DCS+PCS)
+ // '011'class4 B (only for GSM)
+ // '100'class5 B (only for GSM)
+ BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B)
+ BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B)
+ BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS)
+ // '00'B reserved (PCS)
+ // '01'B used by phase2 MSs (GSM+DCS)
+ // '01'B used by PCS1900 MSs phase1 (PCS)
+ BIT1 spare1_1, // '0'B
+ BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B)
+ BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B)
+ BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B)
+ BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B)
+ BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS)
+ // '00'reserved B (PCS)
+ // '01'B capability of notation ellipsis
+ // '10'B for future use
+ // '11'B for use future
+ BIT1 ps_Capability, // ignored, if received
+ BIT1 spare2_1, // '0'B
+ BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5
+}
+
+type record BSSMAP_FIELD_ClassmarkInformationType2_oct5
+{
+ BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B)
+ BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B)
+ BIT1 cmsp,//"Network initiated MO CM connectionrequest" not supported ('0'B)
+ //or supported for at least one CM protocol ('1'B)
+ BIT1 solsa,// The ME support SoLSA ('1'B) or not ('0'B)
+ BIT1 ucs2, // '0'B ME has a preference for the default alphabet over UCS2
+ // '1'B ME has no preference between the use of the default
+ // alphabet and the use of UCS2
+ BIT1 lcsvacap, // LCS value added location request notification capability
+ // supported ('1'B) or not ('0'B)
+ BIT1 spare,// '0'B
+ BIT1 cm3 // '0'B Any additional capability info ('1'B) or not ('0'B)
+}
+
+
+// Classmark Information Type 3 - 48.008 subclause 3.2.2.20
+type record BSSMAP_IE_ClassmarkInformationType3
+{
+ OCT1 elementIdentifier, //'13'O
+ INT1 lengthIndicator, // '01'O .. '0C'O
+ OCT1_32 classmark3ValuePart
+} with { variant "PRESENCE (elementIdentifier = '13'O)"
+ variant (lengthIndicator) "LENGTHTO (classmark3ValuePart)"}
+
+
+// Interference Band To Be Used - 48.008 subclause 3.2.2.21
+type record BSSMAP_IE_InterferenceBandToBeUsed
+{
+ OCT1 elementIdentifier, // '14'O
+ BIT5 band,
+ BIT3 spare
+} with { variant "PRESENCE (elementIdentifier = '14'O)" }
+
+
+// RR Cause - 48.008 subclause 3.2.2.22
+type record BSSMAP_IE_RR_Cause
+{
+ OCT1 elementIdentifier, // '15'O
+ OCT1 rr_Cause
+} with { variant "PRESENCE (elementIdentifier = '15'O)" }
+
+
+// LSA Information - 48.008 subclause 3.2.2.23
+type record BSSMAP_IE_LSAInformation
+{
+ OCT1 elementIdentifier, //'3D'O
+ INT1 lengthIndicator,
+ BIT1 lSAonly,
+ BIT7 spare,
+ BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List
+} with { variant "PRESENCE (elementIdentifier = '3D'O)"
+ variant (lengthIndicator) "LENGTHTO (lSAonly,spare,lSAIdAttrib_List)" }
+
+type record BSSMAP_FIELD_LSAIdAttrib
+{
+ BIT4 priority,
+ BIT1 pref,
+ BIT1 act,
+ BIT2 spare
+}
+
+type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List
+
+
+// Layer 3 Information - 48.008 subclause 3.2.2.24
+type record BSSMAP_IE_Layer3Information
+{
+ OCT1 elementIdentifier, // '17'O
+ INT1 lengthIndicator,
+ octetstring layer3info
+} with { variant "PRESENCE (elementIdentifier = '17'O)"
+ variant (lengthIndicator) "LENGTHTO (layer3info)"}
+
+// DLCI - 48.008 subclause 3.2.2.25 (48006 v8.0.0 section 9.3.2)
+type record BSSMAP_IE_DLCI
+{
+ OCT1 elementIdentifier, // '18'O
+ BIT3 sapiValue, // '011'O Short Message Signalling Service
+ BIT3 spare,
+ BIT1 c1,
+ BIT1 c2
+}
+
+
+// Downlink DTX Flag - 48.008 subclause 3.2.2.26
+type record BSSMAP_IE_DownLinkDTXFlag
+{
+ OCT1 elementIdentifier, // '19'O
+ BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink
+ BIT7 spare1_7 // '0000000'B
+} with { variant "PRESENCE (elementIdentifier = '19'O)" }
+
+
+// Cell Identifier List - 48.008 subclause 3.2.2.27
+// See above under Cell Identifier
+
+
+// Response Request - 48.008 subclause 3.2.2.28
+type record BSSMAP_IE_ResponseRequest
+{
+ OCT1 elementIdentifier // '1B'O
+} with { variant "PRESENCE (elementIdentifier = '1B'O)" }
+
+
+// Resource Indication Method - 48.008 subclause 3.2.2.29
+type record BSSMAP_IE_ResourceIndMethod
+{
+ OCT1 elementIdentifier, // '1C'O
+ BIT4 resourceIndMethod,
+ BIT4 spare
+}
+
+
+// Classmark Information Type 1 - 48.008 subclause 3.2.2.30
+type record BSSMAP_IE_ClassmarkInformationType1
+{
+ OCT1 elementIdentifier, // '1D'O
+ BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS)
+ // '001'B class2 (for GSM+DCS+PCS)
+ // '010'B class3 (for GSM+DCS+PCS)
+ // '011'class4 B (only for GSM)
+ // '100'class5 B (only for GSM)
+ BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B)
+ BIT1 esind, //controlled early classmark sending implemented (1) or not (0)
+ BIT2 revisionLevel,
+ BIT1 spare1_1 // '0'B
+} with { variant "PRESENCE(elementIdentifier = '1D'O)" }
+
+// Circuit Identity Code List - 48.008 subclause 3.2.2.31
+type record BSSMAP_IE_CircuitIdentityCodeList
+{
+ OCT1 elementIdentifier, // '1E'O
+ INT1 lengthIndicator,
+ OCT1 range, // A number in binary representation ranging from 2 to 255
+ OCTN status // status data of lengthIndicator 1_32
+} with { variant "PRESENCE(elementIdentifier = '1E'O)"
+ variant (lengthIndicator) "LENGTHTO (range, status)" } ;
+
+
+// Diagnostics - 48.008 subclause 3.2.2.32
+type record BSSMAP_IE_Diagnostics
+{
+ OCT1 elementIdentifier, // '1F'O
+ INT1 lengthIndicator,
+ OCT1 errorLocation, // First octet of Error pointer
+ BIT4 bitPointer,
+ BIT4 spare,
+ OCTN messageReceived // The errorneous message
+} with {variant (lengthIndicator)
+ "LENGTHTO (errorLocation, bitPointer, spare, messageReceived)" } ;
+
+
+// Chosen Channel - 48.008 subclause 3.2.2.33
+type record BSSMAP_IE_ChosenChannel
+{
+ OCT1 elementIdentifier, // '21'O
+ BIT4 channel,
+ BIT4 channelMode
+} with { variant "PRESENCE (elementIdentifier = '21'O)" }
+
+
+// Cipher Response Mode - 48.008 subclause 3.2.2.34
+type record BSSMAP_IE_CipherResponseMode
+{
+ OCT1 elementIdentifier, // '23'O
+ BIT1 cipherResponseModeInfo,//IMEISV must be included by MS ('0') or not (1)
+ BIT7 spare1_7 // '0000000'B
+} with { variant "PRESENCE (elementIdentifier = '23'O)" }
+
+
+// Layer 3 Message contents - 48.008 subclause 3.2.2.35
+type record BSSMAP_IE_Layer3MessageContents
+{
+ OCT1 elementIdentifier, // '20'O
+ INT1 lengthIndicator,
+ octetstring layer3MsgConents
+} with { variant "PRESENCE (elementIdentifier = '20'O)"
+ variant (lengthIndicator) "LENGTHTO (layer3MsgConents)"}
+
+
+// Channel Needed - 48.008 subclause 3.2.2.36
+type record BSSMAP_IE_ChannelNeeded
+{
+ OCT1 elementIdentifier, // '24'O
+ BIT2 channel, //00:any, 01:SDCCH, 10:Full TCH, 11:Dual TCH
+ BIT6 spare
+} with { variant "PRESENCE (elementIdentifier = '24'O)" }
+
+
+// Trace Type - 48.008 subclause 3.2.2.37
+type record BSSMAP_IE_TraceType
+{
+ OCT1 elementIdentifier, // '25'O
+ BIT2 e,// Event Invoking
+ // '00'B: Mobile Originated Call, Mobile Call Terminated,
+ // Short Message Service Mobile Originated, Short
+ // Message Service Mobile Terminated, Independent Call
+ // Supplementary Services, Updates Location,
+ // IMSI attach, detach IMSI
+ // '01'B: Mobile Originated Call, Mobile Call Terminated,
+ // Short Message Service Mobile Originated, Short
+ // Message Service Mobile Terminated, Independent Call
+ // Supplementary Services only
+ // '10'B: Location Updates, IMSI attach, IMSI only detach
+ // '11'B: Operator definable
+ BIT2 d,// MSC Type Record
+ // '00'B: Basic
+ // '01'B: Detailed (Optional)
+ // '00'B: Spare
+ // '00'B: No Trace MSC
+ BIT2 c,// BSS Type Record
+ // '00'B: Basic
+ // '01'B: Handover
+ // '00'B: Radio
+ // '00'B: No Trace BSS
+ BIT1 b,// For expansion future
+ // Set to '0'B
+ BIT1 a // Priority Indication
+ // '0'B: Priority No
+ // '1'B: Priority
+}
+
+
+// Trigger ID - 48.008 subclause 3.2.2.38
+type record BSSMAP_IE_TriggerId
+{
+ OCT1 elementIdentifier, //'26'O
+ INT1 lengthIndicator,
+ octetstring entityIdentity length(1..20)
+} with { variant "PRESENCE (elementIdentifier = '26'O)"
+ variant (lengthIndicator) "LENGTHTO (entityIdentity)" }
+
+
+// Trace Reference - 48.008 subclause 3.2.2.39
+type record BSSMAP_IE_TraceReference
+{
+ OCT1 elementIdentifier, // '27'O
+ OCT1 msb_TraceReference, // the most significant bit of trace reference
+ OCT1 lsb_TraceReference // the least significant bit of trace reference
+} with { variant "PRESENCE (elementIdentifier = '27'O)" }
+
+
+// Transaction ID - 48.008 subclause 3.2.2.40
+type record BSSMAP_IE_TransactionId
+{
+ OCT1 elementIdentifier, //'28'O
+ INT1 lengthIndicator,
+ octetstring transactionNumber length(1..2)
+} with { variant "PRESENCE (elementIdentifier = '28'O)"
+ variant (lengthIndicator) "LENGTHTO (transactionNumber)" }
+
+
+// Mobil Identity - 48.008 subclause 3.2.2.41
+type record BSSMAP_IE_MobileIdentity
+{
+ OCT1 elementIdentifier, // '29'O
+ INT1 lengthIndicator,
+ BIT3 typeOfIdentity,
+ BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits
+ HEX5_16 digits // if nr of digits is even, the last digit: '1111'B
+} with { variant "PRESENCE (elementIdentifier = '29'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)";
+ variant "PADDING(yes),PADDING_PATTERN('1'B)"}
+
+
+// OMCID - 48.008 subclause 3.2.2.42
+type record BSSMAP_IE_OMCId
+{
+ OCT1 elementIdentifier, // '2A'O
+ INT1 lengthIndicator,
+ BIT4 numberingPlanind, // '0000'B unknown
+ // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164)
+ // '0011'B data numbering plan (CCITT Rec X.121)
+ // '0100'B telex numbering plan (CCITT Rec F.69)
+ // '0110'B land mobile numbering plan (CCITT Rec E.212)
+ // '1000'B national numbering plan
+ // '1001'B private numbering plan
+ // All other values are reserved
+ BIT3 natureOfAddress, // '000'B unknown
+ // '001'B international number
+ // '010'B national significant number
+ // '011'B network specific number
+ // '100'B subscriber number
+ // '110'B abbreviated number
+ // All other values are reserved
+ BIT1 ext,
+ OCTN digits// The digits are encoded TBCD (digit 0000 _ 1001 (0_9),
+ // 1010 = '*', 1011 = '#', 1100 = 'A', 1101 = 'B', 1110 = 'C').
+ // If the number of identity digits is odd bits then bit 5-8
+ // of the last octet is filled with '1111'
+} with { variant "PRESENCE (elementIdentifier = '2A'O)"
+ variant (lengthIndicator) "LENGTHTO (numberingPlanind, natureOfAddress,
+ ext, digits)"}
+
+
+// Forward Indicator - 48.008 subclause 3.2.2.43
+type record BSSMAP_IE_ForwardIndicator
+{
+ OCT1 elementIdentifier, //'2B'O
+ BIT4 forwardIndicator,
+ BIT4 spare
+} with { variant "PRESENCE (elementIdentifier = '2B'O)" }
+
+
+// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44
+type record BSSMAP_IE_ChosenEncryptionAlgorithm
+{
+ OCT1 elementIdentifier, // '2C'O
+ OCT1 algorithmIdentifier // '00000001'B no encryption
+ // '00000010'B A5/1
+ // '00000011'B A5/2
+ // '00000100'B A5/3
+ // '00000101'B A5/4
+ // '00000110'B A5/5
+ // '00000111'B A5/6
+ // '00001000'B A5/7
+} with { variant "PRESENCE (elementIdentifier = '2C'O)" }
+
+
+// Circuit Pool - 48.008 subclause 3.2.2.45
+type record BSSMAP_IE_CircuitPool
+{
+ OCT1 elementIdentifier, // '2D'O
+ OCT1 circuitPoolNumber
+} with { variant "PRESENCE (elementIdentifier = '2D'O)" }
+
+
+// Circuit Pool List - 48.008 subclause 3.2.2.46
+type record BSSMAP_IE_CircuitPoolList
+{
+ OCT1 elementIdentifier, // '2E'O
+ INT1 lengthIndicator,
+ octetstring circuitPoolNumber
+} with { variant "PRESENCE (elementIdentifier = '2E'O)"
+ variant (lengthIndicator) "LENGTHTO (circuitPoolNumber)" } ;
+
+
+// Time Indication - 48.008 subclause 3.2.2.47
+type record BSSMAP_IE_TimeIndication
+{
+ OCT1 elementIdentifier, // '2F'O
+ OCT1 time
+}
+
+
+// Resource Situation - 48.008 subclause 3.2.2.48
+type record BSSMAP_IE_ResourceSituation
+{
+ OCT1 elementIdentifier, // '30'O
+ INT1 lengthIndicator,
+ BSSMAP_FIELD_ResourceList resourceList
+} with {variant "PRESENCE (elementIdentifier = '30'O)"
+ variant (lengthIndicator) "LENGTHTO (resourceList)" }
+
+type record of BSSMAP_FIELD_Resource
+BSSMAP_FIELD_ResourceList
+
+type record BSSMAP_FIELD_Resource
+{
+ BIT4 channelType,
+ BIT4 resourceAndBandInd,
+ OCT1 nrOfChannels,
+ OCT1 nrOfChannels7_15 optional
+} with {variant (nrOfChannels) "EXTENSION_BIT(reverse)"}
+
+
+// Current Channel Type 1 - 48.008 subclause 3.2.2.49
+type record BSSMAP_IE_CurrentChannelType1
+{
+ OCT1 elementIdentifier, // '31'O
+ BIT4 channel,
+ BIT4 channelMode
+} with { variant "PRESENCE (elementIdentifier = '31'O)" }
+
+// Queueing Indicator - 48.008 subclause 3.2.2.50
+type record BSSMAP_IE_QueueingIndicator
+{
+ OCT1 elementIdentifier, //'32'O
+ BIT1 spare1, // '0'B
+ BIT1 qri, // It is recommended to allow queueing ('1'B) or not ('0'B)
+ BIT6 spare2 // '000000'B
+} with { variant "PRESENCE (elementIdentifier = '32'O)" }
+
+// Speech Version - 48.008 subclause 3.2.2.51
+type record BSSMAP_IE_SpeechVersion
+{
+ OCT1 elementIdentifier, // '40'O
+ BIT7 speechVersionIdentifier,//'0000001'B speech full rate version 1 (H'01)
+ //'0010001'B speech full rate version 2 (H'11)
+ //'0100001'B speech full rate version 3 (H'21)
+ //'0000101'B speech half rate version 1 (H'05)
+ //'0010101'B speech half rate version 2 (H'15)
+ //'0100101'B speech half rate version 3 (H'25)
+ BIT1 spare1_1 // '0'B
+} with { variant "PRESENCE (elementIdentifier = '40'O)" }
+
+
+// Assignment Requirement - 48.008 subclause 3.2.2.52
+type record BSSMAP_IE_AssignmentRequirement
+{
+ OCT1 elementIdentifier, // '33'O
+ OCT1 assignmentRequirement
+} with { variant "PRESENCE (elementIdentifier = '33'O)" }
+
+
+// Talker Flag - 48.008 subclause 3.2.2.54
+type record BSSMAP_IE_TalkerFlag
+{
+ OCT1 elementIdentifier // '35'O
+} with { variant "PRESENCE (elementIdentifier = '35'O)" }
+
+
+// Group Call Reference - 48.008 subclause 3.2.2.55
+type record BSSMAP_IE_GroupCallReference
+{
+ OCT1 elementIdentifier, // '37'O
+ INT1 lengthIndicator, // 1..6
+ octetstring descrGroupbroadcastCallRef length(1..5) // never sent by MSC, ignored if received
+} with { variant "PRESENCE (elementIdentifier = '37'O)"
+ variant (lengthIndicator) "LENGTHTO (descrGroupbroadcastCallRef)" }
+
+
+// EMLPP Priority - 48.008 subclause 3.2.2.56
+type record BSSMAP_IE_EMLPP_Priority
+{
+ OCT1 elementIdentifier,// '38'O
+ BIT3 callPriority, // '000'B no priority applied
+ // '001'B call priority level 4
+ // '010'B call priority 3 level
+ // '011'B call priority level 2
+ // '100'B call priority 1 level
+ // '101'B call priority level 0
+ // '110'B call priority B level
+ // '111'B call priority level A
+ BIT5 spare1_5 // '00000'B
+} with { variant "PRESENCE (elementIdentifier = '38'O)" }
+
+
+// Configuration Evolution Indicator - 48.008 subclause 3.2.2.57
+type record BSSMAP_IE_ConfigurationEvolutionIndication
+{
+ OCT1 elementIdentifier,// H'39
+ BIT4 smi, // '0000'B no modification is allowed
+ // '0001'B modification allowed <= 1 TCH/F
+ // '0010'B modification allowed <= 2 TCH/F
+ // '0011'B modification allowed <= 3 TCH/F
+ // '0100'B modification allowed <= 4 TCH/F
+ BIT4 spare1_4 // '0000'B
+} with { variant "PRESENCE (elementIdentifier = '39'O)" }
+
+
+// Old BSS to New BSS Information - 48.008 subclause 3.2.2.58
+type record BSSMAP_IE_OldToNewBSSInfo
+{
+ OCT1 elementIdentifier, //'3A'O
+ INT1 lengthIndicator,
+ octetstring oldToNewBSSIEs
+} with { variant "PRESENCE (elementIdentifier = '3A'O)"
+ variant (lengthIndicator) "LENGTHTO (oldToNewBSSIEs)" }
+
+
+// LCS QOS - 48.008 subclause 3.2.2.60 (and 49.031 10.16)
+type record BSSMAP_IE_LCSQOS {
+ OCT1 elementIdentifier, // '3E'O
+ INT1 lengthIndicator,
+ BIT1 vCI, //Vertical Coordinate Indicator: VC requested ('1'B) or not ('0'B)
+ BIT1 vEL, // report velocity if available (1) or not(0)
+ BIT6 spare_1_6, // '0000000'B
+ BIT7 horizontalAccuracy, // Accuracy Horizontal (HA)
+ BIT1 hAI, // Horizontal Accuracy Indicator HA is specified (1) or not (0)
+ BIT7 verticalAccuracy, // Accuracy Vertical (VA)
+ BIT1 vAI, // Vertical Accuracy Indicator VA is specified (1) or not (0)
+ BIT6 spare_2_6, // '000000'B
+ BIT2 rTC // '00'B Response Time is not specified
+ // '01'B delay Low
+ // '10'B Delay tolerant
+ // '11'B Reserved
+} with { variant "PRESENCE (elementIdentifier = '3E'O)"
+ variant (lengthIndicator) "LENGTHTO (vCI, vEL, spare_1_6, horizontalAccuracy,
+ hAI, verticalAccuracy, vAI, spare_2_6, rTC)"}
+
+
+// LSA Access Control Suppression - 48.008 subclause 3.2.2.61
+type record BSSMAP_IE_LSAAccessControlSuppression
+{
+ OCT1 elementIdentifier, //'3F'O
+ BIT1 em, // in emergency calls em = '1'B
+ BIT7 spare // '0000000'B
+} with { variant "PRESENCE (elementIdentifier = '3F'O)" }
+
+
+// LCS Priority - 48.008 subclause 3.2.2.62
+type record BSSMAP_IE_LCSPriority
+{
+ OCT1 elementIdentifier,// '43'O
+ INT1 lengthIndicator,
+ OCT1 priority // see "another FS" TS 29.002 for more detail
+} with { variant "PRESENCE (elementIdentifier = '43'O)"
+ variant (lengthIndicator) "LENGTHTO (priority)"}
+
+
+// Location Type - 48.008 subclause 3.2.2.63
+type record BSSMAP_IE_LocationType
+{
+ OCT1 elementIdentifier, // '44'O
+ INT1 lengthIndicator, // 1 or 2
+ OCT1 locationInformation,// '00000000'B current location geographic
+ // '00000001'B loc assistance info for target MS
+ // '00000010'B deciphering keys for broadcast
+ // assistance data for MS target
+ // all other values are reserved
+ OCT1 positioningMethod optional
+ // '00000000'B reserved
+ // '00000001'B Mobile E_OTD Assisted
+ // '00000010'B Mobile Based E_OTD
+ // '00000011'B GPS Assisted
+ // all other values are reserved
+} with {variant (lengthIndicator) "LENGTHTO (locationInformation, positioningMethod)"}
+
+
+// Location Estimate - 48.008 subclause 3.2.2.64
+type record BSSMAP_IE_LocationEstimate
+{
+ OCT1 elementIdentifier, // '45'O
+ INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on
+ OCTN geographicLocation
+} with { variant "PRESENCE (elementIdentifier = '45'O)"
+ variant (lengthIndicator) "LENGTHTO (geographicLocation)"}
+
+
+// Positioning Data - 48.008 subclause 3.2.2.65
+type record BSSMAP_IE_PositioningData
+{
+ OCT1 elementIdentifier, // '46'O
+ INT1 lengthIndicator, // 2_11
+ BIT4 positioningDataDescriminator, // '0000'B indicates usage of each
+ // positioning data method,
+ // that was attempted
+ // all other values reserved are
+ BIT4 spare_1_4, // '0000'B
+ BSSMAP_FIELD_PositioningMethods positioningMethod // of lengthIndicator 1_10
+} with { variant "PRESENCE (elementIdentifier = '46'O)"
+ variant (lengthIndicator) "LENGTHTO (positioningDataDescriminator, spare_1_4,positioningMethod)"}
+
+type record BSSMAP_FIELD_PositioningMethod
+{
+ BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption
+ // '001'B succesful attempt, results not used to generate location
+ // '010'B succesful attempt, results used to verify but not generate location
+ // '011'B succesful attempt, results used to generate location
+ // '100'B succesful attempt, MS supports multiple based positioning methods
+ BIT5 positioningMethod // '00000'B Timing Advance
+ // '00001'B TOA
+ // '00010'B AOA
+ // '00011'B Mobile EOTD Assisted
+ // '00100'B Mobile Based E_OTD
+ // '00101'B Mobile GPS Assisted
+ // '00110'B Mobile Based GPS
+ // '00111'B GPS Conventional
+ // '01000'B _ '01111'B reserved for GSM
+ // '10000'B _ '11111'B reserved for network
+ // specific positioning methods
+}
+
+type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods
+
+
+// LCS Cause - 48.008 subclause 3.2.2.66
+type record BSSMAP_IE_LCSCause
+{
+ OCT1 elementIdentifier, // '47'O
+ INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or
+ BIT8 causeValue, // '00000000'BUnspecified
+ // '00000001'B System Failure
+ // '00000010'B Error Protocol
+ // '00000011'B Data missing in position request
+ // '00000100'B unexpected data value in request position
+ // '00000101'B Position method failure
+ // '00000110'B Target unreachable MS
+ // '00000111'B Location request aborted
+ // '00001000'B Facility supported not
+ // '00001001'B intra_BSC_HO ongoing
+ // '00001010'B complete intra_BSC_HO
+ // '00001011'B congestion
+ // all other values reserved are
+ OCT1 diagnosticValue optional
+} with { variant "PRESENCE (elementIdentifier = '47'O)"
+ variant (lengthIndicator) "LENGTHTO (causeValue, diagnosticValue)"}
+
+
+// LCS Client Type - 48.008 subclause 3.2.2.67
+type record BSSMAP_IE_LCSClientType
+{
+ OCT1 elementIdentifier, // '48'O
+ INT1 lengthIndicator, // 1
+ BIT4 subtype, // all values unspecified/reserved except for:
+ // category = PLMN Operator:
+ // '0000'B Unspecified
+ // '0001'B Boradcast Service
+ // '0010'B O&M
+ // '0011'B Statistics Anonymous
+ // '0100'B Target MS Service Support
+ // all other values reserved are
+ BIT4 category // '0000'B Value added client
+ // '0010'B Operator PLMN
+ // '0011'B Emergency Services
+ // '0100'B Lawful Services Intercept
+ // all other values are reserved
+} with { variant "PRESENCE (elementIdentifier = '48'O)"
+ variant (lengthIndicator) "LENGTHTO (subtype, category)"}
+
+
+// APDU - 48.008 subclause 3.2.2.68 (and 49.031 v5.3.0)
+type record BSSMAP_IE_APDU
+{
+ OCT1 elementIdentifier, //'49'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT7 protocolID optional, // '0000000'reserved B
+ // '0000001'BSSLAP B (the only currently supported)
+ // '0000010'LLP B
+ // '0000011'B SMLCPP
+ BIT1 spare_1_1 optional, // '0'B
+ octetstring embeddedMessage optional // of length: 5_25
+} with { variant "PRESENCE (elementIdentifier = '49'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (protocolID,spare_1_1,embeddedMessage)"}
+
+
+// Network Element Identity - 48.008 subclause 3.2.2.69
+type record BSSMAP_IE_NetworkElementIdentity
+{
+ OCT1 elementIdentifier, //'4A'O
+ INT1 lengthIndicator,
+ BIT4 iDDiscriminator,
+ BIT4 spare,
+ OCTN networkElementIdentity // Network Element Identity
+} with {variant (lengthIndicator)
+ "LENGTHTO (iDDiscriminator,spare,networkElementIdentity)"}
+
+
+// GPS Assistant Data - 48.008 subclause 3.2.2.70
+type record BSSMAP_IE_GPSAssistanceData
+{
+ OCT1 elementIdentifier, //'4B'O
+ INT1 lengthIndicator, // 1_38
+ OCT1 a_to_h,
+ OCT1 i_to_p,
+ OCTN satellite_related_data // Satellite related data
+} with { variant "PRESENCE (elementIdentifier = '4B'O)"
+ variant (lengthIndicator) "LENGTHTO (satellite_related_data,a_to_h,i_to_p)"}
+
+
+// Deciphering Key - 48.008 subclause 3.2.2.71
+type record BSSMAP_IE_DecipheringKeys
+{
+ OCT1 elementIdentifier, // '4C'O
+ INT1 lengthIndicator, // 1, 8, 15
+ BIT8 cipheringKeyFlag, // current ciphering key is used (1) or not (0)
+ BIT56 currentdecipheringKeyValue,
+ BIT56 nextdecipheringKeyValue optional
+} with { variant "PRESENCE (elementIdentifier = '4C'O)"
+ variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag,
+ currentdecipheringKeyValue, nextdecipheringKeyValue)"}
+
+
+// Return Error Request - 48.008 subclause 3.2.2.72
+type record BSSMAP_IE_ReturnErrorRequest
+{
+ OCT1 elementIdentifier, //'4D'O
+ INT1 lengthIndicator,
+ OCT1 returnErrorType // Return Error Request
+} with { variant "PRESENCE (elementIdentifier = '4D'O)"
+ variant (lengthIndicator) "LENGTHTO (returnErrorType)"}
+
+
+// Return Error Cause - 48.008 subclause 3.2.2.73
+type record BSSMAP_IE_ReturnErrorCause
+{
+ OCT1 elementIdentifier, //'4E'O
+ INT1 lengthIndicator,
+ OCT1 returnErrorCause // Return Error Cause
+} with { variant "PRESENCE (elementIdentifier = '4E'O)"
+ variant (lengthIndicator) "LENGTHTO (returnErrorCause)"}
+
+
+// Segmentation - 48.008 subclause 3.2.2.74
+type record BSSMAP_IE_Segmentation
+{
+ OCT1 elementIdentifier, //'4F'O
+ INT1 lengthIndicator,
+ BIT4 segmentationNumber,
+ BIT1 segmentationBit,
+ BIT3 spare,
+ OCT2 messageID optional
+} with { variant "PRESENCE (elementIdentifier = '4F'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (segmentationNumber,segmentationBit,spare,messageID)"}
+
+
+// Service Handover - 48.008 subclause 3.2.2.75
+type record BSSMAP_IE_ServiceHandover
+{
+ OCT1 elementIdentifier, //'50'O
+ INT1 lengthIndicator,
+ BIT3 serviceHandoverInfo,
+ BIT5 spare
+} with { variant "PRESENCE (elementIdentifier = '50'O)"
+ variant (lengthIndicator) "LENGTHTO (serviceHandoverInfo,spare)" }
+
+
+//Source RNC to Target RNC transparent information -48.008 subclause 3.2.2.76-77
+type record BSSMAP_IE_SourceToTargetRNCTransparentInfo
+{
+ OCT1 elementIdentifier, //'51'O or '52'O
+ INT1 lengthIndicator,
+ octetstring informationcontainer
+} with { variant (lengthIndicator) "LENGTHTO (informationcontainer)" }
+
+
+// GERAN Classmark - 48.008 subclause 3.2.2.78
+type record BSSMAP_IE_GERANClassmark
+{
+ OCT1 elementIdentifier, //'53'O
+ INT1 lengthIndicator,
+ OCTN GERANClassmark
+} with { variant "PRESENCE (elementIdentifier = '53'O)"
+ variant (lengthIndicator) "LENGTHTO (GERANClassmark)" }
+
+
+// GERAN BSC Container - 48.008 subclause 3.2.2.79
+type record BSSMAP_IE_GERANBSCContainer
+{
+ OCT1 elementIdentifier, //'54'O
+ INT1 lengthIndicator,
+ OCT1 codecType,
+ BIT3 maxNrofTCH,
+ BIT5 allowedRadioIFRates
+} with {variant (lengthIndicator)
+ "LENGTHTO (codecType, maxNrofTCH, allowedRadioIFRates)" }
+
+
+// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80
+type record BSSMAP_IE_NewBSSToOldBSSInfo
+{
+ OCT1 elementIdentifier, //'61'O
+ INT1 lengthIndicator,
+ OCTN newBSSToOldBSSIE optional
+} with { variant "PRESENCE (elementIdentifier = '61'O)"
+ variant (lengthIndicator) "LENGTHTO (newBSSToOldBSSIE)" }
+
+
+// Inter-System Information - 48.008 subclause 3.2.2.81
+type record BSSMAP_IE_InterSystemInfo
+{
+ OCT1 elementIdentifier, //'63'O
+ INT1 lengthIndicator,
+ OCTN interSystemInfoTranspCont
+} with { variant "PRESENCE (elementIdentifier = '63'O)"
+ variant (lengthIndicator) "LENGTHTO (interSystemInfoTranspCont)" }
+
+
+// SNA Access Information - 48.008 subclause 3.2.2.82
+type record BSSMAP_IE_SNAAccessInfo
+{
+ OCT1 elementIdentifier, //'64'O
+ INT1 lengthIndicator,
+ AuthorisedPLMN_List sNAAccessInfo
+} with { variant "PRESENCE (elementIdentifier = '64'O)"
+ variant (lengthIndicator) "LENGTHTO (sNAAccessInfo)" }
+
+type record of AuthorisedPLMN AuthorisedPLMN_List;
+
+type record AuthorisedPLMN
+{
+ INT1 lengthIndicator,
+ OCT3 mcc_mnc,
+ RecordOfOCT2 authorisedSNA optional
+} with { variant (lengthIndicator) "LENGTHTO (mcc_mnc,authorisedSNA)" }
+
+
+// 3.2.2.83 VSTK_RAND Information
+type record BSSMAP_IE_VSTK_RAND
+{
+ OCT1 elementIdentifier, // '65'
+ INT1 lengthIndicator,
+ OCT1 VSTK_RAND_1,
+ OCT2 VSTK_RAND_2,
+ OCT3 VSTK_RAND_3,
+ OCT4 VSTK_RAND_4,
+ BIT4 spare,
+ BIT4 VSTK_RAND_5
+} with { variant "PRESENCE (elementIdentifier = '65'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (VSTK_RAND_1, VSTK_RAND_2, VSTK_RAND_3, VSTK_RAND_4, spare, VSTK_RAND_5)"}
+
+
+// 3.2.2.84 VSTK information
+type record BSSMAP_IE_VSTK
+{
+ OCT1 elementIdentifier, // '66'
+ INT1 lengthIndicator,
+ OCT16 VSTK
+} with { variant "PRESENCE (elementIdentifier = '66'O)"
+ variant (lengthIndicator) "LENGTHTO (VSTK)"}
+
+
+// 3.2.2.85 Paging Information
+type record BSSMAP_IE_PagingInformation
+{
+ OCT1 elementIdentifier, // '67'
+ INT1 lengthIndicator,
+ BIT1 VGCS_or_VBS, // 0: not a member of any VGCS/VBS-group
+ BIT2 pagingCause,
+ BIT5 spare
+} with { variant "PRESENCE (elementIdentifier = '67'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (VGCS_or_VBS, pagingCause, spare)"}
+
+
+// 3.2.2.86 IMEI
+type record BSSMAP_IE_IMEI
+{
+ OCT1 elementIdentifier, // '68'
+ INT1 lengthIndicator,
+ BIT3 typeOfIdentity,
+ BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits
+ HEX5_16 digits // if nr of digits is even, the last digit: '1111'B
+} with { variant "PRESENCE (elementIdentifier = '68'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)";
+ variant "PADDING(yes),PADDING_PATTERN('1'B)"}
+
+
+// 3.2.2.87 Velocity Estimate
+type record BSSMAP_IE_VelocityEstimate
+{
+ OCT1 elementIdentifier, // '55'
+ INT1 lengthIndicator,
+ OCTN velocityEstimate
+} with { variant "PRESENCE (elementIdentifier = '55'O)"
+ variant (lengthIndicator) "LENGTHTO (velocityEstimate)"}
+
+
+// 3.2.2.88 VGCS Feature Flags
+type record BSSMAP_IE_VGCS_FeatureFlags
+{
+ OCT1 elementIdentifier, // '69'
+ INT1 lengthIndicator,
+ BIT1 TP_Ind, // 0: Talker Priority not supported; 1: Talker Priority supported
+ BIT2 AS_Ind, // least sig. bit: 0: No A-interface circuit sharing; 1: A-interface circuit sharing;
+ // most sig. bit: 0: No A-interface link sharing; 1: A-interface link sharing
+ BIT1 BSS_Res, // 0: No re-establishment of the group or broadcast call by the BSS;
+ // 1: Re-establishment of the group or broadcast call by the BSS
+ BIT1 tCP,
+ BIT3 spare
+} with { variant "PRESENCE (elementIdentifier = '69'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (TP_Ind, AS_Ind, BSS_Res, tCP, spare)"}
+
+
+// Talker Priority - 48.008 subclause 3.2.2.89
+type record BSSMAP_IE_TalkerPriority
+{
+ OCT1 elementIdentifier, // '6A'O
+ BIT2 priority,
+ // 0 0 Normal Priority
+ // 0 1 Privileged Priority
+ // 1 0 Emergency Priority
+ // 1 1 reserved for future use
+ BIT6 spare // 1..9
+} with { variant "PRESENCE (elementIdentifier = '6A'O)" }
+
+
+// 3.2.2.90 Emergency Set Indication
+type record BSSMAP_IE_EmergencySetIndication
+{
+ OCT1 elementIdentifier // '6B'
+} with { variant "PRESENCE (elementIdentifier = '6B'O)" }
+
+
+// 3.2.2.91 Talker Identity
+type record BSSMAP_IE_TalkerIdentity
+{
+ OCT1 elementIdentifier, // '6C'
+ INT1 lengthIndicator,
+ BIT3 fillerBits,
+ BIT5 spare,
+ OCT17 talkerIdentity
+} with { variant "PRESENCE (elementIdentifier = '6C'O)"
+ variant (lengthIndicator)
+ "LENGTHTO (fillerBits, spare, talkerIdentity)"}
+
+
+// 3.2.2.92 SMS to VGCS
+type octetstring OCT248 length(0..248);
+
+type record BSSMAP_IE_SMS_to_VGCS
+{
+ OCT1 elementIdentifier, // '6E'
+ INT1 lengthIndicator,
+ OCT248 SMS
+} with {variant (lengthIndicator)
+ "LENGTHTO (SMS)"}
+
+
+// 3.2.2.93 VGCS talker mode
+type record BSSMAP_IE_VGCS_TalkerMode
+{
+ OCT1 elementIdentifier, // '6F'
+ INT1 lengthIndicator,
+ BIT2 spare,
+ BIT4 groupCipherKeyNumber,
+ BIT2 RR_mode // 0 0: dedicated mode (i.e. dedicated channel)
+ // 0 1: group transmit mode (i.e. voice group channel)
+ // Other values are reserved for future use.
+} with {variant (lengthIndicator)
+ "LENGTHTO (spare, groupCipherKeyNumber, RR_mode)"}
+
+
+// 3.2.2.94 VGCS/VBS Cell Status
+type record BSSMAP_IE_VGCS_VBS_CellStatus
+{
+ OCT1 elementIdentifier, // '70'
+ INT1 lengthIndicator,
+ BIT3 status,
+ BIT5 spare
+} with { variant "PRESENCE (elementIdentifier = '70'O)"
+ variant (lengthIndicator) "LENGTHTO (status, spare)"}
+
+
+// 3.2.2.95 GANSS Assistance Data
+type record BSSMAP_IE_GANSS_AssistanceData
+{
+ OCT1 elementIdentifier, //'75'
+ INT1 lengthIndicator,
+ OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31
+} with { variant "PRESENCE (elementIdentifier = '75'O)"
+ variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"}
+
+
+// 3.2.2.96 GANSS Positioning Data
+type record BSSMAP_IE_GANSS_PositioningData
+{
+ OCT1 elementIdentifier, // '76'
+ INT1 lengthIndicator,
+ GANSS_PositioningData gANSS_PositioningDataInfo
+} with { variant "PRESENCE (elementIdentifier = '76'O)"
+ variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"}
+
+type record GANSS_PositioningData // 49.031 Section 10.32
+{
+ BIT3 usage,
+ BIT3 gANSS_Id,
+ BIT2 method
+}
+
+
+// 3.2.2.97 GANSS Location Type
+type record BSSMAP_IE_GANSS_LocationType
+{
+ OCT1 elementIdentifier, // '77'
+ INT1 lengthIndicator,
+ GANSS_LocationType gANSS_LocationTypeInfo
+} with { variant "PRESENCE (elementIdentifier = '77'O)"
+ variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"}
+
+type record GANSS_LocationType // 49.031 Section 10.33
+{
+ BIT1 galileo,
+ BIT1 sBAS,
+ BIT1 modernizedGPS,
+ BIT1 qZSS,
+ BIT1 gLONASS,
+ BIT3 spare
+}
+
+
+// 3.2.2.98 Application data
+type record BSSMAP_IE_ApplicationData
+{
+ OCT1 elementIdentifier, // '78'
+ INT1 lengthIndicator,
+ OCT9 applicationDataInfo // "implementation-specific" according to 44.018 v8.7.0 Section 10.5.2.72
+} with { variant "PRESENCE (elementIdentifier = '78'O)"
+ variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"}
+
+
+// 3.2.2.99 Data Identity
+type record BSSMAP_IE_DataIdentity
+{
+ OCT1 elementIdentifier, // '79'
+ INT1 lengthIndicator,
+ DataIdentity dataIdentityInfo
+} with { variant "PRESENCE (elementIdentifier = '79'O)"
+ variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"}
+
+
+type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73
+{
+ BIT1 aI,
+ BIT4 dI,
+ BIT3 dP
+}
+
+
+// 3.2.2.100 Application Data Information
+type record BSSMAP_IE_ApplicationDataInformation
+{
+ OCT1 elementIdentifier, // 7A'
+ INT1 lengthIndicator,
+ BIT1 bT_Ind,
+ BIT7 spare
+} with { variant "PRESENCE (elementIdentifier = '7A'O)"
+ variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"}
+
+
+// 3.2.2.101 MSISDN
+type record BSSMAP_IE_MSISDN
+{
+ OCT1 elementIdentifier, // '7B'
+ INT1 lengthIndicator,
+ octetstring msisdn
+} with { variant "PRESENCE (elementIdentifier = '7B'O)"
+ variant (lengthIndicator) "LENGTHTO (msisdn)"}
+
+
+// 3.2.2.102 AoIP Transport Layer Address
+type record BSSMAP_IE_AoIP_TransportLayerAddress
+{
+ OCT1 elementIdentifier, // '7C'
+ INT1 lengthIndicator,
+ BSSMAP_FIELD_IPAddress ipAddress,
+ LIN2_BO_LAST uDPPortValue
+} with {
+ variant "PRESENCE (elementIdentifier = '7C'O)";
+ variant (lengthIndicator) "LENGTHTO (ipAddress, uDPPortValue)";
+ variant (ipAddress) "CROSSTAG(ipv4,lengthIndicator = 6;
+ ipv6,lengthIndicator = 18)"
+}
+
+type union BSSMAP_FIELD_IPAddress
+{
+ OCT4 ipv4,
+ OCT16 ipv6
+}
+
+//3.2.2.103 Speech Codec List
+type record BSSMAP_IE_SpeechCodecList
+{
+ OCT1 elementIdentifier, // '7D'
+ INT1 lengthIndicator,
+ BSSMAP_FIELD_CodecElements codecElements
+} with {
+ variant "PRESENCE (elementIdentifier = '7D'O)";
+ variant (lengthIndicator) "LENGTHTO (codecElements)"
+}
+
+type record of BSSMAP_FIELD_CodecElement BSSMAP_FIELD_CodecElements;
+
+type record BSSMAP_FIELD_CodecElement
+{
+ BSSMAP_FIELD_CodecType codecType,
+ BIT1 tF,
+ BIT1 pT,
+ BIT1 pI,
+ BIT1 fI,
+ OCT1 extendedCodecType optional,
+ BIT8 s0_7 optional,
+ BIT8 s8_15 optional
+} with {
+ variant (extendedCodecType) "PRESENCE (codecType = CodecExtension)";
+ variant (s0_7) "PRESENCE (codecType = FR_AMR,
+ codecType = HR_AMR,
+ codecType = FR_AMR_WB,
+ codecType = OHR_AMR,
+ codecType = OFR_AMR_WB,
+ codecType = OHR_AMR_WB,
+ extendedCodecType = 'FD'O)";
+ variant (s8_15) "PRESENCE (codecType = FR_AMR,
+ codecType = HR_AMR,
+ codecType = OHR_AMR)";
+}
+
+type enumerated BSSMAP_FIELD_CodecType
+{
+ GSM_FR(0),
+ GSM_HR(1),
+ GSM_EFR(2),
+ FR_AMR(3),
+ HR_AMR(4),
+ FR_AMR_WB(9),
+ OHR_AMR(11),
+ OFR_AMR_WB(12),
+ OHR_AMR_WB(13),
+ CodecExtension(15)
+}
+
+//3.2.2.104 Speech Codec
+type record BSSMAP_IE_SpeechCodec
+{
+ OCT1 elementIdentifier, // '7E'
+ INT1 lengthIndicator,
+ BSSMAP_FIELD_CodecElements codecElements
+} with {
+ variant "PRESENCE (elementIdentifier = '7E'O)";
+ variant (lengthIndicator) "LENGTHTO (codecElements)"
+}
+
+//3.2.2.105 Call Identifier
+type record BSSMAP_IE_CallIdentifier
+{
+ OCT1 elementIdentifier, //'7F'
+ OCT4 callIdentifierInfo
+} with { variant "PRESENCE (elementIdentifier = '7F'O)";}
+
+//3.2.2.106 Call Identifier List
+type record BSSMAP_IE_CallIdentifierList
+{
+ OCT1 elementIdentifier, // '80'
+ INT1 lengthIndicator,
+ OCT4List callIdentifierListInfo length (1..62)
+} with { variant "PRESENCE (elementIdentifier = '80'O)";
+ variant (lengthIndicator) "LENGTHTO (callIdentifierListInfo)"}
+
+//3.2.2.107 A Interface Selector For Reset
+type record BSSMAP_IE_A_InterfaceSelectorForReset
+{
+ OCT1 elementIdentifier, // '81'
+ BIT1 rTD,
+ BIT1 rIP,
+ BIT6 spare
+} with { variant "PRESENCE (elementIdentifier = '81'O)";}
+
+
+//3.2.2.109 KC128
+type record BSSMAP_IE_KC128
+{
+ OCT1 elementIdentifier, // '83'
+ OCT16 kC128_Value
+} with { variant "PRESENCE (elementIdentifier = '83'O)";}
+
+
+//3.2.2.110 CSG Identifier
+type record BSSMAP_IE_CSG_Identifier
+{
+ OCT1 elementIdentifier, //84
+ INT1 lengthIndicator,
+ bitstring cSG_ID_Value length(27),
+ BIT5 spare1,
+ BIT1 cellAccessMode,
+ BIT7 spare2
+} with { variant "PRESENCE (elementIdentifier = '84'O)";
+ variant (lengthIndicator) "LENGTHTO (cSG_ID_Value,spare1,cellAccessMode,spare2)"}
+
+
+//3.2.2.111 Redirect Attempt Flag
+type record BSSMAP_IE_RedirectAttemptFlag
+{
+ OCT1 elementIdentifier //85
+} with { variant "PRESENCE (elementIdentifier = '85'O)";}
+
+
+//3.2.2.112 Reroute Reject Cause
+type record BSSMAP_IE_RerouteRejectCause
+{
+ OCT1 elementIdentifier, //86
+ OCT1 rerouteRejectCauseValue
+} with { variant "PRESENCE (elementIdentifier = '86'O)";}
+
+
+//3.2.2.113 Send Sequence Number
+type record BSSMAP_IE_SendSequenceNumber
+{
+ OCT1 elementIdentifier, //87
+ BIT6 spare,
+ INT2b sendSequenceNumber
+} with { variant "PRESENCE (elementIdentifier = '87'O)";}
+
+
+//3.2.2.114 Reroute Complete Outcome
+type record BSSMAP_IE_RerouteCompleteOutcome
+{
+ OCT1 elementIdentifier, //88
+ OCT1 rerouteCompleteOutcomeValue
+} with { variant "PRESENCE (elementIdentifier = '88'O)";}
+
+
+//3.2.2.115 Global Call Reference
+type record BSSMAP_IE_GlobalCallReference
+{
+ OCT1 elementIdentifier, //89
+ INT1 lengthIndicator,
+ GlobalCallReferenceValue globalCallReferenceValue
+} with { variant "PRESENCE (elementIdentifier = '89'O)";
+ variant (lengthIndicator) "LENGTHTO (globalCallReferenceValue)"}
+
+//3GPP TS 29.205 B.2.1.9
+type record GlobalCallReferenceValue
+{
+ INT1 networkIDLengthIndicator,
+ octetstring networkID length (3..5),
+ INT1 nodeIDLengthIndicator,
+ OCT2 nodeID,
+ INT1 callReferenceIDLengthIndicator,
+ OCT5 callReferenceID
+} with {
+ variant (networkIDLengthIndicator) "LENGTHTO (networkID)"
+ variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)"
+ variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )"
+ }
+
+
+//3.2.2.116 LCLS Configuration
+type record BSSMAP_IE_LCLS_Configuration
+{
+ OCT1 elementIdentifier, //8A
+ BIT4 lCLS_ConfigurationValue,
+ BIT4 spare
+} with { variant "PRESENCE (elementIdentifier = '8A'O)";}
+
+
+//3.2.2.117 LCLS Connection Status Control
+type record BSSMAP_IE_LCLS_ConnectionStatusControl
+{
+ OCT1 elementIdentifier, //8B
+ BIT4 lCLS_ConnectionStatusControlValue,
+ BIT4 spare
+} with { variant "PRESENCE (elementIdentifier = '8B'O)";}
+
+
+//3.2.2.118 LCLS Correlation Not Needed
+type record BSSMAP_IE_LCLS_CorrelationNotNeeded
+{
+ OCT1 elementIdentifier //8C
+} with { variant "PRESENCE (elementIdentifier = '8C'O)";}
+
+
+//3.2.2.119 LCLS BSS Status
+type record BSSMAP_IE_LCLS_BSS_Status
+{
+ OCT1 elementIdentifier, //8D
+ BIT4 lCLS_BSS_StatusValue,
+ BIT4 spare
+} with { variant "PRESENCE (elementIdentifier = '8D'O)";}
+
+
+//3.2.2.120 LCLS Break Request
+type record BSSMAP_IE_LCLS_BreakRequest
+{
+ OCT1 elementIdentifier //8E
+} with { variant "PRESENCE (elementIdentifier = '8E'O)";}
+
+//3.2.2.121 CSFB Indication
+type record BSSMAP_IE_CSFB_Indication
+{
+ OCT1 elementIdentifier //8F
+} with { variant "PRESENCE (elementIdentifier = '8F'O)";}
+
+
+
+///////////////////////////////////////////////////////
+// Used in HANDOVER REQUEST message
+type union BSSMAP_IE_ClassmarkInformationType
+{
+ BSSMAP_IE_ClassmarkInformationType1 classmarkInformationType1,
+ BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2
+}
+
+
+///////////////////////////////////////////
+// BSSMAP message definition
+///////////////////////////////////////////
+
+// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1
+type record PDU_BSSMAP_AssignmentRequest
+{
+ OCT1 messageType, // '01'O
+ BSSMAP_IE_ChannelType channelType,
+ BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional,
+ BSSMAP_IE_Priority priority optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional,
+ BSSMAP_IE_InterferenceBandToBeUsed interferenceBandToBeUsed optional,
+ BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2 optional,
+ BSSMAP_IE_GroupCallReference groupCallReference optional,
+ BSSMAP_IE_TalkerFlag talkerFlag optional,
+ BSSMAP_IE_ConfigurationEvolutionIndication configurationEvolutionIndication optional,
+ BSSMAP_IE_LSAAccessControlSuppression lsaAccesControlSuppression optional,
+ BSSMAP_IE_ServiceHandover serviceHandover optional,
+ BSSMAP_IE_EncryptionInformation encryptionInformation optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_CallIdentifier callIdentifier optional,
+ BSSMAP_IE_KC128 kC128 optional,
+ BSSMAP_IE_GlobalCallReference globalCallReference optional,
+ BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional,
+ BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional,
+ BSSMAP_IE_LCLS_CorrelationNotNeeded lCLS_CorrelationNotNeeded optional
+} with { variant "PRESENCE (messageType = '01'O)" }
+
+
+// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2
+type record PDU_BSSMAP_AssignmentComplete
+{
+ OCT1 messageType, // '02'O
+ BSSMAP_IE_RR_Cause rR_Cause optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_CellIdentifier cellIdentifier optional,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional,
+ BSSMAP_IE_CircuitPool circuitPool optional,
+ BSSMAP_IE_SpeechVersion speechVersion optional,
+ BSSMAP_IE_LSAIdentifier lSAIdentifier optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_SpeechCodec speechCodec optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional
+} with { variant "PRESENCE (messageType = '02'O)" }
+
+// ASSIGNMENT FAILURE - 48.008 subclause 3.2.1.3
+type record PDU_BSSMAP_AssignmentFailure
+{
+ OCT1 messageType, // '03'O
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_RR_Cause rR_Cause optional,
+ BSSMAP_IE_CircuitPool circuitPool optional,
+ BSSMAP_IE_CircuitPoolList circuitPoolList optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_SpeechCodecList codecList optional
+} with { variant "PRESENCE (messageType = '03'O)" }
+
+// BLOCK - 48.008 subclause 3.2.1.4
+type record PDU_BSSMAP_Block
+{
+ OCT1 messageType, // H'40
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_ConnectionReleaseRequested connectionReleaseRequested optional
+} with { variant "PRESENCE (messageType = '40'O)" }
+
+
+// BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.5
+type record PDU_BSSMAP_BlockingAck
+{
+ OCT1 messageType, // H'41
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode
+} with { variant "PRESENCE (messageType = '41'O)" }
+
+
+// UNBLOCK - 48.008 subclause 3.2.1.6
+type record PDU_BSSMAP_Unblock
+{
+ OCT1 messageType, // H'42
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode
+} with { variant "PRESENCE (messageType = '42'O)" }
+
+
+// UNBLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.7
+type record PDU_BSSMAP_UnblockAck
+{
+ OCT1 messageType, // H'43
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode
+} with { variant "PRESENCE (messageType = '43'O)" }
+
+
+// HANDOVER REQUEST - 48.008 subclause 3.2.1.8
+type record PDU_BSSMAP_HandoverRequest
+{
+ OCT1 messageType, // '10'O
+ BSSMAP_IE_ChannelType channelType,
+ BSSMAP_IE_EncryptionInformation encryptionInformation,
+ BSSMAP_IE_ClassmarkInformationType classmarkInformationType, //Type 1 or 2
+ BSSMAP_IE_CellIdentifier cellIdentifierSource,
+ BSSMAP_IE_Priority priority optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional,
+ BSSMAP_IE_CellIdentifier cellIdentifierTarget,
+ BSSMAP_IE_InterferenceBandToBeUsed interferenceBandToBeUsed optional,
+ BSSMAP_IE_Cause cause optional,
+ BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional,
+ BSSMAP_IE_CurrentChannelType1 currentChannelType1 optional,
+ BSSMAP_IE_SpeechVersion speechVersion optional,
+ BSSMAP_IE_GroupCallReference groupCallReference optional,
+ BSSMAP_IE_TalkerFlag talkerFlag optional,
+ BSSMAP_IE_ConfigurationEvolutionIndication configurationEvolutionIndication optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional,
+ BSSMAP_IE_OldToNewBSSInfo oldToNewBSSInfo optional,
+ BSSMAP_IE_LSAInformation lSAInformation optional,
+ BSSMAP_IE_LSAAccessControlSuppression lSAAccessControlSuppression optional,
+ BSSMAP_IE_ServiceHandover serviceHandover optional,
+ BSSMAP_IE_IMSI iMSI_bssmap optional,
+ BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfo optional,
+ BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfoCDMA optional,
+ BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_CallIdentifier callIdentifier optional,
+ BSSMAP_IE_KC128 kC128 optional,
+ BSSMAP_IE_GlobalCallReference globalCallReference optional,
+ BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional,
+ BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional
+} with { variant "PRESENCE (messageType = '10'O)"
+ variant "TAG (
+ sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O;
+ sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"}
+
+
+// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9
+type record PDU_BSSMAP_HandoverRequired
+{
+ OCT1 messageType, // '11'O
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_ResponseRequest responseRequest optional,
+ BSSMAP_IE_CellIdentifierList cellIdentifierList,
+ BSSMAP_IE_CircuitPoolList circuitPoolList optional,
+ BSSMAP_IE_CurrentChannelType1 currentChannelType1 optional,
+ BSSMAP_IE_SpeechVersion speechVersion optional,
+ BSSMAP_IE_QueueingIndicator queueingIndicator optional,
+ BSSMAP_IE_OldToNewBSSInfo oldToNewBSSInfo optional,
+ BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfo optional,
+ BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfoCDMA optional,
+ BSSMAP_IE_GERANClassmark gERANClassmark optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_SpeechCodec speechCodec optional,
+ BSSMAP_IE_CSG_Identifier cSG_Identifier optional
+} with { variant "PRESENCE (messageType = '11'O)"
+ variant "TAG (
+ sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O;
+ sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"}
+
+
+// HANDOVER REQUEST ACKNOWLEDGE - 48.008 subclause 3.2.1.10
+type record PDU_BSSMAP_HandoverRequestAck
+{
+ OCT1 messageType, // '12'O
+ BSSMAP_IE_Layer3Information layer3Information,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional,
+ BSSMAP_IE_CircuitPool circuitPool optional,
+ BSSMAP_IE_SpeechVersion speechVersion optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_LSAIdentifier lSAIdentifier optional,
+ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional,
+ BSSMAP_IE_InterSystemInfo interSystemInformation optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_SpeechCodec speechCodec optional,
+ BSSMAP_IE_LCLS_BSS_Status lCLS_bSS_Status optional
+} with { variant "PRESENCE (messageType = '12'O)" }
+
+
+// HANDOVER COMMAND - 48.008 subclause 3.2.1.11
+type record PDU_BSSMAP_HandoverCommand
+{
+ OCT1 messageType, // '13'O
+ BSSMAP_IE_Layer3Information layer3Information,
+ BSSMAP_IE_CellIdentifier cellIdentifier optional,
+ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '13'O)" }
+
+
+// HANDOVER COMPLETE - 48.008 subclause 3.2.1.12
+type record PDU_BSSMAP_HandoverComplete
+{
+ OCT1 messageType, // H'14
+ BSSMAP_IE_RR_Cause rR_Cause optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_SpeechCodec speechCodec optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional
+} with { variant "PRESENCE (messageType = '14'O)" }
+
+
+// HANDOVER SUCCEEDED - 48.008 subclause 3.2.1.13
+type record PDU_BSSMAP_HandoverSucceeded
+{
+ OCT1 messageType, // H'15
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '15'O)" }
+
+
+// HANDOVER CANDIDATE ENQUIRE - 48.008 subclause 3.2.1.14
+type record PDU_BSSMAP_HandoverCandidateEnquire
+{
+ OCT1 messageType, // H'18
+ BSSMAP_IE_NumberOfMSs numberOfMSs,
+ BSSMAP_IE_CellIdentifierList cellIdentifierList,
+ BSSMAP_IE_CellIdentifier cellIdentifier
+} with { variant "PRESENCE (messageType = '18'O)" }
+
+
+// HANDOVER CANDIDATE RESPONSE - 48.008 subclause 3.2.1.15
+type record PDU_BSSMAP_HandoverCandidateResponse
+{
+ OCT1 messageType, // H'19
+ BSSMAP_IE_NumberOfMSs numberOfMSs,
+ BSSMAP_IE_CellIdentifier cellIdentifier
+} with { variant "PRESENCE (messageType = '19'O)" }
+
+
+// HANDOVER FAILURE - 48.008 subclause 3.2.1.16
+type record PDU_BSSMAP_HandoverFailure
+{
+ OCT1 messageType,
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_RR_Cause rR_Cause optional,
+ BSSMAP_IE_CircuitPool circuitPool optional,
+ BSSMAP_IE_CircuitPoolList circuitPoolList optional,
+ BSSMAP_IE_GERANClassmark gERANClassmark optional,
+ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional,
+ BSSMAP_IE_InterSystemInfo interSystemInformation optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_SpeechCodecList codecList optional
+} with { variant "PRESENCE (messageType = '16'O)" }
+
+
+// RESOURCE REQUEST - 48.008 subclause 3.2.1.17
+type record PDU_BSSMAP_ResourceRequest
+{
+ OCT1 messageType,
+ BSSMAP_IE_Periodicity periodicity,
+ BSSMAP_IE_ResourceIndMethod resourceIndicationMethod,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_ExtendedResourceInd extendedResourceIndicator optional
+} with { variant "PRESENCE (messageType = '50'O)" }
+
+
+// RESOURCE INDICATION - 48.008 subclause 3.2.1.18
+type record PDU_BSSMAP_ResourceIndication
+{
+ OCT1 messageType,
+ BSSMAP_IE_ResourceIndMethod resourceIndicationMethod,
+ BSSMAP_IE_ResourceAvailable resourceAvailable optional,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_TotalResourceAccessible totalResourceAccessible optional
+} with { variant "PRESENCE (messageType = '51'O)" }
+
+// PAGING - 48.008 subclause 3.2.1.19
+type record PDU_BSSMAP_Paging
+{
+ OCT1 messageType, // '52'O
+ BSSMAP_IE_IMSI iMSI,
+ BSSMAP_IE_TMSI tMSI optional,
+ BSSMAP_IE_CellIdentifierList cellIdentifierList,
+ BSSMAP_IE_ChannelNeeded channelNeeded optional,
+ BSSMAP_IE_EMLPP_Priority eMLPP_Priority optional,
+ BSSMAP_IE_PagingInformation pagingInformation optional
+} with { variant "PRESENCE (messageType = '52'O)" }
+
+
+// CLEAR REQUEST - 48.008 subclause 3.2.1.20
+type record PDU_BSSMAP_ClearRequest
+{
+ OCT1 messageType, // H'22
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '22'O)" }
+
+
+// CLEAR COMMAND - 48.008 subclause 3.2.1.21
+type record PDU_BSSMAP_ClearCommand
+{
+ OCT1 messageType, // H'20
+ BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional,
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CSFB_Indication cSFB_Indication optional
+} with { variant "PRESENCE (messageType = '20'O)" }
+
+
+// CLEAR COMPLETE - 48.008 subclause 3.2.1.22
+type record PDU_BSSMAP_ClearComplete
+{
+ OCT1 messageType // H'21
+} with { variant "PRESENCE (messageType = '21'O)" }
+
+
+// RESET - 48.008 subclause 3.2.1.23
+type record PDU_BSSMAP_Reset
+{
+ OCT1 messageType, // H'30
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_A_InterfaceSelectorForReset a_InterfaceSelectorForReset optional
+} with { variant "PRESENCE (messageType = '30'O)" }
+
+
+// RESET ACKNOWLEDGE - 48.008 subclause 3.2.1.24
+type record PDU_BSSMAP_ResetAck
+{
+ OCT1 messageType, // H'31
+ BSSMAP_IE_A_InterfaceSelectorForReset a_InterfaceSelectorForReset optional
+} with { variant "PRESENCE (messageType = '31'O)" }
+
+
+// HANDOVER PERFORMED - 48.008 subclause 3.2.1.25
+type record PDU_BSSMAP_HandoverPerformed
+{
+ OCT1 messageType,
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional,
+ BSSMAP_IE_SpeechVersion speechVersion optional,
+ BSSMAP_IE_LSAIdentifier lSAIdentifier optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_SpeechCodec speechCodec optional,
+ BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional
+} with { variant "PRESENCE (messageType = '17'O)" }
+
+// OVERLOAD - 48.008 subclause 3.2.1.26
+type record PDU_BSSMAP_Overload
+{
+ OCT1 messageType, // H'32
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CellIdentifier cellIdentifier optional
+} with { variant "PRESENCE (messageType = '32'O)" }
+
+
+// MSC INVOKE TRACE - 48.008 subclause 3.2.1.27
+type record PDU_BSSMAP_MSCInvokeTrace
+{
+ OCT1 messageType, // H'36
+ BSSMAP_IE_TraceType traceType,
+ BSSMAP_IE_TriggerId triggerId optional,
+ BSSMAP_IE_TraceReference traceReference,
+ BSSMAP_IE_TransactionId transactionId optional,
+ BSSMAP_IE_MobileIdentity mobileIdentity optional,
+ BSSMAP_IE_OMCId oMCId optional
+} with { variant "PRESENCE (messageType = '36'O)" }
+
+
+// BSS INVOKE TRACE - 48.008 subclause 3.2.1.28
+type record PDU_BSSMAP_BSSInvokeTrace
+{
+ OCT1 messageType, // H'37
+ BSSMAP_IE_TraceType traceType,
+ BSSMAP_IE_ForwardIndicator forwardIndicator optional,
+ BSSMAP_IE_TriggerId triggerId optional,
+ BSSMAP_IE_TraceReference traceReference,
+ BSSMAP_IE_TransactionId transactionId optional,
+ BSSMAP_IE_OMCId oMCId optional
+} with { variant "PRESENCE (messageType = '37'O)" }
+
+
+// CLASSMARK UPDATE - 48.008 subclause 3.2.1.29
+type record PDU_BSSMAP_ClassmarkUpdate
+{
+ OCT1 messageType, // '54'O
+ BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2,
+ BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '54'O)" }
+
+// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30
+type record PDU_BSSMAP_CipherModeCommand
+{
+ OCT1 messageType, // '53'O
+ BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional,
+ BSSMAP_IE_EncryptionInformation encryptionInformation,
+ BSSMAP_IE_CipherResponseMode cipherResponseMode optional,
+ BSSMAP_IE_KC128 kC128 optional
+} with { variant "PRESENCE (messageType = '53'O)" }
+
+
+// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31
+type record PDU_BSSMAP_CipherModeComplete
+{
+ OCT1 messageType, // '55'O
+ BSSMAP_IE_Layer3MessageContents layer3MessageContents optional,
+ BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional
+} with { variant "PRESENCE (messageType = '55'O)" }
+
+
+// COMPLETE LAYER 3 INFORMATION - 48.008 subclause 3.2.1.32
+type record PDU_BSSMAP_CompleteLayer3Information
+{
+ OCT1 messageType, // '57'O
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_Layer3Information layer3Information,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_LSAIdentifier lSAIdentifier optional,
+ BSSMAP_IE_APDU aPDU optional,
+ BSSMAP_IE_SpeechCodecList codecList optional,
+ BSSMAP_IE_RedirectAttemptFlag redirectAttemptFlag optional,
+ BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional,
+ BSSMAP_IE_IMSI iMSI optional
+} with { variant "PRESENCE (messageType = '57'O)" }
+
+
+// QUEUEING INDICATION - 48.008 subclause 3.2.1.33
+type record PDU_BSSMAP_QueueingIndication
+{
+ OCT1 messageType // H'56
+} with { variant "PRESENCE (messageType = '56'O)" }
+
+
+// SAPI "n" REJECT - 48.008 subclause 3.2.1.34
+type record PDU_BSSMAP_SAPInReject
+{
+ OCT1 messageType, // H'25
+ BSSMAP_IE_DLCI dLCI,
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '25'O)" }
+
+
+// HANDOVER REQUIRED REJECT - 48.008 subclause 3.2.1.37
+type record PDU_BSSMAP_HandoverRequiredReject
+{
+ OCT1 messageType,
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional,
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '1A'O)" }
+
+// RESET CIRCUIT - 48.008 subclause 3.2.1.38
+type record PDU_BSSMAP_ResetCircuit
+{
+ OCT1 messageType, // H'34
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '34'O)" }
+
+
+// RESET CIRCUIT ACKNOWLEDGE - 48.008 subclause 3.2.1.39
+type record PDU_BSSMAP_ResetCircuitAck
+{
+ OCT1 messageType, // H'35
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode
+} with { variant "PRESENCE (messageType = '35'O)" }
+
+
+// HANDOVER DETECT - 48.008 subclause 3.2.1.40
+type record PDU_BSSMAP_HandoverDetect
+{
+ OCT1 messageType, // '1B'O
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '1B'O)" }
+
+
+// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41
+type record PDU_BSSMAP_CircuitGroupBlock
+{
+ OCT1 messageType, // H'44
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList
+} with { variant "PRESENCE (messageType = '44'O)" }
+
+
+// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42
+type record PDU_BSSMAP_CircuitGroupBlockingAck
+{
+ OCT1 messageType, // H'45
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList
+} with { variant "PRESENCE (messageType = '45'O)" }
+
+
+// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43
+type record PDU_BSSMAP_CircuitGroupUnblock
+{
+ OCT1 messageType, // H'46
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList
+} with { variant "PRESENCE (messageType = '46'O)" }
+
+
+// CIRCUIT GROUP UNBLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.44
+type record PDU_BSSMAP_CircuitGroupUnblockAck
+{
+ OCT1 messageType, // H'47
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList
+} with { variant "PRESENCE (messageType = '47'O)" }
+
+
+// CONFUSION - 48.008 subclause 3.2.1.45
+type record PDU_BSSMAP_Confusion
+{
+ OCT1 messageType, // H'26
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_Diagnostics diagnostics
+} with { variant "PRESENCE (messageType = '26'O)" }
+
+
+// CLASSMARK REQUEST - 48.008 subclause 3.2.1.46
+type record PDU_BSSMAP_ClassmarkRequest
+{
+ OCT1 messageType, // H'58
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '58'O)" }
+
+// UNEQUIPPED CIRCUIT - 48.008 subclause 3.2.1.47
+type record PDU_BSSMAP_UnequippedCircuit
+{
+ OCT1 messageType, // H'48
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode,
+ BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList optional
+} with { variant "PRESENCE (messageType = '48'O)" }
+
+
+// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48
+type record PDU_BSSMAP_CipherModeReject
+{
+ OCT1 messageType, // H'59
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '59'O)" }
+
+
+// LOAD INDICATION - 48.008 subclause 3.2.1.49
+type record PDU_BSSMAP_LoadIndication
+{
+ OCT1 messageType, // H'5A
+ BSSMAP_IE_TimeIndication timeIndication,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_CellIdentifierList cellIdentifierList,
+ BSSMAP_IE_ResourceSituation resourceSitation optional,
+ BSSMAP_IE_Cause cause optional
+} with { variant "PRESENCE (messageType = '5A'O)" }
+
+
+// VGCS/VBS SETUP - 48.008 subclause 3.2.1.50
+type record PDU_BSSMAP_VGCS_VBSSetup
+{
+ OCT1 messageType, // H'04
+ BSSMAP_IE_GroupCallReference groupCallReference,
+ BSSMAP_IE_Priority priority optional,
+ BSSMAP_IE_VGCS_FeatureFlags vGCS_FeatureFlags optional
+} with { variant "PRESENCE (messageType = '04'O)" }
+
+// VGCS/VBS SETUP ACK - 48.008 subclause 3.2.1.51
+type record PDU_BSSMAP_VGCS_VBSSetupAck
+{
+ OCT1 messageType, // H'05
+ BSSMAP_IE_VGCS_FeatureFlags vGCS_FeatureFlags optional
+} with { variant "PRESENCE (messageType = '05'O)" }
+
+
+// VGCS/VBS SETUP REFUSE - 48.008 subclause 3.2.1.52
+type record PDU_BSSMAP_VGCS_VBSSetupRefuse
+{
+ OCT1 messageType, // H'06
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '06'O)" }
+
+
+// VGCS/VBS ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.53
+type record PDU_BSSMAP_VGCS_VBSAssignmentRequest
+{
+ OCT1 messageType, // H'07
+ BSSMAP_IE_ChannelType channelType,
+ BSSMAP_IE_AssignmentRequirement assignmentRequirement,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_GroupCallReference groupCallReference,
+ BSSMAP_IE_Priority priority optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional,
+ BSSMAP_IE_EncryptionInformation encryptionInformation optional,
+ BSSMAP_IE_VSTK_RAND vSTK_RAND optional,
+ BSSMAP_IE_VSTK vSTK optional,
+ BSSMAP_IE_CellIdentifierListSegment cellIdentifierListSegment optional
+} with { variant "PRESENCE (messageType = '07'O)" }
+
+
+// VGCS/VBS ASSIGNMENT RESULT - 48.008 subclause 3.2.1.54
+type record PDU_BSSMAP_VGCS_VBSAssignmentResult
+{
+ OCT1 messageType, // H'1C
+ BSSMAP_IE_ChannelType channelType,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_CircuitPool circuitPool optional
+} with { variant "PRESENCE (messageType = '1C'O)" }
+
+
+// VGCS/VBS ASSIGNMENT FAILURE - 48.008 subclause 3.2.1.55
+type record PDU_BSSMAP_VGCS_VBSAssignmentFailure
+{
+ OCT1 messageType, // H'1D
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CircuitPool circuitPool optional,
+ BSSMAP_IE_CircuitPoolList circuitPoolList optional
+} with { variant "PRESENCE (messageType = '1D'O)" }
+
+
+// VGCS/VBS QUEUING INDICATION - 48.008 subclause 3.2.1.56
+type record PDU_BSSMAP_VGCS_VBSQueuingIndication
+{
+ OCT1 messageType // H'1E
+} with { variant "PRESENCE (messageType = '1E'O)" }
+
+
+// UPLINK REQUEST - 48.008 subclause 3.2.1.57
+type record PDU_BSSMAP_UplinkRequest
+{
+ OCT1 messageType, // H'1F
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_CellIdentifier cellIdentifier optional,
+ BSSMAP_IE_Layer3Information layer3Information optional,
+ BSSMAP_IE_MobileIdentity mobileIdentity optional
+} with { variant "PRESENCE (messageType = '1F'O)" }
+
+
+// UPLINK REQUEST ACK - 48.008 subclause 3.2.1.58
+type record PDU_BSSMAP_UplinkRequestAck
+{
+ OCT1 messageType, // H'27
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_EmergencySetIndication emergencySetIndication optional,
+ BSSMAP_IE_TalkerIdentity talkerIdentity optional
+} with { variant "PRESENCE (messageType = '27'O)" }
+
+
+// UPLINK REQUEST CONFIRMATION - 48.008 subclause 3.2.1.59
+type record PDU_BSSMAP_UplinkRequestConfirmation
+{
+ OCT1 messageType, // H'49
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_TalkerIdentity talkerIdentity optional,
+ BSSMAP_IE_Layer3Information layer3Information
+} with { variant "PRESENCE (messageType = '49'O)" }
+
+
+// UPLINK APPLICATION DATA - 48.008 subclause 3.2.1.59a
+type record PDU_BSSMAP_UplinkApplicationData
+{
+ OCT1 messageType,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_Layer3Information layer3Information,
+ BSSMAP_IE_ApplicationDataInformation applicationDataInformation
+} with { variant "PRESENCE (messageType = '63'O)" }
+
+
+// UPLINK RELEASE INDICATION- 48.008 subclause 3.2.1.60
+type record PDU_BSSMAP_UplinkReleaseIndication
+{
+ OCT1 messageType, // H'4A
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_TalkerPriority talkerPriority optional
+} with { variant "PRESENCE (messageType = '4A'O)" }
+
+
+// UPLINK REJECT COMMAND - 48.008 subclause 3.2.1.61
+type record PDU_BSSMAP_UplinkRejectCommand
+{
+ OCT1 messageType, // H'4B
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_TalkerPriority currentTalkerPriority optional,
+ BSSMAP_IE_TalkerPriority rejectedTalkerPriority optional,
+ BSSMAP_IE_TalkerIdentity talkerIdentity optional
+} with { variant "PRESENCE (messageType = '4B'O)" }
+
+
+// UPLINK RELEASE COMMAND - 48.008 subclause 3.2.1.62
+type record PDU_BSSMAP_UplinkReleaseCommand
+{
+ OCT1 messageType, // H'4C
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '4C'O)" }
+
+
+// UPLINK SEIZED COMMAND- 48.008 subclause 3.2.1.63
+type record PDU_BSSMAP_UplinkSeizedCommand
+{
+ OCT1 messageType, // H'4E
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_TalkerPriority talkerPriority optional,
+ BSSMAP_IE_EmergencySetIndication emergencySetIndication optional,
+ BSSMAP_IE_TalkerIdentity talkerIdentity optional
+} with { variant "PRESENCE (messageType = '4E'O)" }
+
+
+
+// SUSPEND - 48.008 subclause 3.2.1.64
+type record PDU_BSSMAP_Suspend
+{
+ OCT1 messageType, // H'28
+ BSSMAP_IE_DLCI dLCI
+} with { variant "PRESENCE (messageType = '28'O)" }
+
+
+// RESUME - 48.008 subclause 3.2.1.65
+type record PDU_BSSMAP_Resume
+{
+ OCT1 messageType, // H'29
+ BSSMAP_IE_DLCI dLCI
+} with { variant "PRESENCE (messageType = '29'O)" }
+
+
+// CHANGE CIRCUIT - 48.008 subclause 3.2.1.66
+type record PDU_BSSMAP_ChangeCircuit
+{
+ OCT1 messageType, // H'4E
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '4E'O)" }
+
+
+// CHANGE CIRCUIT ACKNOWLEDGE - 48.008 subclause 3.2.1.67
+type record PDU_BSSMAP_ChangeCircuitAck
+{
+ OCT1 messageType, // H'4F
+ BSSMAP_IE_CircuitIdentityCode circuitIdentity
+} with { variant "PRESENCE (messageType = '4F'O)" }
+
+
+// COMMON ID - 48.008 subclause 3.2.1.68
+type record PDU_BSSMAP_CommonID
+{
+ OCT1 messageType, // H'2F
+ BSSMAP_IE_IMSI iMSI,
+ BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional
+} with { variant "PRESENCE (messageType = '2F'O)" }
+
+
+// LSA INFORMATION - 48.008 subclause 3.2.1.69
+type record PDU_BSSMAP_LSAInformation
+{
+ OCT1 messageType, // H'2C
+ BSSMAP_IE_LSAInformation lSAInformation
+} with { variant "PRESENCE (messageType = '2C'O)" }
+
+
+// REFORM LOCATION REQUEST - 48.008 subclause 3.2.1.71
+type record PDU_BSSMAP_PerformLocationRequest
+{
+ OCT1 messageType, // '2B'O
+ BSSMAP_IE_LocationType locationType,
+ BSSMAP_IE_CellIdentifier cellIdentifier optional,
+ BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional,
+ BSSMAP_IE_LCSClientType lCS_ClientType optional,
+ BSSMAP_IE_ChosenChannel chosenChannel optional,
+ BSSMAP_IE_LCSPriority lCS_Priority optional,
+ BSSMAP_IE_LCSQOS lCS_QOS optional,
+ BSSMAP_IE_GPSAssistanceData gPS_AssistanceData optional,
+ BSSMAP_IE_APDU aPDU optional,
+ BSSMAP_IE_IMSI iMSI optional,
+ BSSMAP_IE_IMEI iMEI optional,
+ BSSMAP_IE_GANSS_LocationType gANSS_LocationType optional,
+ BSSMAP_IE_GANSS_AssistanceData gANSS_AssistanceData optional
+} with { variant "PRESENCE (messageType = '2B'O)" }
+
+
+// REFORM LOCATION RESPONSE - 48.008 subclause 3.2.1.72
+type record PDU_BSSMAP_PerformLocationResponse
+{
+ OCT1 messageType, // '2D'O
+ BSSMAP_IE_LocationEstimate locationEstimate optional,
+ BSSMAP_IE_PositioningData positioningData optional,
+ BSSMAP_IE_DecipheringKeys decipheringKeys optional,
+ BSSMAP_IE_LCSCause lCS_Cause optional,
+ BSSMAP_IE_VelocityEstimate velocityEstimate optional,
+ BSSMAP_IE_GANSS_PositioningData gANSS_PositioningData optional
+} with { variant "PRESENCE (messageType = '2D'O)" }
+
+
+// REFORM LOCATION ABORT - 48.008 subclause 3.2.1.73
+type record PDU_BSSMAP_PerformLocationAbort
+{
+ OCT1 messageType, // '2E'O
+ BSSMAP_IE_LCSCause lCS_Cause
+} with { variant "PRESENCE (messageType = '2E'O)" }
+
+
+// CONNECTIONLESS INFORMATION - 48.008 subclause 3.2.1.74
+type record PDU_BSSMAP_ConnectionlessInformation
+{
+ OCT1 messageType, // '3A'O
+ BSSMAP_IE_NetworkElementIdentity networkElementIdentitySource,
+ BSSMAP_IE_NetworkElementIdentity networkElementIdentityTarget,
+ BSSMAP_IE_APDU aPDU,
+ BSSMAP_IE_Segmentation segmentation optional,
+ BSSMAP_IE_ReturnErrorRequest returnErrorRequest optional,
+ BSSMAP_IE_ReturnErrorCause returnErrorCause optional
+} with { variant "PRESENCE (messageType = '3A'O)" }
+
+// 3.2.1.75 CHANNEL MODIFY REQUEST
+type record PDU_BSSMAP_ChannelModifyRequest
+{
+ OCT1 messageType, // '08'O
+ BSSMAP_IE_Cause cause
+} with { variant "PRESENCE (messageType = '08'O)" }
+
+// FIXME: these two message type codes are not specified in the standard
+/*// 3.2.1.76 EMERGENCY RESET INDICATION
+type record PDU_BSSMAP_EmergencyResetIndication
+{
+OCT1 messageType, // 'X'O
+BSSMAP_IE_CellIdentifier cellIdentifier optional,
+BSSMAP_IE_Layer3Information layer3Information optional,
+BSSMAP_IE_MobileIdentity mobileIdentity optional
+} with {variant "TAG (
+// layer3Information?}
+
+// 3.2.1.77 EMERGENCY RESET COMMAND
+type record PDU_BSSMAP_EmergencyResetCommand
+{
+OCT1 messageType // 'X'O
+}*/
+
+// 3.2.1.78 VGCS ADDITIONAL INFORMATION
+type record PDU_BSSMAP_VGCS_AdditionalInformation
+{
+ OCT1 messageType, // '60'O
+ BSSMAP_IE_TalkerIdentity talkerIdentity
+} with { variant "PRESENCE (messageType = '60'O)" }
+
+
+// 3.2.1.79 VGCS/VBS AREA CELL INFO
+type record PDU_BSSMAP_VGCS_VBS_AreaCellInfo
+{
+ OCT1 messageType, // '3C'O
+ BSSMAP_IE_CellIdentifierListSegment cellIdentifierListSegment,
+ BSSMAP_IE_AssignmentRequirement assignmentRequirement optional
+} with { variant "PRESENCE (messageType = '3C'O)" }
+
+
+// 3.2.1.80 VGCS/VBS ASSIGNMENT STATUS
+type record PDU_BSSMAP_VGCS_VBS_AssignmentStatus
+{
+ OCT1 messageType, // '3B'O
+ BSSMAP_IE_CellIdentifierListSegmentEstCells cellIdentifierListForEstablishedCells optional,
+ BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional,
+ BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent cellIdentifierListSegmentReleasedCellsNoUserPresent optional,
+ BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible cellIdentifierListSegmentNotEstablishedCellsNoEstPossible optional,
+ BSSMAP_IE_VGCS_VBS_CellStatus vGCS_VBS_CellStatus optional
+} with { variant "PRESENCE (messageType = '3B'O)" }
+
+
+// 3.2.1.81 VGCS SMS
+type record PDU_BSSMAP_VGCS_SMS
+{
+ OCT1 messageType, // '61'O
+ BSSMAP_IE_SMS_to_VGCS sMS_to_VGCS
+} with { variant "PRESENCE (messageType = '61'O)" }
+
+
+// 3.2.1.82 NOTIFICATION DATA
+type record PDU_BSSMAP_NotificationData
+{
+ OCT1 messageType, // '62'
+ BSSMAP_IE_ApplicationData applicationData,
+ BSSMAP_IE_DataIdentity dataIdentity,
+ BSSMAP_IE_MSISDN mSISDN optional
+} with { variant "PRESENCE (messageType = '62'O)" }
+
+
+// 3.2.1.83 INTERNAL HANDOVER REQUIRED
+type record PDU_BSSMAP_InternalHandoverRequired
+{
+ OCT1 messageType, // '70'
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CellIdentifier cellIdentifier,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_SpeechCodecList codecList
+} with { variant "PRESENCE (messageType = '70'O)" }
+
+
+// 3.2.1.84 INTERNAL HANDOVER REQUIRED REJECT
+type record PDU_BSSMAP_InternalHandoverRequiredReject
+{
+ OCT1 messageType, // '71'
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_SpeechCodecList codecList optional
+} with { variant "PRESENCE (messageType = '71'O)" }
+
+
+// 3.2.1.85 INTERNAL HANDOVER COMMAND
+type record PDU_BSSMAP_InternalHandoverCommand
+{
+ OCT1 messageType, // '72'
+ BSSMAP_IE_SpeechCodec speechCodec,
+ BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional,
+ BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional,
+ BSSMAP_IE_CallIdentifier callIdentifier optional,
+ BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional,
+ BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional
+} with { variant "PRESENCE (messageType = '72'O)" }
+
+// 3.2.1.86 INTERNAL HANDOVER ENQUIRY
+type record PDU_BSSMAP_InternalHandoverEnquiry
+{
+ OCT1 messageType, //'73'
+ BSSMAP_IE_SpeechCodec speechCodec
+} with { variant "PRESENCE (messageType = '73'O)" }
+
+
+// 3.2.1.87 RESET IP RESOURCE
+type record PDU_BSSMAP_ResetIPResource
+{
+ OCT1 messageType, //'3D'
+ BSSMAP_IE_Cause cause,
+ BSSMAP_IE_CallIdentifierList callIdentifierList
+} with { variant "PRESENCE (messageType = '3D'O)" }
+
+
+// 3.2.1.88 RESET IP RESOURCE ACK
+type record PDU_BSSMAP_ResetIPResourceAck
+{
+ OCT1 messageType, //'3E'
+ BSSMAP_IE_CallIdentifierList callIdentifierList
+} with { variant "PRESENCE (messageType = '3E'O)" }
+
+
+// 3.2.1.89 REROUTE COMMAND
+type record PDU_BSSMAP_RerouteCommand
+{
+ OCT1 messageType, //'78'
+ BSSMAP_IE_Layer3Information initialLayer3Information,
+ BSSMAP_IE_RerouteRejectCause rerouteRejectCause,
+ BSSMAP_IE_Layer3Information layer3Information optional,
+ BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional,
+ BSSMAP_IE_IMSI iMSI optional
+} with { variant "PRESENCE (messageType = '78'O)" }
+
+// 3.2.1.90 REROUTE COMPLETE
+type record PDU_BSSMAP_RerouteComplete
+{
+ OCT1 messageType, //'79'
+ BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome
+} with { variant "PRESENCE (messageType = '79'O)" }
+
+// 3.2.1.91 LCLS CONNECT CONTROL
+type record PDU_BSSMAP_LCLS_ConnectControl
+{
+ OCT1 messageType, //'74'
+ BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional,
+ BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional
+} with { variant "PRESENCE (messageType = '74'O)" }
+
+// 3.2.1.92 LCLS CONNECT CONTROL ACK
+type record PDU_BSSMAP_LCLS_ConnectControlAck
+{
+ OCT1 messageType, //'75'
+ BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status
+} with { variant "PRESENCE (messageType = '75'O)" }
+
+// 3.2.1.93 LCLS NOTIFICATION
+type record PDU_BSSMAP_LCLS_Notification
+{
+ OCT1 messageType, //'76'
+ BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional,
+ BSSMAP_IE_LCLS_BreakRequest lCLS_BreakRequest optional
+} with { variant "PRESENCE (messageType = '76'O)" }
+
+
+//The container type of all BSSMAP messages
+type union PDU_BSSMAP
+{
+ PDU_BSSMAP_AssignmentRequest assignmentRequest,
+ PDU_BSSMAP_AssignmentComplete assignmentComplete,
+ PDU_BSSMAP_AssignmentFailure assignmentFailure,
+ PDU_BSSMAP_ChannelModifyRequest channelModifyRequest,
+ PDU_BSSMAP_Block block,
+ PDU_BSSMAP_BlockingAck blockingAck,
+ PDU_BSSMAP_BSSInvokeTrace bSSInvokeTrace,
+ PDU_BSSMAP_ChangeCircuit changeCircuit,
+ PDU_BSSMAP_ChangeCircuitAck changeCircuitAck,
+ PDU_BSSMAP_CipherModeCommand cipherModeCommand,
+ PDU_BSSMAP_CipherModeComplete cipherModeComplete,
+ PDU_BSSMAP_CipherModeReject cipherModeReject,
+ PDU_BSSMAP_CircuitGroupBlock circuitGroupBlock,
+ PDU_BSSMAP_CircuitGroupBlockingAck circuitGroupBlockingAck,
+ PDU_BSSMAP_CircuitGroupUnblock circuitGroupUnblock,
+ PDU_BSSMAP_CircuitGroupUnblockAck circuitGroupUnblockAck,
+ PDU_BSSMAP_ClassmarkRequest classmarkRequest,
+ PDU_BSSMAP_ClassmarkUpdate classmarkUpdate,
+ PDU_BSSMAP_ClearCommand clearCommand,
+ PDU_BSSMAP_ClearComplete clearComplete,
+ PDU_BSSMAP_ClearRequest clearRequest,
+ PDU_BSSMAP_CommonID commonID,
+ PDU_BSSMAP_CompleteLayer3Information completeLayer3Information,
+ PDU_BSSMAP_Confusion confusion,
+ PDU_BSSMAP_ConnectionlessInformation connectionlessInformation,
+ PDU_BSSMAP_HandoverCandidateEnquire handoverCandidateEnquire,
+ PDU_BSSMAP_HandoverCandidateResponse handoverCandidateResponse,
+ PDU_BSSMAP_HandoverCommand handoverCommand,
+ PDU_BSSMAP_HandoverComplete handoverComplete,
+ PDU_BSSMAP_HandoverDetect handoverDetect,
+ PDU_BSSMAP_HandoverFailure handoverFailure,
+ PDU_BSSMAP_HandoverPerformed handoverPerformed,
+ PDU_BSSMAP_HandoverRequest handoverRequest,
+ PDU_BSSMAP_HandoverRequestAck handoverRequestAck,
+ PDU_BSSMAP_HandoverRequired handoverRequired,
+ PDU_BSSMAP_HandoverRequiredReject handoverRequiredReject,
+ PDU_BSSMAP_HandoverSucceeded handoverSucceeded,
+ PDU_BSSMAP_LoadIndication loadIndication,
+ PDU_BSSMAP_LSAInformation lSAInformation,
+ PDU_BSSMAP_MSCInvokeTrace mSCInvokeTrace,
+ PDU_BSSMAP_Overload overload,
+ PDU_BSSMAP_Paging paging,
+ PDU_BSSMAP_PerformLocationAbort performLocationAbort,
+ PDU_BSSMAP_PerformLocationRequest performLocationRequest,
+ PDU_BSSMAP_PerformLocationResponse performLocationResponse,
+ PDU_BSSMAP_QueueingIndication queueingIndication,
+ PDU_BSSMAP_Reset reset,
+ PDU_BSSMAP_ResetAck resetAck,
+ PDU_BSSMAP_ResetCircuit resetCircuit,
+ PDU_BSSMAP_ResetCircuitAck resetCircuitAck,
+ PDU_BSSMAP_ResourceIndication resourceIndication,
+ PDU_BSSMAP_ResourceRequest resourceRequest,
+ PDU_BSSMAP_SAPInReject sAPInReject,
+ PDU_BSSMAP_Suspend suspend,
+ PDU_BSSMAP_Resume resume,
+ PDU_BSSMAP_Unblock unblock,
+ PDU_BSSMAP_UnblockAck unblockAck,
+ PDU_BSSMAP_UnequippedCircuit unequippedCircuit,
+ PDU_BSSMAP_UplinkRequest uplinkRequest,
+ PDU_BSSMAP_UplinkRequestAck uplinkRequestAck,
+ PDU_BSSMAP_UplinkRequestConfirmation uplinkRequestConfirmation,
+ PDU_BSSMAP_UplinkReleaseIndication uplinkReleaseIndication,
+ PDU_BSSMAP_UplinkRejectCommand uplinkRejectCommand,
+ PDU_BSSMAP_UplinkReleaseCommand uplinkReleaseCommand,
+ PDU_BSSMAP_UplinkSeizedCommand uplinkSeizedCommand,
+ PDU_BSSMAP_VGCS_VBSSetup vGCS_VBSSetup,
+ PDU_BSSMAP_VGCS_VBSSetupAck vGCS_VBSSetupAck,
+ PDU_BSSMAP_VGCS_VBSSetupRefuse vGCS_VBSSetupRefuse,
+ PDU_BSSMAP_VGCS_VBSAssignmentRequest vGCS_VBSAssignmentRequest,
+ PDU_BSSMAP_VGCS_VBSAssignmentResult vGCS_VBSAssignmentResult,
+ PDU_BSSMAP_VGCS_VBSAssignmentFailure vGCS_VBSAssignmentFailure,
+ PDU_BSSMAP_VGCS_VBSQueuingIndication vGCS_VBSQueuingIndication,
+ // FIXME: these 2 message type codes are not specified in the standard
+ // PDU_BSSMAP_EmergencyResetIndication emergencyResetIndication,
+ // PDU_BSSMAP_EmergencyResetCommand emergencyResetCommand,
+ PDU_BSSMAP_VGCS_AdditionalInformation vGCS_AdditionalInformation,
+ PDU_BSSMAP_VGCS_VBS_AreaCellInfo vGCS_VBS_AreaCellInfo,
+ PDU_BSSMAP_VGCS_VBS_AssignmentStatus vGCS_VBS_AssignmentStatus,
+ PDU_BSSMAP_VGCS_SMS vGCS_SMS,
+ PDU_BSSMAP_UplinkApplicationData uplinkApplicationData,
+ PDU_BSSMAP_NotificationData notificationData,
+ PDU_BSSMAP_InternalHandoverRequired internalHandoverRequired,
+ PDU_BSSMAP_InternalHandoverRequiredReject internalHandoverRequiredReject,
+ PDU_BSSMAP_InternalHandoverCommand internalHandoverCommand,
+ PDU_BSSMAP_InternalHandoverEnquiry internalHandoverEnquiry,
+ PDU_BSSMAP_ResetIPResource resetIPResource,
+ PDU_BSSMAP_ResetIPResourceAck resetIPResourceAck,
+ PDU_BSSMAP_RerouteCommand rerouteCommand,
+ PDU_BSSMAP_RerouteComplete rerouteComplete,
+ PDU_BSSMAP_LCLS_ConnectControl lCLS_ConnectControl,
+ PDU_BSSMAP_LCLS_ConnectControlAck lCLS_connectControlAck,
+ PDU_BSSMAP_LCLS_Notification lCLS_Notification
+}
+
+
+
+///////////////////////////////////////////
+// BSSAP message definition
+///////////////////////////////////////////
+
+type union BSSMAPorDTAP
+{
+ PDU_BSSMAP bssmap,
+ octetstring dtap
+}
+
+
+type record PDU_BSSAP
+{
+ BIT1 discriminator, // 0= BSSMAP ; 1 = DTAP
+ BIT7 spare, // always '0000000'B
+ OCT1 dlci optional,
+ LIN1 lengthIndicator,
+ BSSMAPorDTAP pdu
+} with {variant (lengthIndicator)"LENGTHTO (pdu)";
+ variant (pdu)"CROSSTAG( bssmap, discriminator='0'B;
+ dtap, discriminator='1'B)";
+ variant (dlci)"PRESENCE(discriminator='1'B)"}
+
+
+} with { encode "RAW"} // End of module BSSMAP_typedefs
diff --git a/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSMAP_V11.2.0.grp b/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSMAP_V11.2.0.grp
new file mode 100644
index 00000000..02e3cd34
--- /dev/null
+++ b/BSSMAP_v11.2.0_CNL113761_LATEST/src/BSSMAP_V11.2.0.grp
@@ -0,0 +1,27 @@
+<!--
+///////////////////////////////////////////////////////////////////////////////
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: BSSMAP_V11.2.0.grp
+// Description: BSSMAP_V11.2.0 Protocol Module group file
+// Rev: R1A01
+// Prodnr: CNL 113 761
+// Updated: 2012-11-06
+// Contact: http://ttcn.ericsson.se
+//
+-->
+
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<FileGroup TITAN_version="1.10.pl0" >
+ <File_Group name="BSSMAP_V11.2.0" >
+ <File path="BSSAP_Types.ttcn" />
+ </File_Group>
+</FileGroup>
diff --git a/GTP_v13.5.0_CNL113843_LATEST/GTP_v13.5.0_CNL113843.tpd b/GTP_v13.5.0_CNL113843_LATEST/GTP_v13.5.0_CNL113843.tpd
new file mode 100644
index 00000000..62620ee4
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/GTP_v13.5.0_CNL113843.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2016 Ericsson
+
+ The copyright to the computer program(s) herein is the property of Ericsson.
+ The program(s) may be used and/or copied only with the written permission
+ of Ericsson or in accordance with the terms and conditions stipulated in the
+ agreement/contract under which the program(s) has been supplied.
+
+
+ File: GTP_v13.5.0_CNL113843.tpd
+ Description: tpd project file
+ Rev: R1B
+ Prodnr: CNL 113 843
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>GTP_v13.5.0_CNL113843</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+ </ReferencedProjects>
+ <Folders>
+ <FolderResource projectRelativePath="src" relativeURI="src"/>
+ </Folders>
+ <Files>
+ <FileResource projectRelativePath="src/GTPC_EncDec.cc" relativeURI="src/GTPC_EncDec.cc"/>
+ <FileResource projectRelativePath="src/GTPC_Types.ttcn" relativeURI="src/GTPC_Types.ttcn"/>
+ <FileResource projectRelativePath="src/GTPU_EncDec.cc" relativeURI="src/GTPU_EncDec.cc"/>
+ <FileResource projectRelativePath="src/GTPU_Types.ttcn" relativeURI="src/GTPU_Types.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <generateInternalMakefile>true</generateInternalMakefile>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/GTP_v13.5.0_CNL113843</targetExecutable>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information>
diff --git a/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_Descr.doc b/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_Descr.doc
new file mode 100644
index 00000000..06749f8b
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_Descr.doc
Binary files differ
diff --git a/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_PRI.doc b/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_PRI.doc
new file mode 100644
index 00000000..f8a42fdd
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/doc/GTP_v13.5_PRI.doc
Binary files differ
diff --git a/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_EncDec.cc b/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_EncDec.cc
new file mode 100644
index 00000000..d3548e72
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_EncDec.cc
@@ -0,0 +1,216 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: GTPC_EncDec.cc
+// Rev: R1B
+// Prodnr: CNL 113 843
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 29.060 v13.5.0
+
+#include "GTPC_Types.hh"
+
+namespace GTPC__Types {
+
+
+// find the length of the optional part and decode optional part into OPT_PART
+int find_optpart_length(const unsigned char * opt_part_ptr,GTPC__Header__optional__part& OPT_PART)// pointer to opt part start
+{
+ int opt_part_length = 4; // mandatory minimum length of opt_part
+ OPT_PART.sequenceNumber() = OCTETSTRING(2,opt_part_ptr);
+ OPT_PART.npduNumber() = OCTETSTRING(1,opt_part_ptr+2);
+ OPT_PART.nextExtHeader() = OCTETSTRING(1,opt_part_ptr+3);
+ OPT_PART.gTPC__extensionHeader__List() = OMIT_VALUE;
+
+ int i = 0;
+ bool opt_part_end = false;
+ while(!opt_part_end)
+ {
+ if (opt_part_ptr[opt_part_length-1] != 0x00) // 0x00 means end of optional part
+ {
+ unsigned char lengthfield = opt_part_ptr[opt_part_length];
+
+ OPT_PART.gTPC__extensionHeader__List()()[i].lengthfield() = lengthfield;
+ OPT_PART.gTPC__extensionHeader__List()()[i].content() =
+ OCTETSTRING(4*lengthfield-2,opt_part_ptr + opt_part_length +1);
+ OPT_PART.gTPC__extensionHeader__List()()[i].nextExtHeader() =
+ OCTETSTRING(1,opt_part_ptr + opt_part_length + 4*lengthfield - 1);
+
+ opt_part_length = opt_part_length + 4*lengthfield;
+ i++;
+ }
+ else
+ {opt_part_end = true;}
+ }
+
+ return opt_part_length;
+}
+
+
+void dec__PDU__GTPC_no_optional_part(const unsigned char * udp__pdu,const int pl_udp_pdu_length, const SystemUnderTest& pl__SystemUnderTest,PDU__GTPC& pdu)
+{
+ TTCN_Buffer buf;
+
+ if ((pl__SystemUnderTest == SystemUnderTest::GGSN) || (pl__SystemUnderTest == SystemUnderTest::CGW))
+ // testing GGSN or CGW (not default)
+ {
+ const unsigned char *gtpc_message = (const unsigned char *) udp__pdu;
+ if ((gtpc_message[1] == 0x12) || (gtpc_message[1] == 0x13))
+ // if updatePDPContextRequest or updatePDPContextResponse message is received from GGSN or C-GW
+ {
+ unsigned char pn = gtpc_message[0] & 0x01;
+ pdu.pn__bit() = BITSTRING(1,&pn);
+
+ unsigned char s = (gtpc_message[0] & 0x02) >> 1;
+ pdu.s__bit() = BITSTRING(1,&s);
+
+ unsigned char e = (gtpc_message[0] & 0x04) >> 2;
+ pdu.e__bit() = BITSTRING(1,&e);
+
+ unsigned char spare = (gtpc_message[0] & 0x08) >> 3;
+ pdu.spare() = BITSTRING(1,&spare );
+
+ unsigned char pt = (gtpc_message[0] & 0x10) >> 4;
+ pdu.pt() = BITSTRING(1,&pt );
+
+ unsigned char version = ((gtpc_message[0] & 0x80) >> 7) |
+ ((gtpc_message[0] & 0x40) >> 5) |
+ ((gtpc_message[0] & 0x20) >> 3) ;
+ pdu.version() = BITSTRING(3,&version);
+
+ pdu.messageType() = OCTETSTRING(1,gtpc_message+1);
+
+ pdu.lengthf() = (gtpc_message[2] << 8) + gtpc_message[3];
+
+ pdu.teid() = OCTETSTRING(4,gtpc_message+4);
+
+ pdu.opt__part() = OMIT_VALUE;
+
+ if (gtpc_message[1] == 0x12) //updatePDPContextRequest
+ {
+ if(pl__SystemUnderTest == SystemUnderTest::GGSN) // from GGSN
+ {
+ UpdatePDPContextRequestGGSN updatePDPContextRequestGGSN;
+ OCTETSTRING updatePDPContextRequestGGSN_string = OCTETSTRING(pl_udp_pdu_length-8,udp__pdu+8 );
+ buf.put_os(updatePDPContextRequestGGSN_string);
+ updatePDPContextRequestGGSN.decode(UpdatePDPContextRequestGGSN_descr_,buf,TTCN_EncDec::CT_RAW);
+ pdu.gtpc__pdu().updatePDPContextRequest().updatePDPContextRequestGGSN() = updatePDPContextRequestGGSN;
+ }
+ else // from CGW
+ {
+ UpdatePDPContextRequestCGW updatePDPContextRequestCGW;
+ OCTETSTRING updatePDPContextRequestCGW_string = OCTETSTRING(pl_udp_pdu_length-8,udp__pdu+8 );
+ buf.put_os(updatePDPContextRequestCGW_string);
+ updatePDPContextRequestCGW.decode(UpdatePDPContextRequestCGW_descr_,buf,TTCN_EncDec::CT_RAW);
+ pdu.gtpc__pdu().updatePDPContextRequest().updatePDPContextRequestCGW() = updatePDPContextRequestCGW;
+ }
+ }
+ else //updatePDPContextResponse
+ {
+ if(pl__SystemUnderTest == SystemUnderTest::GGSN) // from GGSN
+ {
+ UpdatePDPContextResponseGGSN updatePDPContextResponseGGSN;
+ OCTETSTRING updatePDPContextResponseGGSN_string = OCTETSTRING(pl_udp_pdu_length-8,udp__pdu+8 );
+ buf.put_os(updatePDPContextResponseGGSN_string);
+ updatePDPContextResponseGGSN.decode(UpdatePDPContextResponseGGSN_descr_,buf,TTCN_EncDec::CT_RAW);
+ pdu.gtpc__pdu().updatePDPContextResponse().updatePDPContextResponseGGSN() = updatePDPContextResponseGGSN;
+ }
+ else // from CGW
+ {
+ UpdatePDPContextResponseCGW updatePDPContextResponseCGW;
+ OCTETSTRING updatePDPContextResponseCGW_string = OCTETSTRING(pl_udp_pdu_length-8,udp__pdu+8 );
+ buf.put_os(updatePDPContextResponseCGW_string);
+ updatePDPContextResponseCGW.decode(UpdatePDPContextResponseCGW_descr_,buf,TTCN_EncDec::CT_RAW);
+ pdu.gtpc__pdu().updatePDPContextResponse().updatePDPContextResponseCGW() = updatePDPContextResponseCGW;
+ }
+ }
+
+ buf.clear();
+ return;
+ }
+ else // if message not equal to updatePDPContextRequest or updatePDPContextResponse is received from GGSN or C-GW
+ {
+ buf.put_s(pl_udp_pdu_length,udp__pdu);
+ pdu.decode(PDU__GTPC_descr_, buf, TTCN_EncDec::CT_RAW);
+ buf.clear();
+ return;
+ }
+ }
+ else //pl__SystemUnderTest is SGSN or MME (this is default)
+ {
+ buf.put_s(pl_udp_pdu_length,udp__pdu);
+ pdu.decode(PDU__GTPC_descr_, buf, TTCN_EncDec::CT_RAW);
+ buf.clear();
+ return;
+ }
+}
+
+//////////////////////////////////
+// Decoding function for GTPC__DialoguePDU
+//////////////////////////////////
+
+PDU__GTPC dec__PDU__GTPC(const OCTETSTRING& udp__pdu,const SystemUnderTest& pl__SystemUnderTest)
+{
+ PDU__GTPC pdu;
+
+ const unsigned char *gtpc_message = (const unsigned char *) udp__pdu;
+
+ int opt_part_length = 0;
+ if ( gtpc_message[0] & 0x07 ) // opt_part is present
+ {
+ GTPC__Header__optional__part OPT_PART;
+
+ // find the length of the optional part and decode optional part into OPT_PART
+ opt_part_length = find_optpart_length(gtpc_message+8,OPT_PART);
+ if( ((gtpc_message[2] << 8) + gtpc_message[3] - opt_part_length) < 0 )
+ {TTCN_error("Decoding error, lengthf field is shorter that decoded length of opt_part");}
+
+ // build PDU without optional part
+ unsigned int gtpc_IEs_length = (gtpc_message[2] << 8) + gtpc_message[3] - opt_part_length;
+ unsigned char gtpcBuf[8 + gtpc_IEs_length];
+ memcpy(gtpcBuf,gtpc_message,8);
+ memcpy(gtpcBuf+8,gtpc_message+8+opt_part_length,gtpc_IEs_length);
+
+ // substitute dummy bits (indicating there is no optional part)
+ gtpcBuf[0] = gtpcBuf[0] & 0xf8;
+
+ // substitute dummy length (not including optional part)
+ gtpcBuf[2] = (gtpc_IEs_length & 0xff00) >> 8;
+ gtpcBuf[3] = gtpc_IEs_length & 0xff;
+
+ // call decoding function
+ dec__PDU__GTPC_no_optional_part(gtpcBuf,udp__pdu.lengthof() - opt_part_length,pl__SystemUnderTest,pdu);
+
+ // put back the original values
+ unsigned char pn = gtpc_message[0] & 0x01;
+ pdu.pn__bit() = BITSTRING(1,&pn);
+
+ unsigned char s = (gtpc_message[0] & 0x02) >> 1;
+ pdu.s__bit() = BITSTRING(1,&s);
+
+ unsigned char e = (gtpc_message[0] & 0x04) >> 2;
+ pdu.e__bit() = BITSTRING(1,&e);
+
+ pdu.lengthf() = (gtpc_message[2] << 8) + gtpc_message[3];
+
+ pdu.opt__part() = OPT_PART;
+
+ return pdu;
+ }
+ else // opt_part is not present
+ {
+ dec__PDU__GTPC_no_optional_part(gtpc_message,udp__pdu.lengthof(),pl__SystemUnderTest,pdu);
+ return pdu;
+ }
+} // end of function
+
+
+
+}//namespace
diff --git a/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_Types.ttcn b/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_Types.ttcn
new file mode 100644
index 00000000..8370f26f
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/src/GTPC_Types.ttcn
@@ -0,0 +1,3958 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: GTPC_Types.ttcn
+// Rev: R1B
+// Prodnr: CNL 113 843
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 29.060 v13.5.0
+
+module GTPC_Types {
+
+import from General_Types all;
+
+// external encoding/decoding functions
+external function enc_PDU_GTPC(in PDU_GTPC gtpc_pdu) return octetstring
+with { extension "prototype(convert)"
+ extension "encode(RAW)"
+ }
+
+external function dec_PDU_GTPC(in octetstring udp_pdu, SystemUnderTest pl_SystemUnderTest := SGSN) return PDU_GTPC
+// for SGSN testing pl_SystemUnderTest is SGSN (default value)
+// for GGSN testing pl_SystemUnderTest is GGSN
+// for CGW testing pl_SystemUnderTest is CGW
+// for MME testing pl_SystemUnderTest is MME
+// in current implementation the decoder behavior is identical for
+// SGSN and MME
+
+// determines SUT, needed for decoding updatePDPContextRequest
+// and updatePDPContextResponse messages
+type enumerated SystemUnderTest{SGSN(0),GGSN(1),CGW(2),MME(3)};
+/////////////////////////////
+// Information Elements
+/////////////////////////////
+//Information Element with an IE Type Extension field - 7.7.0A
+//for future use
+type record IE_Type_Extension {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf, //16 bits
+ IE_Extension_UnionType iE_Type_Extension
+
+} with {
+ variant (lengthf) "LENGTHTO(iE_Type_Extension)";
+ variant "PRESENCE( type_gtpc = 'EE'O)";
+};
+
+type union IE_Extension_UnionType
+{
+ IE_Extension_Type iE_Type_Extension
+}
+
+type record IE_Extension_Type
+{
+ OCT2 elementIdentifier,
+ octetstring valueField
+}
+
+
+//Cause - 7.7.1
+type record Cause_gtpc {
+ OCT1 type_gtpc,
+ OCT1 causevalue
+} with { variant "PRESENCE( type_gtpc = '01'O)"; };
+
+//IMSI - 7.7.2
+type record IMSI_gtpc {
+ OCT1 type_gtpc,
+ hexstring digits length(15),
+ HEX1 padding
+} with { variant "PRESENCE( type_gtpc = '02'O)"; };
+
+//Routing Area ID - 7.7.3
+// Note : the order of MNC digits is
+// MNC digit 3, MNC digit 1, MNC digit 2
+type record RoutingAreaIdentity {
+ OCT1 type_gtpc,
+ hexstring mcc_digits length(3),
+ hexstring mnc_digits length(3),
+ OCT2 lac,
+ OCT1 rac
+} with { variant "PRESENCE( type_gtpc = '03'O)"; };
+
+//TLLI - 7.7.4
+type record TLLI {
+ OCT1 type_gtpc,
+ OCT4 tlli_element
+} with { variant "PRESENCE( type_gtpc = '04'O)"; };
+
+//Packet TMSI - 7.7.5
+type record PacketTMSI {
+ OCT1 type_gtpc,
+ OCT4 p_tmsi
+} with { variant "PRESENCE( type_gtpc = '05'O)"; };
+
+//Reordering Required - 7.7.6
+type record ReorderingRequired {
+ OCT1 type_gtpc,
+ BIT1 reordreq,
+ BIT7 spare
+} with { variant "PRESENCE( type_gtpc = '08'O)"; };
+
+//Authentication Triplet - 7.7.7
+type record AuthenticationTriplet_GTPC {
+ OCT1 type_gtpc,
+ OCT16 rand,
+ OCT4 sres,
+ OCT8 kc
+} with { variant "PRESENCE( type_gtpc = '09'O)"; };
+
+type set of AuthenticationTriplet_GTPC AuthenticationTriplet_GTPC_SetOf;
+
+//MAP Cause - 7.7.8
+type record MAP_Cause {
+ OCT1 type_gtpc,
+ OCT1 mapCauseValue
+} with { variant "PRESENCE( type_gtpc = '0B'O)"; };
+
+//PTMSI Signature - 7.7.9
+type record PTMSI_Signature {
+ OCT1 type_gtpc,
+ OCT3 ptmsi_Signature
+} with { variant "PRESENCE( type_gtpc = '0C'O)"; };
+
+//MS Validated - 7.7.10
+type record MS_Validated {
+ OCT1 type_gtpc,
+ BIT1 msValidated,
+ BIT7 spare
+} with { variant "PRESENCE( type_gtpc = '0D'O)"; };
+
+//Recovery - 7.7.11
+type record Recovery_gtpc {
+ OCT1 type_gtpc,
+ OCT1 restartCounter
+} with { variant "PRESENCE(type_gtpc = '0E'O)";};
+
+//Selection Mode - 7.7.12
+type record SelectionMode {
+ OCT1 type_gtpc,
+ BIT2 selectModeValue,
+ BIT6 spare
+} with { variant "PRESENCE(type_gtpc = '0F'O)"; };
+
+//TEI Data I - 7.7.13
+type record TeidDataI {
+ OCT1 type_gtpc,
+ OCT4 teidDataI
+} with { variant "PRESENCE(type_gtpc = '10'O)"; };
+
+//TEI Control Plane - 7.7.14
+type record TeidControlPlane {
+ OCT1 type_gtpc,
+ OCT4 teidControlPlane
+} with { variant "PRESENCE(type_gtpc = '11'O)"; };
+
+//TEI Data II - 7.7.15
+type record of TeidDataII TeidDataII_List
+
+type record TeidDataII {
+ OCT1 type_gtpc,
+ BIT4 nsapi,
+ BIT4 unused,
+ OCT4 teidDataII
+} with { variant "PRESENCE(type_gtpc = '12'O)"; };
+
+//Teardown Ind -7.7.16
+type record TearDownInd {
+ OCT1 type_gtpc,
+ BIT1 tdInd,
+ BIT7 spare
+} with { variant "PRESENCE(type_gtpc = '13'O)"; };
+
+//NSAPI - 7.7.17
+type record NSAPI_GTPC {
+ OCT1 type_gtpc,
+ BIT4 nsapi,
+ BIT4 unused
+} with { variant "PRESENCE(type_gtpc = '14'O)"; };
+
+//RANAP Cause - 7.7.18
+type record RANAPCause {
+ OCT1 type_gtpc,
+ OCT1 ranapCause
+} with { variant "PRESENCE(type_gtpc = '15'O)"; };
+
+//RAB Context - 7.7.19
+type record of RABContext RABContext_List;
+
+type record RABContext {
+ OCT1 type_gtpc,
+ BIT4 nsapi,
+ BIT4 spare,
+ OCT2 dlgtp_u,
+ OCT2 ulgtp_u,
+ OCT2 dl_pdcp,
+ OCT2 ul_pdcp
+} with {variant "PRESENCE( type_gtpc = '16'O)";};
+
+//Radio Priority SMS - 7.7.20
+type record RadioPrioritySMS {
+ OCT1 type_gtpc,
+ BIT3 radioprioritySMS,
+ BIT5 reserved
+} with {variant "PRESENCE( type_gtpc = '17'O)";};
+
+//RadioPriority - 7.7.21
+
+type record of RadioPriority RadioPriority_List;
+
+type record RadioPriority {
+ OCT1 type_gtpc,
+ BIT3 radiopriority,
+ BIT1 reserved,
+ BIT4 nsapi
+} with {variant "PRESENCE( type_gtpc = '18'O)";};
+
+//Packet Flow Id - 7.7.22
+type record of PacketFlowID PacketFlowID_List
+
+type record PacketFlowID {
+ OCT1 type_gtpc,
+ BIT4 nsapi,
+ BIT4 reserved,
+ OCT1 packflowID
+} with {variant "PRESENCE( type_gtpc = '19'O)";};
+
+//Charging Characteristics - 7.7.23
+type record of ChargingCharacteristics_GTPC
+ ChargingCharacteristics_List_GTPC;
+
+type record ChargingCharacteristics_GTPC {
+ OCT1 type_gtpc,
+ OCT2 chargingChar
+} with {variant "PRESENCE( type_gtpc = '1A'O)";};
+
+//Trace Reference - 7.7.24
+type record TraceRef {
+ OCT1 type_gtpc,
+ OCT2 trace_ref
+} with {variant "PRESENCE( type_gtpc = '1B'O)";};
+
+//Trace Type - 7.7.25
+type record GTP_TraceType {
+ OCT1 type_gtpc,
+ OCT2 trace_type
+} with {variant "PRESENCE( type_gtpc = '1C'O)";};
+
+//MS Not Reachable Reason - 7.7.25A
+type record MSNotReachableReason {
+ OCT1 type_gtpc,
+ OCT1 reason_for_absence
+} with {variant "PRESENCE( type_gtpc = '1D'O)";};
+
+//Radio Priority LCS - 7.7.25B
+type record RadioPriorityLCS{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT3 radioPriorityLCS,
+ BIT5 reserved
+} with { variant "PRESENCE( type_gtpc = '96'O)";
+ variant (lengthf) "LENGTHTO(radioPriorityLCS,reserved)"; };
+
+//Charging ID - 7.7.26
+type record ChargingID {
+ OCT1 type_gtpc,
+ OCT4 chargingID
+} with { variant "PRESENCE( type_gtpc = '7F'O)";};
+
+//End User Address ID - 7.7.27
+type record EndUserAddress{
+ OCT1 type_gtpc,
+ EndUserAddress_types endUserAddress
+} with { variant "PRESENCE( type_gtpc = '80'O)";};
+
+type union EndUserAddress_types {
+ EndUserAddressIPv4 endUserAddressIPv4,
+ EndUserAddressIPv6 endUserAddressIPv6,
+ EndUserAddressPPP endUserAddressPPP,
+ EndUserAddressIPv4andIPv6 endUserAddressIPv4andIPv6,
+ EndUserAddressOSPIHOS endUserAddressOSPIHOS
+} with { variant "TAG(endUserAddressIPv4, pdp_typenum = '21'O;
+ endUserAddressIPv6, pdp_typenum = '57'O;
+ endUserAddressPPP, pdp_typenum = '01'O;
+ endUserAddressIPv4andIPv6, pdp_typenum = '8D'O;
+ endUserAddressOSPIHOS, OTHERWISE;)" };
+
+type record EndUserAddressIPv4 {
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT4 pdp_typeorg,
+ BIT4 spare,
+ OCT1 pdp_typenum,
+ OCT4 ipv4_address optional
+} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,
+ ipv4_address)"; };
+
+type record EndUserAddressIPv6 {
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT4 pdp_typeorg,
+ BIT4 spare,
+ OCT1 pdp_typenum,
+ OCT16 ipv6_address optional
+} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,
+ ipv6_address)"; };
+
+type record EndUserAddressPPP {
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT4 pdp_typeorg,
+ BIT4 spare,
+ OCT1 pdp_typenum
+} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; };
+
+type record EndUserAddressIPv4andIPv6 {
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT4 pdp_typeorg,
+ BIT4 spare,
+ OCT1 pdp_typenum,
+ OCT4 ipv4_address optional,
+ OCT16 ipv6_address optional
+} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,ipv4_address,
+ ipv6_address)";
+ variant(ipv4_address) "PRESENCE(lengthf = 6,lengthf = 22)"
+ variant(ipv6_address) "PRESENCE(lengthf = 18,lengthf = 22)"
+};
+
+// ETHECS: specification not found in Technical Specification
+type record EndUserAddressOSPIHOS {
+ LIN2_BO_LAST lengthf, //16 bits
+ BIT4 pdp_typeorg,
+ BIT4 spare,
+ OCT1 pdp_typenum
+} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; };
+
+//MM Context - 7.7.28
+type record MM_Context {
+ OCT1 type_gtpc,
+ MM_ContextU context
+} with { variant "PRESENCE( type_gtpc = '81'O)";};
+
+type union MM_ContextU {
+ MM_ContextGSM mmcontGSM,
+ MM_ContextUMTS mmcontUMTS,
+ MM_ContextGSMUMTS mmcontGSMUMTS,
+ MM_ContextUMTSReceive mmcontUMTSReceive
+} with { variant "TAG(mmcontGSM, security = '01'B;
+ mmcontUMTS, security = '10'B;
+ mmcontGSMUMTS, security = '11'B;
+ mmcontUMTSReceive, security = '00'B;)"; };
+
+
+type record MM_ContextGSM {
+ LIN2_BO_LAST lengthf,//16 bits
+ BIT3 cksn,
+ BIT5 spare,
+ BIT3 usedCipher,
+ integer noofVectors,
+ BIT2 security,
+ OCT8 kc,
+ octetstring triplet,
+ OCT2 drx_par,
+ integer msNetW_cap_length,
+ octetstring msNetw_cap optional,
+ LIN2_BO_LAST containerLength,
+ octetstring container optional
+} with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors,
+ security, kc, triplet, drx_par,
+ msNetW_cap_length, msNetw_cap,
+ containerLength, container
+ )";
+ variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
+ variant (containerLength) "LENGTHTO(container)";
+ variant (noofVectors) "FIELDLENGTH(3)";
+ variant (noofVectors) "LENGTHTO(triplet)";
+ variant (noofVectors) "UNIT(224)";
+};
+
+type record MM_ContextUMTS {
+ LIN2_BO_LAST lengthf,
+ BIT3 ksi,
+ BIT3 usedGPRSIntegrityAlgorithm,
+ BIT1 ugipai,
+ BIT1 gupii,
+ BIT3 spare1,
+ integer noofVectors ,
+ BIT2 security,
+ OCT16 ck,
+ OCT16 ik,
+ LIN2_BO_LAST quintupletlength,
+ octetstring quintuplet,
+ OCT2 drx_par,
+ integer msNetW_cap_length,
+ octetstring msNetw_cap optional,
+ LIN2_BO_LAST containerLength,
+ octetstring container optional
+} with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii, spare1, noofVectors, security,
+ ck, ik, quintupletlength, quintuplet,
+ drx_par, msNetW_cap_length, msNetw_cap,
+ containerLength, container
+ )";
+ variant (quintupletlength) "LENGTHTO(quintuplet)";
+ variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
+ variant (containerLength) "LENGTHTO(container)";
+ variant (noofVectors) "FIELDLENGTH(3)";
+};
+
+type record MM_ContextGSMUMTS {
+ LIN2_BO_LAST lengthf,
+ BIT3 cksn,
+ BIT5 spare,
+ BIT3 usedCipher,
+ integer noofVectors,
+ BIT2 security,
+ OCT8 kc,
+ LIN2_BO_LAST quintupletlength,
+ octetstring quintuplet,
+ OCT2 drx_par,
+ integer msNetW_cap_length,
+ octetstring msNetw_cap optional,
+ LIN2_BO_LAST containerLength,
+ octetstring container optional
+} with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors,
+ security, kc, quintupletlength, quintuplet,
+ drx_par, msNetW_cap_length, msNetw_cap,
+ containerLength, container
+ )";
+ variant (quintupletlength) "LENGTHTO(quintuplet)";
+ variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
+ variant (containerLength) "LENGTHTO(container)";
+ variant (noofVectors) "FIELDLENGTH(3)";
+};
+
+type record MM_ContextUMTSReceive {
+ LIN2_BO_LAST lengthf,
+ BIT3 ksi,
+ BIT3 usedGPRSIntegrityAlgorithm,
+ BIT1 ugipai,
+ BIT1 gupii,
+ BIT3 usedCipher,
+ integer noofVectors,
+ BIT2 security,
+ OCT16 ck,
+ OCT16 ik,
+ LIN2_BO_LAST quintupletlength,
+ octetstring quintuplet,
+ OCT2 drx_par,
+ integer msNetW_cap_length,
+ octetstring msNetw_cap optional,
+ LIN2_BO_LAST containerLength,
+ octetstring container optional
+} with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii,
+ usedCipher, noofVectors,
+ security, ck, ik, quintupletlength,
+ quintuplet, drx_par,msNetW_cap_length,
+ msNetw_cap, containerLength, container
+ )";
+ variant (quintupletlength) "LENGTHTO(quintuplet)";
+ variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
+ variant (containerLength) "LENGTHTO(container)";
+ variant (noofVectors) "FIELDLENGTH(3)";
+};
+
+//From 9.9.3.34 of 3GPP 24.301 according to Req. Spec. 4/1056-LPA 107 579/1 Rev D
+type record GTPC_UENetworkCapabilityV
+{
+ BIT8 eEA,
+ BIT7 eIA,
+ BIT1 spare,
+ BIT8 uEA optional,
+ BIT7 uIA optional,
+ BIT1 uCS2 optional,
+ BIT1 spare2 optional,
+ BIT1 vCC optional,
+ BIT6 spare3 optional,
+ octetstring spare4 length (0..8) optional
+}
+
+//PDP context - 7.7.29
+type record of PDP_Context_GTPC PDP_Context_GTPC_List;
+
+type record PDP_Context_GTPC {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT1 order,
+ BIT1 asi,
+ BIT1 vaa,
+ BIT1 ea,
+ BIT4 sapi,
+ BIT4 spare1,
+ integer qos_subLength,
+ QualityOfServiceProfile_Value qos_sub,
+ integer qos_reqLength,
+ QualityOfServiceProfile_Value qos_req,
+ integer qos_negLength,
+ QualityOfServiceProfile_Value qos_neg,
+ OCT2 snd,
+ OCT2 snu,
+ OCT1 sendNPDUnum,
+ OCT1 receiveNPDUnum,
+ OCT4 uteidControlPlane,
+ OCT4 uteidData1,
+ OCT1 pdpcontext,
+ BIT4 pdp_typeorg,
+ BIT4 spare2,
+ OCT1 pdp_typenum,
+ integer pdp_addressLength,
+ octetstring pdp_address length (0..63),
+ integer ggsn_addressControlPlaneLength,
+ octetstring ggsn_addressControlPlane length (4..16),
+ integer ggsn_addressUserPlaneLength,
+ octetstring ggsn_addressUserPlane length (4..16),
+ integer apnLength,
+ octetstring apn,
+ BIT4 transactionId ,
+ BIT4 spare3,
+ OCT1 transactionID_cont,
+ OCT1 pdp_typenum2 optional,
+ LIN1 pdp_addresslength2 optional,
+ octetstring pdp_Address2 length (0..63) optional
+} with {variant "PRESENCE( type_gtpc = '82'O)";
+ variant (lengthf) "LENGTHTO(nsapi, order, asi, vaa, ea,
+ sapi, spare1, qos_subLength, qos_sub, qos_reqLength, qos_req,
+ qos_negLength, qos_neg, snd, snu, sendNPDUnum, receiveNPDUnum,
+ uteidControlPlane, uteidData1,pdpcontext, pdp_typeorg, spare2,
+ pdp_typenum, pdp_addressLength, pdp_address,
+ ggsn_addressControlPlaneLength, ggsn_addressControlPlane,
+ ggsn_addressUserPlaneLength, ggsn_addressUserPlane, apnLength, apn,
+ transactionId, spare3, transactionID_cont, pdp_typenum2,pdp_addresslength2,pdp_Address2)";
+ variant (qos_subLength) "LENGTHTO(qos_sub)";
+ variant (qos_reqLength) "LENGTHTO(qos_req)";
+ variant (qos_negLength) "LENGTHTO(qos_neg)";
+ variant (pdp_addressLength) "LENGTHTO(pdp_address)";
+ variant (ggsn_addressControlPlaneLength)
+ "LENGTHTO(ggsn_addressControlPlane)";
+ variant (ggsn_addressUserPlaneLength) "LENGTHTO(ggsn_addressUserPlane)";
+ variant (apnLength) "LENGTHTO(apn)";
+ variant (pdp_typenum2,pdp_addresslength2,pdp_Address2) "PRESENCE( ea = '1'B)";
+ variant (pdp_addresslength2) "LENGTHTO(pdp_Address2)";
+ };
+
+//Access Point Name - 7.7.30
+type record AccessPointName {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring apn_value
+}with { variant "PRESENCE( type_gtpc = '83'O)";
+ variant (lengthf) "LENGTHTO(apn_value)"; };
+
+//Protocol Configuration Options - 7.7.31
+// 24.008 10.5.6.3
+type record ProtConfigOptions {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT3 configProtocol,
+ BIT4 spare,
+ BIT1 extension0,
+ ProtocolIDList protocols
+} with { variant "PRESENCE( type_gtpc = '84'O)";
+ variant (lengthf) "LENGTHTO(configProtocol, spare, extension0,
+ protocols)"; };
+
+type set of ProtocolElement ProtocolIDList;
+
+type record ProtocolElement {
+ OCT2 protocolID,
+ integer lengthProtoID,
+ octetstring protoIDContents
+} with { variant (lengthProtoID) "LENGTHTO(protoIDContents)" };
+
+//GSN Address - 7.7.32
+type record GSN_Address_GTPC {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring addressf
+} with { variant "PRESENCE( type_gtpc = '85'O)";
+ variant (lengthf) "LENGTHTO(addressf)"; };
+
+//MS International PSTN/ISDN Num.(MSISDN) - 7.7.33
+type record MSISDN {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring msisdn
+} with { variant "PRESENCE( type_gtpc = '86'O)";
+ variant (lengthf) "LENGTHTO(msisdn)"; };
+
+type record QoSV_GTPC
+{
+ BIT3 reliabilityClass,
+ BIT3 delayClass,
+ BIT2 spare1, // '00'B
+ BIT3 precedenceClass,
+ BIT1 spare2, //'0'B
+ BIT4 peakThroughput,
+ BIT5 meanThroughput,
+ BIT3 spare3, //'000'B
+ BIT3 deliverErroneusSDU optional, //opt because of V97
+ BIT2 deliveryOrder optional, //opt because of V97
+ BIT3 trafficClass optional, //opt because of V97
+ OCT1 maxSDUSize optional, //opt because of V97
+ OCT1 maxBitrateUplink optional, //opt because of V97
+ OCT1 maxBitrateDownlink optional, //opt because of V97
+ BIT4 sduErrorRatio optional, //opt because of V97
+ BIT4 residualBER optional, //opt because of V97
+ BIT2 trafficHandlingPriority optional, //opt because of V97
+ BIT6 transferDelay optional, //opt because of V97
+ OCT1 guaranteedBitRateUplink optional, //opt because of V97
+ OCT1 guaranteedBitRateDownlink optional, //opt because of V97
+ BIT4 sourceStatisticsDescriptor optional, //opt because of V97
+ BIT1 signallingIndication optional, //opt because of V97
+ BIT3 spare4 optional, //opt because of V97
+ // '000'B
+ OCT1 maxBitrateDownlinkExt optional, //opt because of V97
+ OCT1 guaranteedBitRateDownlinkExt optional, //opt because of V97
+ OCT1 maxBitrateUplinkExt optional, //opt because of V97
+ OCT1 guaranteedBitRateUplinkExt optional //opt because of V97
+};
+
+//Quality Of Service Profile - 7.7.34
+type record QualityOfServiceProfile {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 allocRetensionPrio,
+ QoSV_GTPC qos_ProfileValue
+} with { variant "PRESENCE( type_gtpc = '87'O)";
+ variant (lengthf) "LENGTHTO(allocRetensionPrio, qos_ProfileValue)";};
+
+type record QualityOfServiceProfile_Value {
+ OCT1 allocRetensionPrio,
+ QoSV_GTPC qos_ProfileValue
+}
+
+//Authentication Quituplet - 7.7.35
+type record AuthenticationQuintuplet_GTPC {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT16 rand,
+ integer xresLength,
+ octetstring xres,
+ OCT16 ck,
+ OCT16 ik,
+ integer autnLength,
+ octetstring autn
+} with { variant "PRESENCE( type_gtpc = '88'O)";
+ variant (lengthf) "LENGTHTO(rand, xresLength, xres, ck, ik,
+ autnLength, autn)";
+ variant (xresLength) "LENGTHTO(xres)";
+ variant (autnLength) "LENGTHTO(autn)"; };
+
+//Traffic Flow Template (TFT) - 7.7.36
+// 24.008 10.5.6.12
+type record TrafficFlowTemplate {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ TrafficFlowTemplateV_GTPC tft
+} with { variant "PRESENCE( type_gtpc = '89'O)";
+ variant (lengthf) "LENGTHTO(tft)"; };
+
+
+type union TrafficFlowTemplateV_GTPC
+{
+ TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC
+ trafficFlowTemplateV_CreateAddReplaceTFT,
+ TrafficFlowTemplateV_DeletePacketFilter_GTPC
+ trafficFlowTemplateV_DeletePacketFilter,
+ TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC
+ trafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation
+};
+
+
+type record TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC
+{
+ integer numberOfPacketFilters,
+ BIT1 eBIT,
+ BIT3 operationCodeTFT, //'001'B or
+ PacketFilterList_CreateAddReplaceTFT_GTPC packetFilterList_CreateAddReplaceTFT,
+ ParametersList_GTPC parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '001'B, // Create New TFT
+ operationCodeTFT = '011'B, // Add packet filters to existing TFT
+ operationCodeTFT = '100'B // Replace packet filters in existing TFT
+ )";
+ variant(parametersList) "PRESENCE(eBIT = '1'B)";
+ variant(numberOfPacketFilters)"FIELDLENGTH(4)";
+ variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_CreateAddReplaceTFT)";
+ variant(numberOfPacketFilters)"UNIT(elements)";
+};
+
+
+type record TrafficFlowTemplateV_DeletePacketFilter_GTPC
+{
+ integer numberOfPacketFilters,
+ BIT1 eBIT,
+ BIT3 operationCodeTFT,
+ //'101'B or '011'B or '100'B
+ PacketFilterList_DeletePacketFilter_GTPC packetFilterList_DeletePacketFilter,
+ ParametersList_GTPC parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '101'B)" // Delete packet filters from existing TFT
+ variant(parametersList) "PRESENCE(eBIT = '1'B)";
+ variant(numberOfPacketFilters)"FIELDLENGTH(4)";
+ variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_DeletePacketFilter)";
+ variant (numberOfPacketFilters)"UNIT(elements)";
+};
+
+
+type record TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC
+{
+ BIT4 numberOfPacketFilters, //'0000'B
+ // numberOfPacketFilters is meaningless here since there is no PacketFilterList
+ BIT1 eBIT,
+ BIT3 operationCodeTFT, // '010'B or '110'B
+ ParametersList_GTPC parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '010'B, // delete existing TFT
+ operationCodeTFT = '110'B // No TFT Operation
+ )";
+ variant (parametersList) "PRESENCE(eBIT = '1'B)"
+};
+
+
+type record of PacketFilter_GTPC PacketFilterList_CreateAddReplaceTFT_GTPC;
+
+
+type record PacketFilter_GTPC
+{
+ PacketFilterIdentifier_GTPC identifier,
+ OCT1 evaluationPrecedence,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+
+type record of PacketFilterIdentifier_GTPC PacketFilterList_DeletePacketFilter_GTPC;
+
+
+type OCT1 PacketFilterIdentifier_GTPC;
+
+
+type record of Parameter_GTPC ParametersList_GTPC;
+
+
+type record Parameter_GTPC
+{
+ OCT1 parameterIdentifier,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+
+//Target Identification - 7.7.37
+type record TargetIdentification {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ HEX1 mcc1 optional,
+ HEX1 mcc2 optional,
+ HEX1 mcc3 optional,
+ HEX1 mnc3 optional,
+ HEX1 mnc1 optional,
+ HEX1 mnc2 optional,
+ OCT2 lac optional,
+ OCT1 rac optional,
+ OCT2 rnc_id optional,
+ octetstring extended_rnc_id optional
+} with { variant "PRESENCE( type_gtpc = '8A'O)";
+ variant (lengthf) "LENGTHTO(mcc1, mcc2, mcc3, mnc3, mnc1, mnc2,
+ lac, rac, rnc_id, extended_rnc_id)"; };
+
+//UTRAN Transparent container - 7.7.38
+type record UTRANTransparentContainer {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring transparentfield
+} with { variant "PRESENCE( type_gtpc = '8B'O)";
+ variant (lengthf) "LENGTHTO(transparentfield)";};
+
+//RAB Setup Information - 7.7.39
+type record of RABSetupInformation RABSetupInformation_List
+
+type record RABSetupInformation{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 unused,
+ OCT4 teidData optional,
+ octetstring rncIpAddress optional
+ } with { variant "PRESENCE( type_gtpc = '8C'O)";
+ variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)";};
+
+//Extension Header Type List - 7.7.40
+type record ExtensionHeaderTypeList_gtpc {
+ OCT1 type_gtpc,
+ integer lengthf,
+ octetstring extensionTypesList
+} with { variant "PRESENCE( type_gtpc = '8D'O)";
+ variant (lengthf) "LENGTHTO(extensionTypesList)"; };
+
+//Trigger ID - 7.7.41
+type record GTP_TriggerID {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring triggerID
+} with { variant "PRESENCE( type_gtpc = '8E'O)";
+ variant (lengthf) "LENGTHTO(triggerID)";};
+
+//OMC Identity - 7.7.42
+type record OMCIdentity {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring omcID
+} with { variant "PRESENCE( type_gtpc = '8F'O)";
+ variant (lengthf) "LENGTHTO(omcID)"; };
+
+//BSSGP RAN Information needed for RAN Transparent Container
+//From BSSGP specification 48.018 v9.3.0 according to CR 8446
+
+type union LIN2_2a_GTPC
+{
+integer length1,
+integer length2
+} with {
+ variant (length1) "FIELDLENGTH(7)";
+ variant (length2) "FIELDLENGTH(15)";
+ variant (length2) "BYTEORDER(last)";
+ variant (length1,length2) "FIELDORDER(msb)";
+ }
+
+type record PDU_in_Error_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ octetstring erroneous_BSSGP_PDU
+} with {
+ variant (lengthIndicator) "LENGTHTO (erroneous_BSSGP_PDU)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ };
+
+type record Cell_Identifier_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ HEX1 mccDigit1 ,
+ HEX1 mccDigit2 ,
+ HEX1 mccDigit3 ,
+ HEX1 mncDigit3 ,
+ HEX1 mncDigit1 ,
+ HEX1 mncDigit2 ,
+ OCT2 lac,
+ OCT1 rac,
+ OCT2 cI_value
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,
+ mncDigit2,lac,rac,cI_value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type record Cause_BSSGP_GTPC
+ {
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 cause_Value
+ } with {
+ variant (lengthIndicator) "LENGTHTO (cause_Value)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 11.3.61
+type record RIM_Application_Identity_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 rIMApplicationIdentity
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIMApplicationIdentity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 11.3.62
+type record RIM_Sequence_Number_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT4 rIMSequenceNumber
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIMSequenceNumber)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 Table 11.3.62a.1
+type record RAN_Information_Request_RIM_Container_GTPC
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a_GTPC lengthIndicator,
+RIM_Application_Identity_GTPC rIM_Application_Identity,
+RIM_Sequence_Number_GTPC rIM_Sequence_Number,
+RIM_PDU_Indications_GTPC rIM_PDU_Indications,
+RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
+RAN_Information_Request_Application_Container_GTPC
+ application_Container optional,
+SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ application_Container,sON_TransferApplicationIdentity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
+ variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '01'O;)";
+ variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '02'O;)";
+ variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '03'O;)";
+ variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+ variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '05'O;)";
+ variant (application_Container)
+ "CROSSTAG
+ (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3 ,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
+ sON, rIM_Application_Identity.rIMApplicationIdentity = '04'O;
+ uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O;
+ )"
+ variant (sON_TransferApplicationIdentity)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+};
+
+//48.018 v9.3.0 Table 11.3.62a.2
+type record RAN_Information_RIM_Container_GTPC
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a_GTPC lengthIndicator,
+RIM_Application_Identity_GTPC rIM_Application_Identity,
+RIM_Sequence_Number_GTPC rIM_Sequence_Number,
+RIM_PDU_Indications_GTPC rIM_PDU_Indications,
+RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
+ApplContainer_or_ApplErrContainer_GTPC
+ applContainer_or_ApplErrContainer optional,
+SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ applContainer_or_ApplErrContainer,sON_TransferApplicationIdentity)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant
+ "TAG (rIM_Protocol_Version_Number, iEI = '55'O;)";
+ variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '01'O;)";
+ variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '02'O;)";
+ variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '03'O;)";
+ variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+ variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '05'O;)";
+ variant (applContainer_or_ApplErrContainer)
+ "CROSSTAG(nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
+ sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O;
+ uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)";
+
+
+ variant (sON_TransferApplicationIdentity)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+};
+
+type union ApplContainer_or_ApplErrContainer_GTPC
+{
+ ApplContainer_or_ApplErrContainer_NACC_GTPC nacc,
+ ApplContainer_or_ApplErrContainer_SI3_GTPC si3,
+ ApplContainer_or_ApplErrContainer_MBMS_GTPC mBMS,
+ ApplContainer_or_ApplErrContainer_SON_GTPC sON,
+ ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC uTRA_SI
+}
+
+type union ApplContainer_or_ApplErrContainer_NACC_GTPC
+{
+ RAN_Information_Application_Container_NACC_GTPC application_Container,
+ Application_Error_Container_NACC_GTPC application_Error_Container
+} with {
+ variant "TAG (
+ application_Container, iEI = '4E'O;
+ application_Error_Container, iEI = '56'O;)";
+}
+
+type union ApplContainer_or_ApplErrContainer_SI3_GTPC
+{
+ RAN_Information_Application_Container_SI3_GTPC application_Container,
+ Application_Error_Container_SI3_GTPC application_Error_Container
+} with {
+ variant "TAG (
+ application_Container, iEI = '4E'O;
+ application_Error_Container, iEI = '56'O;)";
+}
+
+type union ApplContainer_or_ApplErrContainer_MBMS_GTPC
+{
+ RAN_Information_Application_Container_MBMS_GTPC application_Container,
+ Application_Error_Container_MBMS_GTPC application_Error_Container
+} with {
+ variant "TAG (
+ application_Container, iEI = '4E'O;
+ application_Error_Container, iEI = '56'O;)";
+}
+
+type union ApplContainer_or_ApplErrContainer_SON_GTPC
+{
+ RAN_Information_Application_Container_SON_GTPC application_Container,
+ Application_Error_Container_SON_GTPC application_Error_Container
+} with {
+ variant "TAG (
+ application_Container, iEI = '4E'O;
+ application_Error_Container, iEI = '56'O;)";
+}
+
+type union ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC
+{
+ RAN_Information_Application_Container_UTRA_SI_GTPC application_Container,
+ Application_Error_Container_UTRA_SI_GTPC application_Error_Container
+} with {
+ variant "TAG (
+ application_Container, iEI = '4E'O;
+ application_Error_Container, iEI = '56'O;)";
+}
+
+
+//48.018 v9.3.0 Table 11.3.62a.3
+type record RAN_Information_Ack_RIM_Container_GTPC
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a_GTPC lengthIndicator,
+RIM_Application_Identity_GTPC rIM_Application_Identity,
+RIM_Sequence_Number_GTPC rIM_Sequence_Number,
+RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
+SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_Protocol_Version_Number)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+
+ variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O;)";
+ variant (sON_TransferApplicationIdentity)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+};
+
+//48.018 v9.3.0 Table 11.3.62a.4
+type record RAN_Information_Error_RIM_Container_GTPC
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a_GTPC lengthIndicator,
+RIM_Application_Identity_GTPC rIM_Application_Identity,
+Cause_BSSGP_GTPC rIM_cause,
+RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
+PDU_in_Error_GTPC pDU_in_Error,
+SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_cause,rIM_Protocol_Version_Number,pDU_in_Error)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
+ variant (sON_TransferApplicationIdentity)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+};
+
+//48.018 v9.3.0 Table 11.3.62a.5
+type record RAN_Information_Application_Error_RIM_Container_GTPC
+{
+OCT1 iEI,
+BIT1 ext,
+LIN2_2a_GTPC lengthIndicator,
+RIM_Application_Identity_GTPC rIM_Application_Identity,
+RIM_Sequence_Number_GTPC rIM_Sequence_Number,
+RIM_PDU_Indications_GTPC rIM_PDU_Indications,
+RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
+Application_Error_Container_GTPC application_Error_Container,
+SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
+ rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
+ application_Error_Container)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+
+ variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
+
+ variant (application_Error_Container)
+ "CROSSTAG (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
+ si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
+ mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
+ sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O;
+ uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)";
+
+ variant (sON_TransferApplicationIdentity)
+ "PRESENCE
+ (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
+};
+
+//48.018 v9.3.0 Table 11.3.64
+type union Application_Error_Container_GTPC
+{
+ Application_Error_Container_NACC_GTPC nacc,
+ Application_Error_Container_SI3_GTPC si3,
+ Application_Error_Container_MBMS_GTPC mBMS,
+ Application_Error_Container_SON_GTPC sON,
+ Application_Error_Container_UTRA_SI_GTPC uTRA_SI
+}
+
+//48.018 v9.3.0 Table 11.3.63.1
+type union RAN_Information_Request_Application_Container_GTPC
+{
+ RAN_Information_Request_Application_Container_NACC_GTPC nacc,
+ RAN_Information_Request_Application_Container_SI3_GTPC si3,
+ RAN_Information_Request_Application_Container_MBMS_GTPC mBMS,
+ RAN_Information_Request_Application_Container_SON_GTPC sON,
+ RAN_Information_Request_Application_Container_UTRA_SI_GTPC uTRA_SI
+}
+
+//48.018 v9.3.0 Table 11.3.63.1.1
+type record RAN_Information_Request_Application_Container_NACC_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier
+} with {
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 Table 11.3.63.1.2
+type record RAN_Information_Request_Application_Container_SI3_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier
+} with {
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//48.018 v9.3.0 Table 11.3.63.1.3
+type record RAN_Information_Request_Application_Container_MBMS_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier
+} with {
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//48.018 v9.3.0 Table 11.3.63.1.4
+type record RAN_Information_Request_Application_Container_SON_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ octetstring sON_TransferRequestContainer // 3GPP TS 36.413
+} with {
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier,sON_TransferRequestContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//48.018 v9.3.0 Table 11.3.63.1.5
+type record RAN_Information_Request_Application_Container_UTRA_SI_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier
+} with {
+ variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+}
+
+//48.018 v9.3.0 Table 11.3.108
+type record SON_TransferApplicationIdentity
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ octetstring sON_TransferApplicationIdentityValue
+}
+
+//48.018 v9.3.0 Table 11.3.63.2.1
+type record RAN_Information_Application_Container_NACC_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ BIT1 typeBit,
+ BIT7 number_of_SI_PSI,
+ octetstring sI_PSI // 3GPP TS 44.018, 44.060
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,typeBit,number_of_SI_PSI,sI_PSI)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 Table 11.3.63.2.2
+type record RAN_Information_Application_Container_SI3_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ octetstring sI3 length (21) // 3GPP TS 44.018
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,sI3)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+ variant (sI3)"FIELDLENGTH(21)" ;
+};
+
+//48.018 v9.3.0 Table 11.3.63.2.3
+type record RAN_Information_Application_Container_MBMS_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ octetstring mBMS_ChannelReport
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,mBMS_ChannelReport)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 Table 11.3.63.2.4
+type record RAN_Information_Application_Container_SON_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ octetstring sON_TransferResponseContainer // 3GPP TS 36.413
+
+
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,sON_TransferResponseContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 Table 11.3.63.2.5
+type record RAN_Information_Application_Container_UTRA_SI_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ Cell_Identifier_GTPC reporting_Cell_Identifier,
+ octetstring uTRA_SI_Container // 3GPP TS25.331
+
+
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (reporting_Cell_Identifier,uTRA_SI_Container)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+//48.018 v9.3.0 11.3.64.1
+type record Application_Error_Container_NACC_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 nACC_cause,
+ Application_Container_IE_NACC_GTPC erroneousApplicationContainer
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (nACC_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+type union Application_Container_IE_NACC_GTPC
+{
+RAN_Information_Request_Application_Container_NACC_GTPC
+ rAN_Information_Request_Application_Container,
+
+RAN_Information_Application_Container_NACC_GTPC
+ rAN_Information_Application_Container
+}
+with {
+ variant "TAG (
+ rAN_Information_Request_Application_Container, iEI = '4D'O;
+ rAN_Information_Application_Container, iEI = '4E'O)";
+}
+
+
+//48.018 v9.3.0 11.3.64.2
+type record Application_Error_Container_SI3_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 sI3_cause,
+ Application_Container_IE_SI3_GTPC erroneousApplicationContainer
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (sI3_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type union Application_Container_IE_SI3_GTPC
+{
+RAN_Information_Request_Application_Container_SI3_GTPC
+ rAN_Information_Request_Application_Container,
+
+RAN_Information_Application_Container_SI3_GTPC
+ rAN_Information_Application_Container
+}
+with {
+ variant "TAG (
+ rAN_Information_Request_Application_Container, iEI = '4D'O;
+ rAN_Information_Application_Container, iEI = '4E'O)";
+}
+
+//48.018 v9.3.0 11.3.64.3
+type record Application_Error_Container_MBMS_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 mBMS_cause,
+ Application_Container_IE_MBMS_GTPC erroneousApplicationContainer
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (mBMS_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type union Application_Container_IE_MBMS_GTPC
+{
+RAN_Information_Request_Application_Container_MBMS_GTPC
+ rAN_Information_Request_Application_Container,
+
+RAN_Information_Application_Container_MBMS_GTPC
+ rAN_Information_Application_Container
+}
+with {
+ variant "TAG (
+ rAN_Information_Request_Application_Container, iEI = '4D'O;
+ rAN_Information_Application_Container, iEI = '4E'O)";
+}
+
+//48.018 v9.3.0 11.3.64.4
+type record Application_Error_Container_SON_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 sON_cause,
+ Application_Container_IE_SON_GTPC erroneousApplicationContainer
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (sON_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type union Application_Container_IE_SON_GTPC
+{
+RAN_Information_Request_Application_Container_SON_GTPC
+ rAN_Information_Request_Application_Container,
+
+RAN_Information_Application_Container_SON_GTPC
+ rAN_Information_Application_Container
+}
+with {
+ variant "TAG (
+ rAN_Information_Request_Application_Container, iEI = '4D'O;
+ rAN_Information_Application_Container, iEI = '4E'O)";
+}
+
+
+//48.018 v9.3.0 11.3.64.5
+type record Application_Error_Container_UTRA_SI_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 uTRA_SI_cause,
+ Application_Container_IE_SON_GTPC erroneousApplicationContainer
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (uTRA_SI_cause,erroneousApplicationContainer)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+
+type union Application_Container_IE_UTRA_SI_GTPC
+{
+RAN_Information_Request_Application_Container_UTRA_SI_GTPC
+ rAN_Information_Request_Application_Container,
+
+RAN_Information_Application_Container_UTRA_SI_GTPC
+ rAN_Information_Application_Container
+}
+with {
+ variant "TAG (
+ rAN_Information_Request_Application_Container, iEI = '4D'O;
+ rAN_Information_Application_Container, iEI = '4E'O)";
+}
+
+
+//48.018 v9.3.0 11.3.65
+type record RIM_PDU_Indications_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ BIT1 ack,
+ BIT3 pDU_Type_Extension,
+ BIT4 reserved
+} with {
+ variant (lengthIndicator) "LENGTHTO (ack,pDU_Type_Extension,reserved)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 11.3.67
+type record RIM_Protocol_Version_Number_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ OCT1 rIMProtocolVersionNumber
+} with {
+ variant (lengthIndicator) "LENGTHTO (rIMProtocolVersionNumber)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+};
+
+//48.018 v9.3.0 11.3.70
+type record RIM_Routing_Information_GTPC
+{
+ OCT1 iEI,
+ BIT1 ext,
+ LIN2_2a_GTPC lengthIndicator,
+ HEX1 rIMRoutingAddressDiscriminator,
+ HEX1 spare,
+ RIM_Routing_Address_GTPC rIM_Routing_Address
+} with {
+ variant (lengthIndicator)
+ "LENGTHTO (rIMRoutingAddressDiscriminator,spare,rIM_Routing_Address)";
+ variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
+ length2, ext = '0'B;)";
+ variant (ext,lengthIndicator) "FIELDORDER(msb)";
+
+ variant (rIM_Routing_Address)
+ "CROSSTAG (cell_Identifier,rIMRoutingAddressDiscriminator = '0'H;
+ rNCID, rIMRoutingAddressDiscriminator = '1'H;
+ eNB_Identifier, rIMRoutingAddressDiscriminator = '2'H;)"
+};
+
+type record Cell_Identifier_V_GTPC
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac,
+ OCT2 cI_value
+};
+
+type union RIM_Routing_Address_GTPC
+{
+ Cell_Identifier_V_GTPC cell_Identifier,
+ RNC_ID_BSSGP_GTPC rNCID,
+ ENB_Identifier eNB_Identifier
+ }
+
+type record RNC_ID_BSSGP_GTPC
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lAC,
+ OCT1 rAC,
+ HEX1 spare,
+ integer rNC_ID
+} with {
+ variant (spare,rNC_ID) "FIELDORDER(msb)";
+ variant (rNC_ID) "BYTEORDER(last)";
+ variant (rNC_ID) "FIELDLENGTH(12)";
+}
+
+type record ENB_Identifier
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 tAC,
+ octetstring globalENB_ID
+}
+
+//Note: the following structure is outdated
+/*
+type record GlobalRNC_ID_BSSGP_GTPC
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+
+ integer rNC_ID
+} with {
+ variant (spare,rNC_ID) "FIELDORDER(msb)";
+ variant (rNC_ID) "BYTEORDER(last)";
+ variant (rNC_ID) "FIELDLENGTH(12)";
+}
+*/
+
+//48.018 v9.3.0 10.6.1
+type record PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information_GTPC destination_Cell_Identifier,
+ RIM_Routing_Information_GTPC source_Cell_Identifier,
+ RAN_Information_Request_RIM_Container_GTPC rIM_Container
+};
+
+//48.018 v9.3.0 10.6.2
+type record PDU_BSSGP_RAN_INFORMATION_GTPC
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information_GTPC destination_Cell_Identifier,
+ RIM_Routing_Information_GTPC source_Cell_Identifier,
+ RAN_Information_RIM_Container_GTPC rIM_Container
+};
+
+//48.018 v9.3.0 10.6.3
+type record PDU_BSSGP_RAN_INFORMATION_ACK_GTPC
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information_GTPC destination_Cell_Identifier,
+ RIM_Routing_Information_GTPC source_Cell_Identifier,
+ RAN_Information_Ack_RIM_Container_GTPC rIM_Container
+};
+
+//48.018 v9.3.0 10.6.4
+type record PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information_GTPC destination_Cell_Identifier,
+ RIM_Routing_Information_GTPC source_Cell_Identifier,
+ RAN_Information_Error_RIM_Container_GTPC rIM_Container
+};
+
+//48.018 v9.3.0 10.6.5
+type record PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC
+{
+ OCT1 bssgpPduType,
+ RIM_Routing_Information_GTPC destination_Cell_Identifier,
+ RIM_Routing_Information_GTPC source_Cell_Identifier,
+ RAN_Information_Application_Error_RIM_Container_GTPC rIM_Container
+};
+
+type union RANTransparentContainerField
+{
+PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC pDU_BSSGP_RAN_INFORMATION_REQUEST,
+PDU_BSSGP_RAN_INFORMATION_GTPC pDU_BSSGP_RAN_INFORMATION,
+PDU_BSSGP_RAN_INFORMATION_ACK_GTPC pDU_BSSGP_RAN_INFORMATION_ACK,
+PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC pDU_BSSGP_RAN_INFORMATION_ERROR,
+PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC
+ pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
+} with { variant "TAG (
+ pDU_BSSGP_RAN_INFORMATION_REQUEST, bssgpPduType ='71'O;
+ pDU_BSSGP_RAN_INFORMATION, bssgpPduType ='70'O;
+ pDU_BSSGP_RAN_INFORMATION_ACK, bssgpPduType ='72'O;
+ pDU_BSSGP_RAN_INFORMATION_ERROR, bssgpPduType ='73'O;
+ pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR, bssgpPduType ='74'O
+ )"
+};
+
+//RAN Transparent Container 7.7.43
+type record RANTransparentContainer{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ RANTransparentContainerField rANTransparentContainerField
+} with { variant "PRESENCE( type_gtpc = '90'O)";
+ variant (lengthf) "LENGTHTO(rANTransparentContainerField)"; };
+
+//Charging Gateway Address - 7.7.44
+type record ChargingGatewayAddress {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ iPv4_iPv6_Address ipv_address
+} with { variant "PRESENCE( type_gtpc = 'FB'O)";
+ variant (lengthf) "LENGTHTO(ipv_address)";};
+
+type union iPv4_iPv6_Address{
+ OCT4 iPv4_Address,
+ OCT16 iPv6_Address
+}
+
+//PDP Context Priorization - 7.7.45
+type record PDPContextPriorization {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf
+} with { variant "PRESENCE( type_gtpc = '91'O)";};
+
+//Addititonal RAB Setup Information - 7.7.45A
+
+type record of AdditionalRABSetupInformation AdditionalRABSetupInformation_List
+
+type record AdditionalRABSetupInformation {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 unused,
+ OCT4 teidData optional,
+ octetstring rncIpAddress optional
+} with {variant "PRESENCE( type_gtpc = '92'O)";
+ variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)"; };
+
+//Private Extension - 7.7.46
+type record of PrivateExtension_gtpc PrivateExtension_gtpc_List;
+
+type record PrivateExtension_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT2 extensionID,
+ octetstring extensionValue
+} with {variant "PRESENCE( type_gtpc = 'FF'O)";
+ variant (lengthf) "LENGTHTO(extensionID, extensionValue)"; };
+
+//SGSN Number - 7.7.47
+type record SGSN_Number {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring sGSN_NumberValue
+} with { variant "PRESENCE( type_gtpc = '93'O)";
+ variant (lengthf) "LENGTHTO(sGSN_NumberValue)"; };
+
+//Common Flags - 7.7.48
+type record CommonFlags {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 prohibitPayloadCompression,
+ BIT1 mBMS_ServiceType,
+ BIT1 rAN_ProceduresReady,
+ BIT1 mBMS_CountingInformation,
+ BIT1 nO_QoS_Negotiation,
+ BIT1 nRSN,
+ BIT1 upgradeQoS_Supported,
+ BIT1 dualAddressBearerFlag
+} with { variant "PRESENCE( type_gtpc = '94'O)";
+ variant (lengthf) "LENGTHTO(prohibitPayloadCompression,mBMS_ServiceType,
+ rAN_ProceduresReady,mBMS_CountingInformation,
+ nO_QoS_Negotiation,nRSN,upgradeQoS_Supported,dualAddressBearerFlag)"; };
+
+//APN Restriction - 7.7.49
+type record APN_Restriction {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 restrictionTypeValue
+} with { variant "PRESENCE( type_gtpc = '95'O)";
+ variant (lengthf) "LENGTHTO(restrictionTypeValue)"; };
+
+// RAT Type - 7.7.50
+type record RATType {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 ratTypeValue
+} with { variant "PRESENCE( type_gtpc = '97'O)";
+ variant (lengthf) "LENGTHTO(ratTypeValue)"; };
+
+// User Location Information - 7.7.51
+type record UserLocationInformation {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 geographicLocationType,
+ GeographicLocation_gtpc geographicLocation
+} with { variant "PRESENCE( type_gtpc = '98'O)";
+ variant (lengthf) "LENGTHTO(geographicLocationType, geographicLocation)";
+ variant (geographicLocation) "CROSSTAG(geographicLocationCGI, geographicLocationType='00'O;
+ geographicLocationSAI, geographicLocationType='01'O;
+ geographicLocationRAI, geographicLocationType='02'O)";};
+
+type union GeographicLocation_gtpc {
+ GeographicLocationCGI geographicLocationCGI,
+ GeographicLocationSAI geographicLocationSAI,
+ GeographicLocationRAI geographicLocationRAI
+}
+
+// Figure 7.7.51.2: Geographic Location field for CGI
+type record GeographicLocationCGI {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT2 cI_value
+}
+
+// Figure 7.7.51.3: Geographic Location field for SAI
+type record GeographicLocationSAI {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT2 sac
+}
+
+// Figure 7.7.51.4: Geographic Location field for RAI
+type record GeographicLocationRAI {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT2 rac
+}
+
+// MS Time Zone - 7.7.52
+type record MS_TimeZone {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 timeZone,
+ BIT2 daylightSavingTime,
+ BIT3 spare1,
+// This bit is proprietary, compared to the 3GPP definition of
+// the Time Zone information element.
+// The new field "SGSN Attempts to Update MS" is described in
+// the following CPI documentation: GSN CDR Format,
+// 1/190 83-AXB 250 05/6 Uen A.
+// Web link to CPI: http://cpi2.al.sw.ericsson.se/alex?pr=PDU+PCN
+ BIT1 sgsnAttempsToUpdateMS,
+ BIT2 spare2
+} with { variant "PRESENCE( type_gtpc = '99'O)";
+ variant (lengthf) "LENGTHTO(timeZone, daylightSavingTime, spare1,
+ sgsnAttempsToUpdateMS, spare2)"; };
+
+// IMEISV - 7.7.53
+type record IMEISV_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT8 imeisv
+} with { variant "PRESENCE( type_gtpc = '9A'O)";
+ variant (lengthf) "LENGTHTO(imeisv)"; };
+
+// Camel Charging Information Container - 7.7.54
+type record CamelChargingInformationContainer {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring camelInformationPDP_IE
+} with { variant "PRESENCE( type_gtpc = '9B'O)";
+ variant (lengthf) "LENGTHTO(camelInformationPDP_IE)"; };
+
+// MBMS UE Context Container - 7.7.55
+type record of MBMS_UE_ContextContainer MBMS_UE_Context_List;
+
+type record MBMS_UE_ContextContainer {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 spare1,
+ BIT4 linkedNSAPI,
+ OCT4 uteidControlPlane,
+ OCT1 enhancedNSAPI,
+ BIT4 pdp_typeorg,
+ BIT4 spare2,
+ OCT1 pdp_typenum,
+ integer pdp_addressLength,
+ octetstring pdp_address length (0..63),
+ integer ggsn_addressControlPlaneLength,
+ octetstring ggsn_addressControlPlane length (4..16),
+ integer apnLength,
+ octetstring apn,
+ BIT4 transactionId,
+ BIT4 spare3,
+ OCT1 transactionID
+} with {variant "PRESENCE( type_gtpc = '9C'O)";
+ variant (lengthf) "LENGTHTO(spare1, linkedNSAPI,
+ uteidControlPlane, enhancedNSAPI, pdp_typeorg, spare2,
+ pdp_typenum, pdp_addressLength, pdp_address,
+ ggsn_addressControlPlaneLength, ggsn_addressControlPlane,
+ apnLength, apn, transactionId, spare3, transactionID)";
+ variant (pdp_addressLength) "LENGTHTO(pdp_address)";
+ variant (ggsn_addressControlPlaneLength)
+ "LENGTHTO(ggsn_addressControlPlane)";
+ variant (apnLength) "LENGTHTO(apn)";
+ };
+
+// Temporary Mobile Group Identity - 7.7.56
+type record TMGI_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT6 tMGIValue
+} with { variant "PRESENCE( type_gtpc = '9D'O)";
+ variant (lengthf) "LENGTHTO(tMGIValue)"; };
+
+// RIM Routing Address - 7.7.57
+type record RIM_RoutingAddress {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring rIM_RoutingAddressValue
+ //Left as octetstring because GTP spec does not include the RIM Routing
+ // Address Discriminator and therefore decoding is not possible as in 48.018
+ //CR 544 states that "The RIM Routing Address contains the destination RNC
+ // Identity from the RAN INFORMATION message when the source is GERAN and
+ // the target is UTRAN.
+ //The RIM Routing Address contains the destination Cell Identifier from the
+ // RAN INFORMATION message when the source is GERAN and the target ir GERAN.
+} with { variant "PRESENCE( type_gtpc = '9E'O)";
+ variant (lengthf) "LENGTHTO(rIM_RoutingAddressValue)"; };
+
+//MBMS Protocol Configuration Options - 7.7.58
+type record MBMS_ProtocolConfigurationOptions {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring mBMS_ProtocolConfigurationOptions
+} with { variant "PRESENCE( type_gtpc = '9F'O)";
+ variant (lengthf) "LENGTHTO(mBMS_ProtocolConfigurationOptions)"; };
+
+// MBMS Session Duration - 7.7.59
+type record MBMS_SessionDuration {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT3 mBMS_SessionDurationValue
+} with { variant "PRESENCE( type_gtpc = 'A8'O)";
+ variant (lengthf) "LENGTHTO(mBMS_SessionDurationValue)"; };
+
+
+// MBMS Service Area - 7.7.60
+type record MBMS_ServiceArea {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring mBMS_ServiceAreaValue
+} with { variant "PRESENCE( type_gtpc = 'A0'O)";
+ variant (lengthf) "LENGTHTO(mBMS_ServiceAreaValue)"; };
+
+// Source RNC PDCP context info - 7.7.61
+type record SourceRNC_PDCP_ContextInfo {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring rRC_Container
+} with { variant "PRESENCE( type_gtpc = 'A1'O)";
+ variant (lengthf) "LENGTHTO(rRC_Container)"; };
+
+// Additional Trace Info - 7.7.62
+type record AdditionalTraceInfo {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT3 traceReference2,
+ OCT2 traceRecordingSessionReference,
+ OCT1 triggeringEvents_GGSN,
+ OCT1 traceDepth,
+ OCT1 listOfInterfaces_GGSN,
+ OCT1 traceActivityControl
+} with { variant "PRESENCE( type_gtpc = 'A2'O)";
+ variant (lengthf) "LENGTHTO(traceReference2,
+ traceRecordingSessionReference, triggeringEvents_GGSN,
+ traceDepth, listOfInterfaces_GGSN, traceActivityControl)";
+ };
+
+// Hop Counter - 7.7.63
+type record HopCounter_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ integer hopCounter
+} with { variant "PRESENCE( type_gtpc = 'A3'O)";
+ variant (lengthf) "LENGTHTO(hopCounter)"; };
+
+// Selected PLMN ID - 7.7.64
+type record Selected_PLMN_ID {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT3 selected_PLMN_Identity
+} with { variant "PRESENCE( type_gtpc = 'A4'O)";
+ variant (lengthf) "LENGTHTO(selected_PLMN_Identity)"; };
+
+// MBMS Session Identifier - 7.7.65
+type record MBMS_SessionIdentifier {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 mBMS_SessionIdentifier
+} with { variant "PRESENCE( type_gtpc = 'A5'O)";
+ variant (lengthf) "LENGTHTO(mBMS_SessionIdentifier)"; };
+
+// MBMS 2G/3G Indicator - 7.7.66
+type record MBMS_2G_3G_Indicator {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 mBMS_2G_3G_Indicator
+} with { variant "PRESENCE( type_gtpc = 'A6'O)";
+ variant (lengthf) "LENGTHTO(mBMS_2G_3G_Indicator)"; };
+
+// Enhanced NSAPI - 7.7.67
+type record Enhanced_NSAPI {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 enhanced_NSAPI
+} with { variant "PRESENCE( type_gtpc = 'A7'O)";
+ variant (lengthf) "LENGTHTO(enhanced_NSAPI)"; };
+
+// Additional MBMS Trace Info - 7.7.68
+type record AdditionalMBMSTraceInfo {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT3 traceReference2,
+ OCT2 traceRecordingSessionReference,
+ OCT2 triggeringEvents_BM_SC,
+ OCT1 traceDepth_BM_SC,
+ OCT1 listOfInterfaces_BM_SC,
+ OCT1 traceActivityControl_BM_SC
+} with { variant "PRESENCE( type_gtpc = 'A9'O)";
+ variant (lengthf) "LENGTHTO(traceReference2, traceRecordingSessionReference,
+ triggeringEvents_BM_SC, traceDepth_BM_SC,
+ listOfInterfaces_BM_SC, traceActivityControl_BM_SC)";
+ };
+
+// MBMS Session Repetition Number - 7.7.69
+type record MBMS_SessionRepetitionNumber {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 mBMS_SessionRepetitionNumber
+} with { variant "PRESENCE( type_gtpc = 'AA'O)";
+ variant (lengthf) "LENGTHTO(mBMS_SessionRepetitionNumber)"; };
+
+// MBMS Time To Data Transfer - 7.7.70
+type record MBMS_TimeToDataTransfer {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 mBMS_TimeToDataTransfer
+} with { variant "PRESENCE( type_gtpc = 'AB'O)";
+ variant (lengthf) "LENGTHTO(mBMS_TimeToDataTransfer)"; };
+
+// BSS Container - 7.7.72
+type record BSS_Container {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring bSS_Container // TODO FIXME: which Container is the BSS Container?
+} with { variant "PRESENCE( type_gtpc = 'AD'O)";
+ variant (lengthf) "LENGTHTO(bSS_Container)"; };
+
+
+// Cell Identification - 7.7.73
+
+// Routing Area identification - from 24.008 10.5.5.15
+type record RoutingAreaIdentificationV_gtpc
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac
+};
+
+type record RNC_Identifier_gtpc {
+ RoutingAreaIdentificationV_gtpc routingAreaIdentificationV_gtpc,
+ integer rNC_ID,
+ HEX1 spare
+} with {
+ variant (spare,rNC_ID) "FIELDORDER(msb)";
+ variant (rNC_ID) "BYTEORDER(last)";
+ variant (rNC_ID) "FIELDLENGTH(12)";
+}
+
+type union Cell_ID_or_RNC_ID {
+ Cell_Identifier_V_GTPC cell_Identifier,
+ RNC_Identifier_gtpc rNC_Identifier
+}
+
+type record Cell_Identification_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ Cell_Identifier_V_GTPC targetCell_ID,
+ OCT1 sourceType, //0 - Source Cell ID / 1- Source RNC ID in next field
+ Cell_ID_or_RNC_ID source_Cell_ID_or_RNC_ID
+} with {variant "PRESENCE( type_gtpc = 'AE'O)";
+ variant (lengthf) "LENGTHTO(targetCell_ID,sourceType,source_Cell_ID_or_RNC_ID)";
+ variant (source_Cell_ID_or_RNC_ID) "CROSSTAG ( cell_Identifier, sourceType = '00'O;
+ rNC_Identifier, sourceType = '01'O)"; };
+
+// PDU Numbers - 7.7.74
+type record of PDU_Numbers PDU_Numbers_List;
+
+type record PDU_Numbers {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 spare,
+ OCT2 dL_GTPU_SequenceNumber,
+ OCT2 uL_GTPU_SequenceNumber,
+ OCT2 sendNPDUnum,
+ OCT2 receiveNPDUnum
+} with {variant "PRESENCE( type_gtpc = 'AF'O)";
+ variant (lengthf) "LENGTHTO(nsapi, spare, dL_GTPU_SequenceNumber, uL_GTPU_SequenceNumber,
+ sendNPDUnum, receiveNPDUnum)"; };
+
+// BSSGP Cause - 7.7.75
+type record BSSGP_Cause_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 bSSGP_Cause
+} with { variant "PRESENCE( type_gtpc = 'B0'O)";
+ variant (lengthf) "LENGTHTO(bSSGP_Cause)"; };
+
+// Required MBMS Bearer Capabilities - 7.7.76
+type record RequiredMBMS_BearerCapabilities {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring reqMBMS_BearerCapValue
+} with { variant "PRESENCE( type_gtpc = 'B1'O)";
+ variant (lengthf) "LENGTHTO(reqMBMS_BearerCapValue)"; };
+
+// RIM Routing Address Discriminator 7.7.77
+type record RIM_RoutingAddress_Discriminator {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 rra_discriminator,
+ BIT4 spare
+} with { variant "PRESENCE( type_gtpc = 'B2'O)";
+ variant (lengthf) "LENGTHTO(rra_discriminator,spare)"; };
+
+// ListOfSetupPFCs - 7.7.78
+
+// PFC/PFI as defined in BSSGP (48.018 - 11.3.83) which refers to L3 (24.008 - 10.5.6.11)
+type record Single_PFI_gtpc
+{
+ BIT7 pFI_Value,
+ BIT1 spare
+}
+
+type record length (0..11) of Single_PFI_gtpc Multiple_PFIs_gtpc;
+
+type record ListOfSetupPFCsValue_gtpc
+{
+ integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
+ Multiple_PFIs_gtpc pFIs
+} with
+{
+ variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDLENGTH(8)";
+}
+
+type record ListOfSetupPFCs_gtpc {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ ListOfSetupPFCsValue_gtpc listOfSetupPFCs
+} with { variant "PRESENCE( type_gtpc = 'B3'O)";
+ variant (lengthf) "LENGTHTO(listOfSetupPFCs)"; };
+
+// PS Handover XID Parameters 7.7.79
+type record of PS_HandoverXIDParameters PS_HandoverXIDParameters_List;
+
+type record PS_HandoverXIDParameters {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 sapi,
+ BIT4 spare,
+ LIN1 xID_ParametersLength,
+ XID_Information_GTPC xID_Parameters optional
+} with {
+ variant (lengthf) "LENGTHTO(sapi,spare,xID_ParametersLength,xID_Parameters)";
+ variant (xID_ParametersLength) "LENGTHTO(xID_Parameters)";
+ variant "PRESENCE(type_gtpc = 'B4'O)"
+ };
+
+//The following types are based on types in LLC_Types.ttcn
+
+type record of XID_GTPC XID_Information_GTPC;
+
+type record XID_GTPC
+{
+ BIT1 xl,
+ BIT5 typefield,
+ XID_length_GTPC xID_length,
+ //Header_XID header_XID,
+ XID_Data_GTPC xID_Data
+} with {
+ variant (xID_Data) "CROSSTAG( version, typefield = '00000'B;
+ iOV_UI, typefield = '00001'B;
+ iOV_I, typefield = '00010'B;
+ t200, typefield = '00011'B;
+ n200, typefield = '00100'B;
+ n201_U, typefield = '00101'B;
+ n201_I, typefield = '00110'B;
+ mD, typefield = '00111'B;
+ mU, typefield = '01000'B;
+ kD, typefield = '01001'B;
+ kU, typefield = '01010'B;
+ l3param, typefield = '01011'B;
+ reset, typefield = '01100'B;
+
+ )";
+ variant "FIELDORDER(msb)";
+ variant (xID_length) "CROSSTAG( short_len, xl = '0'B;
+ long_len, xl = '1'B;)";
+ variant (xID_length) "LENGTHTO (xID_Data)"
+
+ variant (xID_length) "PADDING(yes)"
+};
+
+type union XID_length_GTPC
+{
+ integer short_len,
+ integer long_len
+}with {
+ variant (short_len) "FIELDLENGTH(2)";
+ variant (long_len) "FIELDLENGTH(8)";
+ variant (long_len) "BYTEORDER(last)";
+ variant (short_len) "FIELDORDER(msb)";
+ variant (long_len) "FIELDORDER(msb)";
+
+}
+
+type union XID_Data_GTPC
+{
+ Version_GTPC version,
+ IOV_UI_GTPC iOV_UI,
+ IOV_I_GTPC iOV_I,
+ T200_GTPC t200,
+ N200_GTPC n200,
+ N201_U_GTPC n201_U,
+ N201_I_GTPC n201_I,
+ MD_GTPC mD,
+ MU_GTPC mU,
+ KD_GTPC kD,
+ KU_GTPC kU,
+ L3param_GTPC l3param,
+ Reset_LLC_GTPC reset
+}
+
+type record Version_GTPC
+{
+ integer version_value (0..15),
+ BIT4 spare
+
+} with {
+ variant (version_value) "FIELDLENGTH(4)";
+}
+
+type octetstring IOV_UI_GTPC length(4)
+
+
+type octetstring IOV_I_GTPC length(4)
+
+
+type record T200_GTPC
+{
+ BIT4 spare,
+ integer t200Value
+} with {
+ variant (t200Value) "FIELDLENGTH(12)";
+ variant (t200Value) "BYTEORDER(last)";
+ variant "FIELDORDER(msb)";
+};
+
+
+type record N200_GTPC
+{
+ integer retransmissions (0..15),
+ BIT4 spare
+} with {
+ variant (retransmissions) "FIELDLENGTH(4)";
+}
+
+
+type record N201_U_GTPC
+{
+ BIT5 spare,
+ integer n201UValue
+} with {
+ variant (n201UValue) "FIELDLENGTH(11)";
+ variant (n201UValue) "BYTEORDER(last)";
+ variant "FIELDORDER(msb)";
+};
+
+
+type record N201_I_GTPC
+{
+ BIT5 spare,
+ integer n201IValue
+}
+with {
+ variant (n201IValue) "FIELDLENGTH(11)";
+ variant (n201IValue) "BYTEORDER(last)";
+ variant "FIELDORDER(msb)";
+};
+
+type record MD_GTPC
+{
+ BIT1 spare,
+ integer mDValue
+} with {
+ variant (mDValue) "FIELDLENGTH(15)";
+ variant (mDValue) "BYTEORDER(last)";
+ variant "FIELDORDER(msb)";
+};
+
+
+type record MU_GTPC
+{
+ BIT1 spare,
+ integer mUValue
+} with {
+ variant (mUValue) "FIELDLENGTH(15)";
+ variant (mUValue) "BYTEORDER(last)";
+ variant "FIELDORDER(msb)";
+};
+
+type integer KD_GTPC with {variant "FIELDLENGTH(8)";};
+
+type integer KU_GTPC with {variant "FIELDLENGTH(8)";};
+
+type octetstring L3param_GTPC;
+
+type octetstring Reset_LLC_GTPC length(0);
+// end of types copied from LLC_Types.ttcn
+
+
+// MS Info Change reporting Action 7.7.80
+type record MS_InfoChangeReportingAction {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 actionfield
+} with { variant "PRESENCE( type_gtpc = 'B5'O)";
+ variant (lengthf) "LENGTHTO(actionfield)"; };
+
+// Direct Tunnel Flags - 7.7.81
+type record DirectTunnelFlags {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 dTI,
+ BIT1 gCSI,
+ BIT1 eI,
+ BIT5 spare
+} with { variant "PRESENCE( type_gtpc = 'B6'O)";
+ variant (lengthf) "LENGTHTO(dTI,gCSI,eI,spare)";};
+
+// Correlation ID - 7.7.82
+type record CorrelationID {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 correlationIDValue
+} with { variant "PRESENCE( type_gtpc = 'B7'O)";
+ variant (lengthf) "LENGTHTO(correlationIDValue)"; };
+
+// BearerControlMode - 7.7.83
+type record BearerControlMode {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 bearerControlModeValue
+} with { variant "PRESENCE( type_gtpc = 'B8'O)";
+ variant (lengthf) "LENGTHTO(bearerControlModeValue)"; };
+
+// MBMS Flow ID - 7.7.84
+type record MBMS_FlowID {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring mBMS_FlowIDValue
+} with { variant "PRESENCE( type_gtpc = 'B9'O)";
+ variant (lengthf) "LENGTHTO(mBMS_FlowIDValue)"; };
+
+// MBMS IP Multicast Distribution - 7.7.85
+type record MBMS_IPMulticastDistribution {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT4 commonTEID,
+ GSNAddress iPmulticastDistributionAddress,
+ GSNAddress iPmulticastSourceAddress,
+ OCT1 mBMS_HCIndicator
+} with { variant "PRESENCE( type_gtpc = 'BA'O)";
+ variant (lengthf) "LENGTHTO(commonTEID,iPmulticastDistributionAddress,
+ iPmulticastSourceAddress,mBMS_HCIndicator)"; };
+
+// GSNAddress
+type record GSNAddress {
+ INT6b lengthf,
+ BIT2 address_type,
+ iPv4_iPv6_Address ipv_address
+} with { variant (lengthf) "LENGTHTO(ipv_address)";};
+
+// MBMS Distribution Acknowledgement - 7.7.86
+type record MBMS_DistributionAcknowledgement {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT2 distributionIndication,
+ BIT6 spare
+} with { variant "PRESENCE( type_gtpc = 'BB'O)";
+ variant (lengthf) "LENGTHTO(distributionIndication,spare)"; };
+
+// ReliableInterRATHandoverInfo - 7.7.87 - from 48.018 11.3.107
+type record ReliableInterRATHandoverInfo
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 reliableInterRATHandoverInfoIndicator,
+ BIT7 spare
+} with { variant "PRESENCE( type_gtpc = 'BC'O)";
+ variant (lengthf) "LENGTHTO(reliableInterRATHandoverInfoIndicator,spare)"; };
+
+//7.7.88
+type record RFSP_Index
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ LIN2_BO_LAST rFSPIndexValue (1..256)
+} with { variant "PRESENCE( type_gtpc = 'BD'O)";
+ variant (lengthf) "LENGTHTO(rFSPIndexValue)"; };
+
+//7.7.90
+type record of FullyQualifiedDomainName FullyQualifiedDomainName_List;
+
+type record FullyQualifiedDomainName
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring fQDN_Value
+} with { variant "PRESENCE( type_gtpc = 'BE'O)";
+ variant (lengthf) "LENGTHTO(fQDN_Value)"; };
+
+//7.7.91
+type record EvolvedAllocationRetentionPriorityI
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 pVI,
+ BIT1 spare1,
+ integer pL,
+ BIT1 pCI,
+ BIT1 spare2
+} with { variant "PRESENCE( type_gtpc = 'BF'O)";
+ variant (lengthf) "LENGTHTO(pVI,spare1,pL,pCI,spare2)";
+ variant (pL) "FIELDLENGTH(4)";};
+
+//7.7.92
+type record of EvolvedAllocationRetentionPriorityII EvolvedAllocationRetentionPriorityII_List
+
+type record EvolvedAllocationRetentionPriorityII
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 unused,
+ BIT1 pVI,
+ BIT1 spare1,
+ integer pL,
+ BIT1 pCI,
+ BIT1 spare2
+} with { variant "PRESENCE( type_gtpc = 'C0'O)";
+ variant (lengthf) "LENGTHTO(nsapi,unused,pVI,spare1,pL,pCI,spare2)";
+ variant (pL) "FIELDLENGTH(4)";};
+
+//7.7.93
+type record ExtendedCommonFlags
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 unauthenticatedIMSI,
+ BIT1 cCRSI,
+ BIT1 cPSR,
+ BIT1 retLoc,
+ BIT1 vB,
+ BIT1 pCRI,
+ BIT1 bDWI,
+ BIT1 uASI
+} with { variant "PRESENCE(type_gtpc = 'C1'O)";
+ variant (lengthf) "LENGTHTO(unauthenticatedIMSI,cCRSI,cPSR,retLoc,vB,pCRI,bDWI,uASI)";};
+
+//7.7.94
+type record UserCSGInformation
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT5 spare1,
+ bitstring cSG_ID length(27), // "The coding ... is the responsibility of the operator..."
+ BIT1 cMI,
+ BIT5 spare2,
+ integer accessMode (0..3)
+} with { variant "PRESENCE( type_gtpc = 'C2'O)";
+ variant (lengthf) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,
+ mncDigit1,mncDigit2,spare1,cSG_ID,
+ cMI,spare2,accessMode)";
+ variant (spare1,cSG_ID) "FIELDORDER(msb)";
+ variant (cSG_ID) "FIELDLENGTH(27)";
+ variant (accessMode) "FIELDLENGTH(2)";
+};
+
+//7.7.95
+type record CSGInfoReportingAction
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 uCCSG,
+ BIT1 uCSHC,
+ BIT1 uCUHC,
+ BIT5 spare
+} with { variant "PRESENCE( type_gtpc = 'C3'O)";
+ variant (lengthf) "LENGTHTO(uCCSG,uCSHC,uCUHC,spare)";
+};
+
+//7.7.96
+type record CSG_Id
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT5 spare,
+ bitstring cSG_ID length(27) // "The coding ... is the responsibility of the operator..."
+} with { variant "PRESENCE(type_gtpc = 'C4'O)";
+ variant (lengthf) "LENGTHTO(spare,cSG_ID)";
+ variant (spare,cSG_ID) "FIELDORDER(msb)";
+ variant (cSG_ID) "FIELDLENGTH(27)";
+};
+
+//7.7.97
+type record CSG_MembershipIndication
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 cMI_Value,
+ BIT7 spare
+} with { variant "PRESENCE(type_gtpc = 'C5'O)";
+ variant (lengthf) "LENGTHTO(cMI_Value,spare)";
+}
+
+//7.7.98
+type record APN_AMBR
+{
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ LIN4_BO_LAST aPN_AMBR_Uplink,
+ LIN4_BO_LAST aPN_AMBR_Downlink
+} with { variant "PRESENCE(type_gtpc = 'C6'O)";
+ variant (lengthf) "LENGTHTO(aPN_AMBR_Uplink,aPN_AMBR_Downlink)";
+}
+
+//7.7.99
+type record UE_Network_Capability {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring ue_network_capability
+} with {
+ variant "PRESENCE(type_gtpc = 'C7'O)";
+ variant (lengthf) "LENGTHTO(ue_network_capability)";
+}
+
+//7.7.100
+type record UE_AMBR {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ LIN4_BO_LAST subscribed_ue_ambr_uplink,
+ LIN4_BO_LAST subscribed_ue_ambr_downlink,
+ LIN4_BO_LAST authorized_ue_ambr_uplink optional,
+ LIN4_BO_LAST authorized_ue_ambr_downlink optional
+} with {
+ variant "PRESENCE(type_gtpc = 'C8'O)";
+ variant (lengthf) "LENGTHTO(subscribed_ue_ambr_uplink,subscribed_ue_ambr_downlink,authorized_ue_ambr_uplink,authorized_ue_ambr_downlink)";
+}
+
+//7.7.101
+type record APN_AMBR_NSAPI {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf (9),
+ HEX1 nsapi,
+ HEX1 spare,
+ LIN4_BO_LAST authorized_apn_ambr_uplink,
+ LIN4_BO_LAST authorized_apn_ambr_downlink
+} with {
+ variant "PRESENCE(type_gtpc = 'C9'O)";
+ variant (lengthf) "LENGTHTO(spare, nsapi,authorized_apn_ambr_uplink,authorized_apn_ambr_downlink)";
+}
+
+//7.7.102
+type record GGSN_BackOffTime {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT5 timerValue,
+ BIT3 timerUnit,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'CA'O)";
+ variant (lengthf) "LENGTHTO(timerValue, timerUnit, explicitly_specified)";
+}
+
+//7.7.103
+type record SignallingPriorityIndication {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 lapi,
+ BIT7 spare,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'CB'O)";
+ variant (lengthf) "LENGTHTO(lapi, spare, explicitly_specified)";
+}
+
+//7.7.104
+type record SignallingPriorityIndication_NSAPI {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 nsapi,
+ BIT7 spare1,
+ BIT1 lapi,
+ BIT7 spare2,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'CC'O)";
+ variant (lengthf) "LENGTHTO(nsapi, spare1, lapi, spare2, explicitly_specified)";
+}
+
+//7.7.105
+type record Higher_Bitrates_Than_16Mbps_Flag {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf (1),
+ LIN1 flag
+} with {
+ variant "PRESENCE(type_gtpc = 'CD'O)";
+ variant (lengthf) "LENGTHTO(flag)";
+}
+
+//7.7.106
+// (void)
+
+//7.7.107
+type record SRVCC_MM_Context {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ LIN1 mobile_station_classmark2_len,
+ octetstring mobile_station_classmark2,
+ LIN1 mobile_station_classmark3_len,
+ octetstring mobile_station_classmark3,
+ LIN1 supported_codec_list_len,
+ octetstring supported_codec_list,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'CF'O)";
+ variant (lengthf) "LENGTHTO(mobile_station_classmark2_len, mobile_station_classmark2,
+ mobile_station_classmark3_len, mobile_station_classmark3,
+ supported_codec_list_len, supported_codec_list,
+ explicitly_specified)";
+ variant (mobile_station_classmark2_len) "LENGTHTO(mobile_station_classmark2)";
+ variant (mobile_station_classmark3_len) "LENGTHTO(mobile_station_classmark3)";
+ variant (supported_codec_list_len) "LENGTHTO(supported_codec_list)";
+}
+
+
+//7.7.108
+type record SRVCC_Flags {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 ics,
+ BIT7 spare,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'D0'O)";
+ variant (lengthf) "LENGTHTO(ics, spare, explicitly_specified)";
+}
+
+//7.7.109
+type record STN_SR {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 nanpi,
+ Digits digits
+} with {
+ variant "PRESENCE(type_gtpc = 'D1'O)";
+ variant (lengthf) "LENGTHTO(nanpi, digits)";
+}
+
+type record of HEX1 Digits;
+
+//7.7.110
+type record C_MSISDN {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring msisdn
+} with {
+ variant "PRESENCE(type_gtpc = 'D2'O)";
+ variant (lengthf) "LENGTHTO(msisdn)";
+}
+
+//7.7.111
+type record Extended_RANAP_Cause {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ integer extended_ranap_cause (1..512),
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'D3'O)";
+ variant (lengthf) "LENGTHTO(extended_ranap_cause, explicitly_specified)";
+ variant (extended_ranap_cause) "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)"
+}
+
+//7.7.112
+type record ENodeB_ID {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT1 eNodeB_type,
+ ENodeB_IDs eNodeB_ID
+} with {
+ variant "PRESENCE(type_gtpc = 'D4'O)";
+ variant (lengthf) "LENGTHTO(eNodeB_type, eNodeB_ID)";
+ variant "CROSSTAG(macroENodeB_ID, eNodeB_type = '00'O;
+ homeENodeB_ID, eNodeB_type = '01'O;)"
+}
+
+type union ENodeB_IDs
+{
+ HomeENodeB_ID homeENodeB_ID,
+ MacroENodeB_ID macroENodeB_ID
+}
+
+type record MacroENodeB_ID
+{
+ HEX1 mcc1,
+ HEX1 mcc2,
+ HEX1 mcc3,
+ HEX1 mnc3,
+ HEX1 mnc1,
+ HEX1 mnc2,
+ BIT4 spare,
+ bitstring macroENodeB_ID length(20),
+ OCT2 tac
+} with {
+ variant (spare,macroENodeB_ID) "FIELDORDER(msb)";
+ variant (macroENodeB_ID) "FIELDLENGTH(20)";
+}
+
+type record HomeENodeB_ID
+{
+ HEX1 mcc1,
+ HEX1 mcc2,
+ HEX1 mcc3,
+ HEX1 mnc3,
+ HEX1 mnc1,
+ HEX1 mnc2,
+ BIT4 spare,
+ bitstring homeENodeB_ID length(28),
+ OCT2 tac
+} with {
+ variant (spare,homeENodeB_ID) "FIELDORDER(msb)";
+ variant (homeENodeB_ID) "FIELDLENGTH(28)";
+}
+
+//7.7.113
+type record SelectionMode_NSAPI {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 spare1,
+ BIT2 selectionMode,
+ BIT6 spare2
+} with {
+ variant "PRESENCE(type_gtpc = 'D5'O)";
+ variant (lengthf) "LENGTHTO(nsapi, spare1, selectionMode, spare2)";
+}
+
+//7.7.114
+type record ULI_Timestamp {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ OCT4 uliTimestampValue,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'D6'O)";
+ variant (lengthf) "LENGTHTO(uliTimestampValue, explicitly_specified)";
+}
+
+//7.7.115
+type record LHN_ID_NSAPI {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT4 nsapi,
+ BIT4 spare,
+ octetstring lHN_ID optional
+} with {
+ variant "PRESENCE(type_gtpc = 'D7'O)";
+ variant (lengthf) "LENGTHTO(nsapi, spare, lHN_ID)";
+}
+
+//7.7.116
+type record CN_OperatorSelectionEntity {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT2 selectionEntity,
+ BIT6 spare,
+ octetstring explicitly_specified optional
+} with {
+ variant "PRESENCE(type_gtpc = 'D8'O)";
+ variant (lengthf) "LENGTHTO(selectionEntity, spare, explicitly_specified)";
+}
+
+//7.7.117
+type record UE_UsageType {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ LIN4_BO_LAST uE_UsageTypeValue
+ } with {
+ variant "PRESENCE(type_gtpc = 'D9'O)";
+ variant (lengthf) "LENGTHTO(uE_UsageTypeValue)";
+}
+
+//7.7.118
+type record ExtendedCommonFlagsII {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ BIT1 pnsi,
+ BIT1 dtci,
+ BIT6 spare,
+ octetstring explicitly_specified optional
+ } with {
+ variant "PRESENCE(type_gtpc = 'DA'O)";
+ variant (lengthf) "LENGTHTO(pnsi, dtci, spare, explicitly_specified)";
+}
+
+//7.7.119
+type record NodeIdentifier {
+ OCT1 type_gtpc,
+ LIN2_BO_LAST lengthf,
+ octetstring nodeIdentifier
+ } with {
+ variant "PRESENCE(type_gtpc = 'DB'O)";
+ variant (lengthf) "LENGTHTO( nodeIdentifier)";
+}
+
+/////////////////////////////
+// Message Type Values
+// 7.1 Table 1
+/////////////////////////////
+type OCT1 MessageType_gtpc;
+
+// 0 For future use. Shall not be sent. If received, shall be treated as an
+// Unknown message
+
+const MessageType_gtpc echoRequest := '01'O;
+const MessageType_gtpc echoResponse := '02'O;
+const MessageType_gtpc versionNotSupported := '03'O;
+
+// 4 - 7: For GTP'
+
+// 8 - 15 for future use. Shall not be sent.
+// If received, shall be treated as an Unknown message
+
+const MessageType_gtpc createPDPContextRequest := '10'O;
+const MessageType_gtpc createPDPContextResponse := '11'O;
+const MessageType_gtpc updatePDPContextRequest := '12'O;
+const MessageType_gtpc updatePDPContextResponse := '13'O;
+const MessageType_gtpc deletePDPContextRequest := '14'O;
+const MessageType_gtpc deletePDPContextResponse := '15'O;
+const MessageType_gtpc initiatePDPContextActivationRequest := '16'O;
+const MessageType_gtpc initiatePDPContextActivationResponse := '17'O;
+
+// 24 - 25 for future use.
+// Shall not be sent. If received, shall be treated as an Unknown message
+
+// 26 for GTP-U only
+
+const MessageType_gtpc pduNotificationRequest := '1B'O;
+const MessageType_gtpc pduNotificationResponse := '1C'O;
+const MessageType_gtpc pduNotificationRejectRequest := '1D'O;
+const MessageType_gtpc pduNotificationRejectResponse := '1E'O;
+
+const MessageType_gtpc supportedExtHeadersNotification := '1F'O;
+const MessageType_gtpc sendRoutingInfoForGPRSRequest := '20'O;
+const MessageType_gtpc sendRoutingInfoForGPRSResponse := '21'O;
+const MessageType_gtpc failureReportRequest := '22'O;
+const MessageType_gtpc failureReportResponse := '23'O;
+const MessageType_gtpc noteMS_GPRSPresentRequest := '24'O;
+const MessageType_gtpc noteMS_GPRSPresentResponse := '25'O;
+
+// 38 - 47 for future use. Shall not be sent.
+// If received, shall be treated as an Unknown message
+
+const MessageType_gtpc identificationRequest := '30'O;
+const MessageType_gtpc identificationResponse := '31'O;
+const MessageType_gtpc sgsnContextRequest := '32'O;
+const MessageType_gtpc sgsnContextResponse := '33'O;
+const MessageType_gtpc sgsnContextAcknowledge := '34'O;
+const MessageType_gtpc forwardRelocationRequest := '35'O;
+const MessageType_gtpc forwardRelocationResponse := '36'O;
+const MessageType_gtpc forwardRelocationComplete := '37'O;
+const MessageType_gtpc relocationCancelRequest := '38'O;
+const MessageType_gtpc relocationCancelResponse := '39'O;
+const MessageType_gtpc forwardSRNSContext := '3A'O;
+const MessageType_gtpc forwardRelocationCompleteAcknowledge := '3B'O;
+const MessageType_gtpc forwardSRNSContextAcknowledge := '3C'O;
+const MessageType_gtpc ueRegistrationQueryRequest := '3D'O;
+const MessageType_gtpc ueRegistrationQueryResponse := '3E'O;
+
+// 63 - 69 for future use. Shall not be sent. If received, shall be treated as
+// an Unknown message
+
+const MessageType_gtpc rANInformationRelay := '46'O;
+
+// 71 -95 for future use. Shall not be sent. If received, shall be treated as
+// an Unknown message
+
+const MessageType_gtpc mBMSNotificationRequest := '60'O;
+const MessageType_gtpc mBMSNotificationResponse := '61'O;
+const MessageType_gtpc mBMSNotificationRejectRequest := '62'O;
+const MessageType_gtpc mBMSNotificationRejectResponse := '63'O;
+const MessageType_gtpc createMBMSContextRequest := '64'O;
+const MessageType_gtpc createMBMSContextResponse := '65'O;
+const MessageType_gtpc updateMBMSContextRequest := '66'O;
+const MessageType_gtpc updateMBMSContextResponse := '67'O;
+const MessageType_gtpc deleteMBMSContextRequest := '68'O;
+const MessageType_gtpc deleteMBMSContextResponse := '69'O;
+
+// 106-111 for future use. Shall not be sent. If received, shall be treated as
+// an Unknown message
+
+const MessageType_gtpc mBMSRegistrationRequest := '70'O;
+const MessageType_gtpc mBMSRegistrationResponse := '71'O;
+const MessageType_gtpc mBMSDeRegistrationRequest := '72'O;
+const MessageType_gtpc mBMSDeRegistrationResponse := '73'O;
+
+const MessageType_gtpc mBMSSessionStartRequest := '74'O;
+const MessageType_gtpc mBMSSessionStartResponse := '75'O;
+const MessageType_gtpc mBMSSessionStopRequest := '76'O;
+const MessageType_gtpc mBMSSessionStopResponse := '77'O;
+
+const MessageType_gtpc mBMSSessionUpdateRequest := '78'O;
+const MessageType_gtpc mBMSSessionUpdateResponse := '79'O;
+
+// 122 - 127 for future use. Shall not be sent.
+// If received, shall be treated as an Unknown message
+
+const MessageType_gtpc mS_InfoChangeNotificationRequest := '80'O;
+const MessageType_gtpc mS_InfoChangeNotificationResponse := '81'O
+
+// 130 - 239 for future use. Shall not be sent.
+// If received, shall be treated as an Unknown message
+
+// 240 - 241 not used in GTP-C
+
+// 242 - 254 for future use. Shall not be sent.
+// If received, shall be treated as an Unknown message
+
+// 255 not used in GTP-C
+
+const MessageType_gtpc g_PDU := 'FF'O;
+
+
+/////////////////////////////
+// GTP-C messages
+/////////////////////////////
+// Echo Request - 7.2.1
+type record EchoRequest {
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Echo Response - 7.2.2
+type record EchoResponse {
+ Recovery_gtpc recovery,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Version Not Supported - 7.2.3
+type record VersionNotSupported {
+};
+
+// Supported Extension Headers Notification - 7.2.4
+type record SupportedExtensionHeadersNotification {
+ ExtensionHeaderTypeList_gtpc extensionHeaderTypeList
+} with {variant ""};
+
+// Create PDP Context Request - 7.3.1
+type record CreatePDPContextRequest {
+ IMSI_gtpc imsi optional,
+ RoutingAreaIdentity rai optional,
+ Recovery_gtpc recovery optional,
+ SelectionMode selectionMode optional,
+ TeidDataI teidDataI,
+ TeidControlPlane teidControlPlane optional,
+ NSAPI_GTPC nsapi,
+ NSAPI_GTPC linked_nsapi optional,
+ ChargingCharacteristics_GTPC charging_char optional,
+ TraceRef trace_ref optional,
+ GTP_TraceType trace_type optional,
+ EndUserAddress endUserAddress optional,
+ AccessPointName accessPointName optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC sgsn_addr_signalling,
+ GSN_Address_GTPC sgsn_addr_traffic,
+ MSISDN msisdn optional,
+ QualityOfServiceProfile qualityOfServiceProfile,
+ TrafficFlowTemplate tft optional,
+ GTP_TriggerID triggerId optional,
+ OMCIdentity omcId optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ RATType ratType optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ IMEISV_gtpc imeisv optional,
+ CamelChargingInformationContainer camelChargingInformationContainer optional,
+ AdditionalTraceInfo additionalTraceInfo optional,
+ CorrelationID correlationID optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ UserCSGInformation userCSGInformation optional,
+ APN_AMBR aPN_AMBR optional,
+ SignallingPriorityIndication signallingPriorityIndication optional,
+ CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Create PDP Context Response - 7.3.2
+type record CreatePDPContextResponse {
+ Cause_gtpc cause,
+ ReorderingRequired reorderingRequired optional,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI optional,
+ TeidControlPlane teidControlPlane optional,
+ NSAPI_GTPC nsapi optional,
+ ChargingID chargingID optional,
+ EndUserAddress endUserAddress optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC ggsn_addr_traffic optional,
+ GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
+ GSN_Address_GTPC alt_ggsn_addr_traffic optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ BearerControlMode bearerControlMode optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ ExtendedCommonFlags extendedCommonFlag optional,
+ CSGInfoReportingAction csg_information_reporting_action optional,
+ APN_AMBR aPN_AMBR optional,
+ GGSN_BackOffTime gGSN_BackOffTime optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+
+// Update PDP Context Request - 7.3.3
+type union UpdatePDPContextRequest {
+ UpdatePDPContextRequestSGSN updatePDPContextRequestSGSN,
+ UpdatePDPContextRequestGGSN updatePDPContextRequestGGSN,
+ UpdatePDPContextRequestCGW updatePDPContextRequestCGW
+};
+
+//from SGSN
+type record UpdatePDPContextRequestSGSN {
+ IMSI_gtpc imsi optional,
+ RoutingAreaIdentity rai optional,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI,
+ TeidControlPlane teidControlPlane optional,
+ NSAPI_GTPC nsapi,
+ TraceRef trace_ref optional,
+ GTP_TraceType trace_type optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane,
+ GSN_Address_GTPC sgsn_addr_traffic,
+ GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
+ GSN_Address_GTPC alt_ggsn_addr_traffic optional,
+ QualityOfServiceProfile qualityOfServiceProfile,
+ TrafficFlowTemplate tft optional,
+ GTP_TriggerID triggerId optional,
+ OMCIdentity omcId optional,
+ CommonFlags commonFlags optional,
+ RATType ratType optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ AdditionalTraceInfo additionalTraceInfo optional,
+ DirectTunnelFlags directTunnelFlags optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ UserCSGInformation userCSGInformation optional,
+ APN_AMBR aPN_AMBR optional,
+ SignallingPriorityIndication signallingPriorityIndication optional,
+ CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+//from GGSN
+type record UpdatePDPContextRequestGGSN {
+ IMSI_gtpc imsi optional,
+ Recovery_gtpc recovery optional,
+ NSAPI_GTPC nsapi,
+ EndUserAddress endUserAddress optional,
+ ProtConfigOptions protConfigOptions optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ TrafficFlowTemplate tft optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ DirectTunnelFlags directTunnelFlags optional,
+ BearerControlMode bearerControlMode optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ CSGInfoReportingAction cSGInfoReportingAction optional,
+ APN_AMBR aPN_AMBR optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+//from CGW
+type record UpdatePDPContextRequestCGW {
+ IMSI_gtpc imsi optional,
+ Recovery_gtpc recovery optional,
+ NSAPI_GTPC nsapi,
+ EndUserAddress endUserAddress optional,
+ ProtConfigOptions protConfigOptions optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ TrafficFlowTemplate tft optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ DirectTunnelFlags directTunnelFlags optional,
+ BearerControlMode bearerControlMode optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ CSGInfoReportingAction cSGInfoReportingAction optional,
+ APN_AMBR aPN_AMBR optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Update PDP Context Response - 7.3.4
+type union UpdatePDPContextResponse {
+ UpdatePDPContextResponseSGSN updatePDPContextResponseSGSN,
+ UpdatePDPContextResponseGGSN updatePDPContextResponseGGSN,
+ UpdatePDPContextResponseCGW updatePDPContextResponseCGW
+};
+
+//from GGSN
+type record UpdatePDPContextResponseGGSN {
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI optional,
+ TeidControlPlane teidControlPlane optional,
+ ChargingID chargingID optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC ggsn_addr_traffic optional,
+ GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
+ GSN_Address_GTPC alt_ggsn_addr_traffic optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ BearerControlMode bearerControlMode optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ CSGInfoReportingAction csg_information_reporting_action optional,
+ APN_AMBR aPN_AMBR optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+//from CGW
+type record UpdatePDPContextResponseCGW {
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI optional,
+ TeidControlPlane teidControlPlane optional,
+ ChargingID chargingID optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC ggsn_addr_traffic optional,
+ GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
+ GSN_Address_GTPC alt_ggsn_addr_traffic optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ CommonFlags commonFlags optional,
+ APN_Restriction aPN_Restriction optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ BearerControlMode bearerControlMode optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ APN_AMBR aPN_AMBR optional,
+ ChargingGatewayAddress chargingGatewayAddress optional,
+ ChargingGatewayAddress alt_chargingGatewayAddress optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+//from SGSN
+type record UpdatePDPContextResponseSGSN {
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI optional,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC sgsn_addr_traffic optional,
+ QualityOfServiceProfile qualityOfServiceProfile optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ DirectTunnelFlags directTunnelFlags optional,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ APN_AMBR aPN_AMBR optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+
+// Delete PDP Context Request - 7.3.5
+type record DeletePDPContextRequest {
+ Cause_gtpc cause optional,
+ TearDownInd tearDownIndicator optional,
+ NSAPI_GTPC nsapi,
+ ProtConfigOptions protConfigOptions optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ ULI_Timestamp uLI_Timestamp optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Delete PDP Context Response - 7.3.6
+type record DeletePDPContextResponse {
+ Cause_gtpc cause,
+ ProtConfigOptions protConfigOptions optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ ULI_Timestamp uLI_Timestamp optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// PDU Notification Request - 7.3.8
+type record PDU_NotificationRequest {
+ IMSI_gtpc imsi,
+ TeidControlPlane teidControlPlane,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ ProtConfigOptions protConfigOptions optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// PDU Notification Response - 7.3.9
+type record PDU_NotificationResponse {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// PDU Notification Reject Request - 7.3.10
+type record PDU_NotificationRejectRequest {
+ Cause_gtpc cause,
+ TeidControlPlane teidControlPlane,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ ProtConfigOptions protConfigOptions optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// PDU Notification Reject Response - 7.3.11
+type record PDU_NotificationRejectResponse {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Initiate PDP Context Activation Request 7.3.12
+type record InitiatePDPContextActivationRequest
+{
+ NSAPI_GTPC linkedNSAPI,
+ ProtConfigOptions protConfigOptions optional,
+ QualityOfServiceProfile qualityOfServiceProfile,
+ TrafficFlowTemplate tft optional,
+ CorrelationID correlationID,
+ EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Initiate PDP Context Activation Response 7.3.13
+type record InitiatePDPContextActivationResponse
+{
+ Cause_gtpc cause,
+ ProtConfigOptions protConfigOptions optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Send Routeing Information for GPRS Request - 7.4.1
+type record SendRouteingInformationForGPRSRequest {
+ IMSI_gtpc imsi,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Send Routeing Information for GPRS Response - 7.4.2
+type record SendRouteingInformationForGPRSResponse {
+ Cause_gtpc cause,
+ IMSI_gtpc imsi,
+ MAP_Cause map_Cause optional,
+ MSNotReachableReason mS_not_ReachableReason optional,
+ GSN_Address_GTPC gsn_Address optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Failure Report Request - 7.4.3
+type record FailureReportRequest {
+ IMSI_gtpc imsi,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Failure Report Response - 7.4.4
+type record FailureReportResponse {
+ Cause_gtpc cause,
+ MAP_Cause map_Cause optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Note MS GPRS Present Request - 7.4.5
+type record NoteMS_GPRSPresentRequest {
+ IMSI_gtpc imsi,
+ GSN_Address_GTPC gsn_Address,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Note MS GPRS Present Response - 7.4.6
+type record NoteMS_GPRSPresentResponse {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Identification Request - 7.5.1
+type record IdentificationRequest {
+ RoutingAreaIdentity routingAreaIdentity,
+ PacketTMSI packetTMSI,
+ PTMSI_Signature ptmsi_Signature optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ HopCounter_gtpc hopCounter optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Identification Response - 7.5.2
+type record IdentificationResponse {
+ Cause_gtpc cause,
+ IMSI_gtpc imsi optional,
+ AuthenticationTriplet_GTPC_SetOf authenticationTriplet optional,
+ AuthenticationQuintuplet_GTPC authenticationQuintuplet optional,
+ AuthenticationQuintuplet_GTPC authenticationQuintuplet2 optional,
+ AuthenticationQuintuplet_GTPC authenticationQuintuplet3 optional,
+ AuthenticationQuintuplet_GTPC authenticationQuintuplet4 optional,
+ AuthenticationQuintuplet_GTPC authenticationQuintuplet5 optional,
+ UE_UsageType uE_UsageType optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// SGSN Context Request - 7.5.3
+type record SGSN_ContextRequest {
+ IMSI_gtpc imsi optional,
+ RoutingAreaIdentity routingAreaIdentity ,
+ TLLI tlli optional,
+ PacketTMSI packetTMSI optional,
+ PTMSI_Signature ptmsi_Signature optional,
+ MS_Validated ms_Validated optional,
+ TeidControlPlane teidControlPlane,
+ GSN_Address_GTPC sgsn_addr_controlPlane,
+ GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional,
+ SGSN_Number sGSN_Number optional,
+ RATType ratType optional,
+ HopCounter_gtpc hopCounter optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// SGSN Context Response - 7.5.4
+ type record SGSN_ContextResponse
+{
+ Cause_gtpc cause,
+ IMSI_gtpc imsi optional,
+ TeidControlPlane teidControlPlane optional,
+ RABContext_List rabContext optional,
+ RadioPrioritySMS radioPrioritySMS optional,
+ RadioPriority_List radioPriority optional,
+ PacketFlowID_List packetFlowID optional,
+ ChargingCharacteristics_List_GTPC charging_char optional,
+ MM_Context mm_Context optional,
+ PDP_Context_GTPC_List pdp_Context optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ PDPContextPriorization pdpContextPriorization optional,
+ RadioPriorityLCS radioPriority_LCS optional,
+ MBMS_UE_Context_List mBMS_UE_Context optional,
+ RFSP_Index subscribedRFSP_Index optional,
+ RFSP_Index rFSP_IndexInUse optional,
+ FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional,
+ EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ UE_Network_Capability ue_network_capability optional,
+ UE_AMBR ue_ambr optional,
+ APN_AMBR_NSAPI apn_ambr_nsapi optional,
+ SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional,
+ Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional,
+ SelectionMode_NSAPI selectionMode_nsapi optional,
+ LHN_ID_NSAPI localHomeNetworkID_nsapi optional,
+ UE_UsageType uE_UsageType optional,
+ ExtendedCommonFlagsII extendedCommonFlagsII optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+
+// SGSN Context Acknowledge - 7.5.5
+type record SGSN_ContextAcknowledge {
+ Cause_gtpc cause,
+ TeidDataII_List teidDataII optional,
+ GSN_Address_GTPC sgsn_AddressForUserTraffic optional,
+ SGSN_Number sgsn_Number optional,
+ NodeIdentifier nodeIdentifier optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Forward Relocation Request - 7.5.6
+type record ForwardRelocationRequest {
+ IMSI_gtpc imsi optional,
+ TeidControlPlane teidControlPlane,
+ RANAPCause ranapCause,
+ PacketFlowID_List packetFlowID optional,
+ ChargingCharacteristics_List_GTPC charging_char optional,
+ MM_Context mmContext,
+ PDP_Context_GTPC_List pdpContext optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane,
+ TargetIdentification targetId,
+ UTRANTransparentContainer transpContainer,
+ PDPContextPriorization pdpContextPriorization optional,
+ MBMS_UE_Context_List mBMS_UE_Context optional,
+ Selected_PLMN_ID selected_PLMN_ID optional,
+ BSS_Container bSS_Container optional,
+ Cell_Identification_gtpc cell_Identification optional,
+ BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional,
+ PS_HandoverXIDParameters_List pS_HandoverXIDParameters optional,
+ DirectTunnelFlags directTunnelFlags optional,
+ ReliableInterRATHandoverInfo reliableInterRATHandoverInfo optional,
+ RFSP_Index subscribedRFSP_Index optional,
+ RFSP_Index rFSP_IndexInUse optional,
+ FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional,
+ EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional,
+ ExtendedCommonFlags extendedCommonFlags optional,
+ CSG_Id cSG_Id optional,
+ CSG_MembershipIndication cSG_MembershipIndication optional,
+ UE_Network_Capability ue_network_capability optional,
+ UE_AMBR ue_ambr optional,
+ APN_AMBR_NSAPI apn_ambr_nsapi optional,
+ SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional,
+ Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional,
+ SRVCC_MM_Context srvcc_mm_context optional,
+ SRVCC_Flags srvcc_flags optional,
+ STN_SR stn_sr optional,
+ C_MSISDN c_msisdn optional,
+ Extended_RANAP_Cause extended_ranap_cause optional,
+ ENodeB_ID eNodeB_ID optional,
+ SelectionMode_NSAPI selectionMode_nsapi optional,
+ UE_UsageType uE_UsageType optional,
+ ExtendedCommonFlagsII extendedCommonFlagsII optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional //to be compatible with GTP 9.11.0
+};
+
+
+
+
+// Forward Relocation Response - 7.5.7
+type record ForwardRelocationResponse {
+ Cause_gtpc cause,
+ TeidControlPlane teidControlPlane optional,
+ TeidDataII_List teidDataII optional,
+ RANAPCause ranapCause optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ GSN_Address_GTPC sgsn_addr_traffic optional,
+ UTRANTransparentContainer transpContainer optional,
+ RABSetupInformation_List rabSetupInfo optional,
+ AdditionalRABSetupInformation_List additionalRABSetupInfo optional,
+ SGSN_Number sGSN_Number optional,
+ BSS_Container bSS_Container optional,
+ BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional,
+ ListOfSetupPFCs_gtpc listOfSetupPFCs_gtpc optional,
+ Extended_RANAP_Cause extended_ranap_cause optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Forward Relocation Complete - 7.5.8
+type record ForwardRelocationComplete {
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Relocation Cancel Request - 7.5.9
+type record RelocationCancelRequest {
+ IMSI_gtpc imsi optional,
+ IMEISV_gtpc imeisv_gtpc optional,
+ ExtendedCommonFlags extended_common_flags optional,
+ Extended_RANAP_Cause extended_ranap_cause optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Relocation Cancel Response - 7.5.10
+type record RelocationCancelResponse {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Forward Relocation Complete Acknowledge - 7.5.11
+type record ForwardRelocationCompleteAcknowledge {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// 60 Forward SRNS Context Acknowledge - 7.5.12
+type record ForwardSRNSContextAcknowledge {
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Forward SRNS Context - 7.5.13
+type record ForwardSRNSContext {
+ RABContext_List rabContext,
+ SourceRNC_PDCP_ContextInfo sourceRNC_PDCP_ContextInfo optional,
+ PDU_Numbers_List pDU_Numbers optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// RAN InformationRelay - 7.5.14.1
+type record RANInformationRelay{
+ RANTransparentContainer transparentContainer,
+ RIM_RoutingAddress rIM_RoutingAddress optional,
+ RIM_RoutingAddress_Discriminator rIM_RoutingAddress_Discriminator optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// UE Registration Query Request - 7.5.15
+type record UERegistrationQueryRequest {
+ IMSI_gtpc imsi,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// UE Registration Query Response - 7.5.16
+type record UERegistrationQueryResponse {
+ Cause_gtpc cause,
+ IMSI_gtpc imsi,
+ Selected_PLMN_ID selected_PLMN_ID optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// MBMS Notification Request - 7.5A.1.1
+type record MBMSNotificationRequest
+{
+ IMSI_gtpc imsi,
+ TeidControlPlane teidControlPlane,
+ NSAPI_GTPC nsapi,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC ggsn_addr_controlPlane,
+ MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Notification Response - 7.5A.1.2
+type record MBMSNotificationResponse
+{
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// MBMS Notification Reject Request - 7.5A.1.3
+type record MBMSNotificationRejectRequest
+{
+ Cause_gtpc cause,
+ TeidControlPlane teidControlPlane,
+ NSAPI_GTPC nsapi,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Notification Reject Response - 7.5A.1.4
+type record MBMSNotificationRejectResponse
+{
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// Create MBMS Context Request - 7.5A.1.5
+type record CreateMBMSContextRequest
+{
+ IMSI_gtpc imsi optional,
+ RoutingAreaIdentity rai,
+ Recovery_gtpc recovery optional,
+ SelectionMode selectionMode optional,
+ TeidControlPlane teidControlPlane optional,
+ TraceRef trace_ref optional,
+ GTP_TraceType trace_type optional,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC sGSNAddressForSignalling,
+ MSISDN msisdn optional,
+ GTP_TriggerID triggerId optional,
+ OMCIdentity omcId optional,
+ RATType ratType optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ IMEISV_gtpc imeisv optional,
+ MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
+ AdditionalTraceInfo additionalTraceInfo optional,
+ Enhanced_NSAPI enhanced_NSAPI,
+ AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Create MBMS Context Response - 7.5A.1.6
+type record CreateMBMSContextResponse
+{
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidControlPlane teidControlPlane optional,
+ ChargingID chargingID optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional,
+ MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
+ ChargingGatewayAddress chargingGatewayAddress optional,
+ ChargingGatewayAddress alt_chargingGatewayAddress optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Update MBMS Context Request - 7.5A.1.7
+type record UpdateMBMSContextRequest
+{
+ RoutingAreaIdentity rai,
+ Recovery_gtpc recovery optional,
+ TeidControlPlane teidControlPlane optional,
+ TraceRef trace_ref optional,
+ GTP_TraceType trace_type optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane,
+ GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional,
+ GTP_TriggerID triggerId optional,
+ OMCIdentity omcId optional,
+ RATType ratType optional,
+ UserLocationInformation userLocationInformation optional,
+ MS_TimeZone mS_TimeZone optional,
+ AdditionalTraceInfo additionalTraceInfo optional,
+ Enhanced_NSAPI enhanced_NSAPI,
+ AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Update MBMS Context Response - 7.5A.1.8
+type record UpdateMBMSContextResponse
+{
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidControlPlane teidControlPlane optional,
+ ChargingID chargingID optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional,
+ ChargingGatewayAddress chargingGatewayAddress optional,
+ ChargingGatewayAddress alt_chargingGatewayAddress optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Delete MBMS Context Request - 7.5A.1.9
+type record DeleteMBMSContextRequest
+{
+ IMSI_gtpc imsi optional,
+ TeidControlPlane teidControlPlane optional,
+ EndUserAddress endUserAddress optional,
+ AccessPointName accessPointName optional,
+ MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
+ Enhanced_NSAPI enhanced_NSAPI optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// Delete MBMS Context Response - 7.5A.1.10
+type record DeleteMBMSContextResponse
+{
+ Cause_gtpc cause,
+ MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Registration Request - 7.5A.2.1
+type record MBMSRegistrationRequest_gtpc
+{
+ TeidControlPlane teidControlPlane optional,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Registration Response - 7.5A.2.2
+type record MBMSRegistrationResponse_gtpc
+{
+ Cause_gtpc cause,
+ TeidControlPlane teidControlPlane optional,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ TMGI_gtpc tMGI optional,
+ RequiredMBMS_BearerCapabilities reqMBMS_BearerCapabilities optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS De-registration Request - 7.5A.2.3
+type record MBMSDeRegistrationRequest
+{
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// MBMS De-Registration Response - 7.5A.2.4
+type record MBMSDeRegistrationResponse
+{
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+
+// MBMS Session Start Request 7.5A.2.5
+type record MBMSSessionStartRequest
+{
+ Recovery_gtpc recovery optional,
+ TeidControlPlane teidControlPlane optional,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional,
+ QualityOfServiceProfile qualityOfServiceProfile,
+ CommonFlags commonFlags,
+ TMGI_gtpc tMGI,
+ MBMS_ServiceArea mBMS_ServiceArea,
+ MBMS_SessionIdentifier mBMS_SessionIdentifier optional,
+ MBMS_2G_3G_Indicator mBMS_2G_3G_Indicator,
+ MBMS_SessionDuration mBMS_SessionDuration,
+ MBMS_SessionRepetitionNumber mBMS_SessionRepetitionNumber optional,
+ MBMS_TimeToDataTransfer mBMS_TimeToDataTransfer,
+ MBMS_FlowID mBMS_FlowID optional,
+ MBMS_IPMulticastDistribution mBMS_IPMulticastDistribution optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// 117 MBMS Session Start Response 7.5A.2.6
+type record MBMSSessionStartResponse_gtpc
+{
+ Cause_gtpc cause,
+ Recovery_gtpc recovery optional,
+ TeidDataI teidDataI optional,
+ TeidControlPlane teidControlPlane optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ GSN_Address_GTPC sgsn_addr_traffic optional,
+ GSN_Address_GTPC alt_sgsn_addr_traffic optional,
+ MBMS_DistributionAcknowledgement mBMS_DistributionAcknowledgement optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Session Stop Request - 7.5A.2.7
+type record MBMSSessionStopRequest
+{
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ MBMS_FlowID mBMS_FlowID optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Session Stop Response - 7.5A.2.8
+type record MBMSSessionStopResponse_gtpc
+{
+ Cause_gtpc cause,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+}
+
+// MBMS Session Update Request - 7.5A.2.9
+type record MBMSSessionUpdateRequest
+{
+ TeidControlPlane teidControlPlane optional,
+ EndUserAddress endUserAddress,
+ AccessPointName accessPointName,
+ GSN_Address_GTPC ggsn_addr_controlPlane optional,
+ TMGI_gtpc tMGI,
+ MBMS_ServiceArea mBMS_ServiceArea,
+ MBMS_SessionIdentifier mBMS_SessionIdentifier optional,
+ MBMS_SessionDuration mBMS_SessionDuration,
+ MBMS_SessionRepetitionNumber mBMS_SessionRepetitionNumber optional,
+ MBMS_FlowID mBMS_FlowID optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MBMS Session Update Response - 7.5A.2.10
+type record MBMSSessionUpdateResponse
+{
+ Cause_gtpc cause,
+ TeidDataI teidDataI optional,
+ TeidControlPlane teidControlPlane optional,
+ GSN_Address_GTPC sgsn_addr_DataI optional,
+ GSN_Address_GTPC sgsn_addr_controlPlane optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MS Info Change Notification Request 7.5B.1.1
+type record MS_InfoChangeNotificationRequest
+{
+ IMSI_gtpc imsi optional,
+ NSAPI_GTPC linkedNSAPI optional,
+ RATType ratType,
+ UserLocationInformation userLocationInformation optional,
+ IMEISV_gtpc imeisv_gtpc optional,
+ ExtendedCommonFlags extended_common_flags optional,
+ UserCSGInformation userCSGInformation optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+// MS Info Change Notification Response 7.5B.1.2
+type record MS_InfoChangeNotificationResponse
+{
+ Cause_gtpc cause,
+ IMSI_gtpc imsi optional,
+ NSAPI_GTPC linkedNSAPI optional,
+ IMEISV_gtpc imeisv_gtpc optional,
+ MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
+ CSGInfoReportingAction cSGInfoReportingAction optional,
+ PrivateExtension_gtpc_List private_extension_gtpc optional
+};
+
+type union GTPC_PDUs {
+ EchoRequest echoRequest,
+ EchoResponse echoResponse,
+ VersionNotSupported versionNotSupported,
+ CreatePDPContextRequest createPDPContextRequest,
+ CreatePDPContextResponse createPDPContextResponse,
+ UpdatePDPContextRequest updatePDPContextRequest,
+ UpdatePDPContextResponse updatePDPContextResponse,
+ DeletePDPContextRequest deletePDPContextRequest,
+ DeletePDPContextResponse deletePDPContextResponse,
+ PDU_NotificationRequest pdu_NotificationRequest,
+ PDU_NotificationResponse pdu_NotificationResponse,
+ PDU_NotificationRejectRequest pdu_NotificationRejectRequest,
+ PDU_NotificationRejectResponse pdu_NotificationRejectResponse,
+ InitiatePDPContextActivationRequest initiatePDPContextActivationRequest,
+ InitiatePDPContextActivationResponse initiatePDPContextActivationResponse,
+ SupportedExtensionHeadersNotification supportedExtensionHeadersNotification,
+ SendRouteingInformationForGPRSRequest sendRouteingInformationForGPRSRequest,
+ SendRouteingInformationForGPRSResponse sendRouteingInformationForGPRSResponse,
+ FailureReportRequest failureReportRequest,
+ FailureReportResponse failureReportResponse,
+ NoteMS_GPRSPresentRequest noteMS_GPRSPresentRequest,
+ NoteMS_GPRSPresentResponse noteMS_GPRSPresentResponse,
+ IdentificationRequest identificationRequest,
+ IdentificationResponse identificationResponse,
+ SGSN_ContextRequest sgsn_ContextRequest,
+ SGSN_ContextResponse sgsn_ContextResponse,
+ SGSN_ContextAcknowledge sgsn_ContextAcknowledge,
+ ForwardRelocationRequest forwardRelocationRequest,
+ ForwardRelocationResponse forwardRelocationResponse,
+ ForwardRelocationComplete forwardRelocationComplete,
+ RelocationCancelRequest relocationCancelRequest,
+ RelocationCancelResponse relocationCancelResponse,
+ ForwardSRNSContext forwardSRNSContext,
+ ForwardRelocationCompleteAcknowledge forwardRelocationCompleteAcknowledge,
+ ForwardSRNSContextAcknowledge forwardSRNSContextAcknowledge,
+ UERegistrationQueryRequest uERegistrationQueryRequest,
+ UERegistrationQueryResponse uERegistrationQueryResponse,
+ RANInformationRelay ranInformationRelay,
+ MBMSNotificationRequest mBMSNotificationRequest,
+ MBMSNotificationResponse mBMSNotificationResponse,
+ MBMSNotificationRejectRequest mBMSNotificationRejectRequest,
+ MBMSNotificationRejectResponse mBMSNotificationRejectResponse,
+ CreateMBMSContextRequest createMBMSContextRequest,
+ CreateMBMSContextResponse createMBMSContextResponse,
+ UpdateMBMSContextRequest updateMBMSContextRequest,
+ UpdateMBMSContextResponse updateMBMSContextResponse,
+ DeleteMBMSContextRequest deleteMBMSContextRequest,
+ DeleteMBMSContextResponse deleteMBMSContextResponse,
+ MBMSRegistrationRequest_gtpc mBMSRegistrationRequest,
+ MBMSRegistrationResponse_gtpc mBMSRegistrationResponse,
+ MBMSDeRegistrationRequest mBMSDeRegistrationRequest,
+ MBMSDeRegistrationResponse mBMSDeRegistrationResponse,
+ MBMSSessionStartRequest mBMSSessionStartRequest,
+ MBMSSessionStartResponse_gtpc mBMSSessionStartResponse,
+ MBMSSessionStopRequest mBMSSessionStopRequest,
+ MBMSSessionStopResponse_gtpc mBMSSessionStopResponse,
+ MBMSSessionUpdateRequest mBMSSessionUpdateRequest,
+ MBMSSessionUpdateResponse mBMSSessionUpdateResponse,
+ MS_InfoChangeNotificationRequest mS_InfoChangeNotificationRequest,
+ MS_InfoChangeNotificationResponse mS_InfoChangeNotificationResponse
+} with { variant ""};
+
+
+/////////////////////////////
+// PDU definition
+/////////////////////////////
+type record PDU_GTPC {
+ BIT1 pn_bit,
+ BIT1 s_bit,
+ BIT1 e_bit,
+ BIT1 spare,
+ BIT1 pt,
+ BIT3 version,
+ OCT1 messageType,
+ LIN2_BO_LAST lengthf,
+ OCT4 teid,
+ GTPC_Header_optional_part opt_part optional,
+ GTPC_PDUs gtpc_pdu
+} with {
+ variant (lengthf) "LENGTHTO(opt_part, gtpc_pdu)";
+ variant (opt_part) "PRESENCE({pn_bit = '1'B, s_bit = '1'B, e_bit = '1'B})";
+ variant (gtpc_pdu) "CROSSTAG( echoRequest, messageType = '01'O;
+ echoResponse, messageType = '02'O;
+ versionNotSupported, messageType = '03'O;
+ createPDPContextRequest, messageType = '10'O;
+ createPDPContextResponse, messageType = '11'O;
+ updatePDPContextRequest, messageType = '12'O;
+ updatePDPContextResponse, messageType = '13'O;
+ deletePDPContextRequest, messageType = '14'O;
+ deletePDPContextResponse, messageType = '15'O;
+ initiatePDPContextActivationRequest, messageType = '16'O;
+ initiatePDPContextActivationResponse, messageType = '17'O;
+ pdu_NotificationRequest, messageType = '1B'O;
+ pdu_NotificationResponse, messageType = '1C'O;
+ pdu_NotificationRejectRequest, messageType = '1D'O;
+ pdu_NotificationRejectResponse, messageType = '1E'O;
+ supportedExtensionHeadersNotification, messageType ='1F'O;
+ sendRouteingInformationForGPRSRequest, messageType = '20'O;
+ sendRouteingInformationForGPRSResponse, messageType = '21'O;
+ failureReportRequest, messageType = '22'O;
+ failureReportResponse, messageType = '23'O;
+ noteMS_GPRSPresentRequest, messageType = '24'O;
+ noteMS_GPRSPresentResponse, messageType = '25'O;
+ identificationRequest, messageType = '30'O;
+ identificationResponse, messageType = '31'O;
+ sgsn_ContextRequest, messageType = '32'O;
+ sgsn_ContextResponse, messageType = '33'O;
+ sgsn_ContextAcknowledge, messageType = '34'O;
+ forwardRelocationRequest, messageType = '35'O;
+ forwardRelocationResponse, messageType = '36'O;
+ forwardRelocationComplete, messageType = '37'O;
+ relocationCancelRequest, messageType = '38'O;
+ relocationCancelResponse, messageType = '39'O;
+ forwardSRNSContext, messageType = '3A'O;
+ forwardRelocationCompleteAcknowledge, messageType = '3B'O;
+ forwardSRNSContextAcknowledge, messageType = '3C'O;
+ uERegistrationQueryRequest, messageType = '3D'O;
+ uERegistrationQueryResponse, messageType = '3F'O;
+ ranInformationRelay, messageType = '46'O;
+ mBMSNotificationRequest, messageType = '60'O;
+ mBMSNotificationResponse, messageType = '61'O;
+ mBMSNotificationRejectRequest, messageType = '62'O;
+ mBMSNotificationRejectResponse, messageType = '63'O;
+ createMBMSContextRequest, messageType = '64'O;
+ createMBMSContextResponse, messageType = '65'O;
+ updateMBMSContextRequest, messageType = '66'O;
+ updateMBMSContextResponse, messageType = '67'O;
+ deleteMBMSContextRequest, messageType = '68'O;
+ deleteMBMSContextResponse, messageType = '69'O;
+ mBMSRegistrationRequest, messageType = '70'O;
+ mBMSRegistrationResponse, messageType = '71'O;
+ mBMSDeRegistrationRequest, messageType = '72'O;
+ mBMSDeRegistrationResponse, messageType = '73'O;
+ mBMSSessionStartRequest, messageType = '74'O;
+ mBMSSessionStartResponse, messageType = '75'O;
+ mBMSSessionStopRequest, messageType = '76'O;
+ mBMSSessionStopResponse, messageType = '77'O;
+ mBMSSessionUpdateRequest, messageType = '78'O;
+ mBMSSessionUpdateResponse, messageType = '79'O;
+ mS_InfoChangeNotificationRequest, messageType = '80'O;
+ mS_InfoChangeNotificationResponse, messageType = '81'O
+ )";
+};
+
+type record GTPC_Header_optional_part {
+ OCT2 sequenceNumber,
+ OCT1 npduNumber,
+ OCT1 nextExtHeader,
+ GTPC_ExtensionHeader_List gTPC_extensionHeader_List optional
+}
+
+type record of GTPC_ExtensionHeader GTPC_ExtensionHeader_List;
+
+type record GTPC_ExtensionHeader {
+ integer lengthfield,
+ octetstring content,
+ octetstring nextExtHeader length(1)
+} with { variant (lengthfield) "LENGTHTO(lengthfield,content,nextExtHeader)";
+ variant (lengthfield) "UNIT(32)";
+};
+
+}//end of module
+with {
+extension "version R1B"
+encode "RAW"
+}
+
diff --git a/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_EncDec.cc b/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_EncDec.cc
new file mode 100644
index 00000000..a532eb7d
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_EncDec.cc
@@ -0,0 +1,119 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: GTPU_EncDec.cc
+// Rev: R1B
+// Prodnr: CNL 113 843
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 29.060 v13.5.0
+
+#include "GTPU_Types.hh"
+
+namespace GTPU__Types {
+
+// find the length of the optional part and decode optional part into OPT_PART
+int find_optpart_length(const unsigned char * opt_part_ptr,GTPU__Header__optional__part& OPT_PART)// pointer to opt part start
+{
+ int opt_part_length = 4; // mandatory minimum length of opt_part
+ OPT_PART.sequenceNumber() = OCTETSTRING(2,opt_part_ptr);
+ OPT_PART.npduNumber() = OCTETSTRING(1,opt_part_ptr+2);
+ OPT_PART.nextExtHeader() = OCTETSTRING(1,opt_part_ptr+3);
+ OPT_PART.gTPU__extensionHeader__List() = OMIT_VALUE;
+
+ int i = 0;
+ bool opt_part_end = false;
+ while(!opt_part_end)
+ {
+ if (opt_part_ptr[opt_part_length-1] != 0x00) // 0x00 means end of optional part
+ {
+ unsigned char lengthfield = opt_part_ptr[opt_part_length];
+
+ OPT_PART.gTPU__extensionHeader__List()()[i].lengthfield() = lengthfield;
+ OPT_PART.gTPU__extensionHeader__List()()[i].content() =
+ OCTETSTRING(4*lengthfield-2,opt_part_ptr + opt_part_length +1);
+ OPT_PART.gTPU__extensionHeader__List()()[i].nextExtHeader() =
+ OCTETSTRING(1,opt_part_ptr + opt_part_length + 4*lengthfield - 1);
+
+ opt_part_length = opt_part_length + 4*lengthfield;
+ i++;
+ }
+ else
+ {opt_part_end = true;}
+ }
+
+ return opt_part_length;
+}
+
+//////////////////////////////////
+// Decoding function for GTPC__DialoguePDU
+//////////////////////////////////
+PDU__GTPU dec__PDU__GTPU(const OCTETSTRING& udp__pdu)
+{
+ TTCN_Buffer buf;
+ PDU__GTPU pdu;
+
+ const unsigned char *gtpu_message = (const unsigned char *) udp__pdu;
+
+ int opt_part_length = 0;
+ if ( gtpu_message[0] & 0x07 ) // opt_part is present
+ {
+ GTPU__Header__optional__part OPT_PART;
+
+ // find the length of the optional part and decode optional part into OPT_PART
+ opt_part_length = find_optpart_length(gtpu_message+8,OPT_PART);
+ if( ((gtpu_message[2] << 8) + gtpu_message[3] - opt_part_length) < 0 )
+ {TTCN_error("Decoding error, lengthf field is shorter that decoded length of opt_part");};
+
+ // build PDU without optional part
+ unsigned int gtpu_IEs_length = (gtpu_message[2] << 8) + gtpu_message[3] - opt_part_length;
+ unsigned char gtpuBuf[8 + gtpu_IEs_length];
+ memcpy(gtpuBuf,gtpu_message,8);
+ memcpy(gtpuBuf+8,gtpu_message+8+opt_part_length,gtpu_IEs_length);
+
+ // substitute dummy bits (indicating there is no optional part)
+ gtpuBuf[0] = gtpuBuf[0] & 0xf8;
+
+ // substitute dummy length (not including optional part)
+ gtpuBuf[2] = (gtpu_IEs_length & 0xff00) >> 8;
+ gtpuBuf[3] = gtpu_IEs_length & 0xff;
+
+ // RAW decoding
+ buf.put_s(8 + gtpu_IEs_length,gtpuBuf);
+ pdu.decode(PDU__GTPU_descr_, buf, TTCN_EncDec::CT_RAW);
+ buf.clear();
+
+ // put back the original values
+ unsigned char pn = gtpu_message[0] & 0x01;
+ pdu.pn__bit() = BITSTRING(1,&pn);
+
+ unsigned char s = (gtpu_message[0] & 0x02) >> 1;
+ pdu.s__bit() = BITSTRING(1,&s);
+
+ unsigned char e = (gtpu_message[0] & 0x04) >> 2;
+ pdu.e__bit() = BITSTRING(1,&e);
+
+ pdu.lengthf() = (gtpu_message[2] << 8) + gtpu_message[3];
+
+ pdu.opt__part() = OPT_PART;
+
+ return pdu;
+ }
+ else // opt_part is not present
+ {
+ buf.put_os(udp__pdu);
+ pdu.decode(PDU__GTPU_descr_, buf, TTCN_EncDec::CT_RAW);
+ buf.clear();
+ return pdu;
+ }
+} // end of function
+
+
+}//namespace
diff --git a/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_Types.ttcn b/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_Types.ttcn
new file mode 100644
index 00000000..2911b703
--- /dev/null
+++ b/GTP_v13.5.0_CNL113843_LATEST/src/GTPU_Types.ttcn
@@ -0,0 +1,189 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2016 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: GTPU_Types.ttcn
+// Rev: R1B
+// Prodnr: CNL 113 843
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 29.060 v13.5.0, 3GPP TS 29.281 v13.2.0
+//
+// This module contains the GTP-U (General Packet Radio Servive Protocol
+// Tunnelling Protocol - User Plane)
+
+module GTPU_Types {
+
+import from General_Types all;
+
+// external encoding/decoding functions
+external function enc_PDU_GTPU(in PDU_GTPU gtpu_pdu) return octetstring
+with { extension "prototype(convert)"
+ extension "encode(RAW)"
+}
+
+external function dec_PDU_GTPU(in octetstring udp_pdu) return PDU_GTPU
+
+external function dec_PDU_GTPU_ext(in octetstring udp_pdu) return PDU_GTPU_ext
+with { extension "prototype(convert)"
+ extension "decode(RAW)"
+}
+
+
+
+//////////////////////////
+// IE definition
+//////////////////////////
+//Private Extension - 7.7.46
+type record of PrivateExtension_gtpu PrivateExtension_gtpu_List;
+
+type record PrivateExtension_gtpu {
+ OCT1 type_gtpu,
+ LIN2_BO_LAST lengthf,
+ OCT2 extensionID,
+ octetstring extensionValue
+} with { variant "PRESENCE( type_gtpu = 'FF'O)";
+ variant (lengthf) "LENGTHTO(extensionID, extensionValue)";};
+
+//Recovery - 7.7.11
+type record Recovery_gtpu {
+ OCT1 type_gtpu,
+ OCT1 restartCounter
+};
+
+//Extension Header Type List - 7.7.40
+type record ExtensionHeaderTypeList_gtpu {
+ OCT1 type_gtpu,
+ integer lengthf,
+ octetstring extensionTypesList
+} with { variant (lengthf) "LENGTHTO(extensionTypesList)"; }
+
+//Tunnel Endpoint Identifier Data I - 7.7.13
+type record TeidDataI_gtpu {
+ OCT1 type_gtpu,
+ OCT4 teidDataI
+};
+
+//GSN Address - 7.7.32
+type record GSNAddress_gtpu
+{
+ OCT1 type_gtpu,
+ LIN2_BO_LAST lengthf,
+ octetstring gSNAddressValue
+} with {variant (lengthf) "LENGTHTO(gSNAddressValue)";};
+
+//////////////////////////
+// Message definition
+//////////////////////////
+// Echo Request - 7.2.1
+type record EchoRequest_IEs {
+ PrivateExtension_gtpu_List private_extension_gtpu optional
+}
+
+// Echo Response - 7.2.2
+type record EchoResponse_IEs {
+ Recovery_gtpu recovery_gtpu,
+ PrivateExtension_gtpu_List private_extension_gtpu optional
+}
+
+//Error Indication - 3GPP TS 29.281 v13.2.0 - 7.3.1
+type record ErrorIndication_IEs {
+ TeidDataI_gtpu teidDataI_gtpu,
+ GSNAddress_gtpu gSNAddress_gtpu,
+ PrivateExtension_gtpu_List private_extension_gtpu optional
+}
+
+//Supported Extension Headers Notification - 7.2.4
+type record SupportedExtensionHeadersNotification_IEs {
+ ExtensionHeaderTypeList_gtpu extensionHeaderTypeList_gtpu
+};
+
+// 3GPP TS 29.281 v9.3.0 - 7.3.2
+type record EndMarker_IEs{
+ PrivateExtension_gtpu_List private_extension_gtpu optional
+}
+
+//G PDU - 9.3.1
+type record G_PDU_IEs {
+ octetstring data
+};
+
+
+type union GTPU_IEs {
+ EchoRequest_IEs echoRequest_IEs,
+ EchoResponse_IEs echoResponse_IEs,
+ ErrorIndication_IEs errorIndication_IEs,
+ SupportedExtensionHeadersNotification_IEs suppExtHeadersNotif_IEs,
+ EndMarker_IEs endMarker_IEs,
+ G_PDU_IEs g_PDU_IEs
+};
+
+
+//////////////////////////
+// Extension Header definition
+//////////////////////////
+type record GTPU_ExtensionHeader {
+ integer lengthfield,
+ octetstring content,
+ OCT1 nextExtHeader
+} with {
+ variant (lengthfield) "LENGTHTO(lengthfield,content,nextExtHeader)";
+ variant (lengthfield) "UNIT(32)";
+ }
+
+type record of GTPU_ExtensionHeader GTPU_ExtensionHeader_List;
+
+type record GTPU_Header_optional_part {
+ OCT2 sequenceNumber,
+ OCT1 npduNumber,
+ OCT1 nextExtHeader,
+ GTPU_ExtensionHeader_List gTPU_extensionHeader_List optional
+}
+
+
+//////////////////////////
+// PDU definition
+//////////////////////////
+type record PDU_GTPU {
+ BIT1 pn_bit,
+ BIT1 s_bit,
+ BIT1 e_bit,
+ BIT1 spare,
+ BIT1 pt,
+ BIT3 version,
+ OCT1 messageType,
+ LIN2_BO_LAST lengthf,
+ OCT4 teid,
+ GTPU_Header_optional_part opt_part optional,
+ GTPU_IEs gtpu_IEs
+} with {
+ variant (lengthf) "LENGTHTO(opt_part, gtpu_IEs)";
+ variant (opt_part) "PRESENCE({pn_bit = '1'B, s_bit = '1'B, e_bit = '1'B})";
+ variant (gtpu_IEs) "CROSSTAG( echoRequest_IEs, messageType = '01'O;
+ echoResponse_IEs, messageType = '02'O;
+ errorIndication_IEs, messageType = '1A'O;
+ suppExtHeadersNotif_IEs, messageType = '1F'O;
+ endMarker_IEs, messageType = 'FE'O;
+ g_PDU_IEs, messageType = 'FF'O)";
+ };
+
+
+type record PDU_GTPU_ext {
+ PDU_GTPU gtpu_pdu,
+ octetstring extraOctets
+} with {
+ variant "" ;
+};
+
+}//end of module
+with {
+extension "version R1B"
+encode "RAW"
+}
+
diff --git a/GTPv2_v13.7.0_CNL113846_LATEST/GTPv2_v13.7.0_CNL113846.tpd b/GTPv2_v13.7.0_CNL113846_LATEST/GTPv2_v13.7.0_CNL113846.tpd
new file mode 100644
index 00000000..51abbd2e
--- /dev/null
+++ b/GTPv2_v13.7.0_CNL113846_LATEST/GTPv2_v13.7.0_CNL113846.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 Ericsson
+
+ The copyright to the computer program(s) herein is the property of Ericsson.
+ The program(s) may be used and/or copied only with the written permission
+ of Ericsson or in accordance with the terms and conditions stipulated in the
+ agreement/contract under which the program(s) has been supplied.
+
+
+ File: GTPv2_v13.7.0_CNL113846.tpd
+ Description: tpd project file
+ Rev: R1E
+ Prodnr: CNL 113 846
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>GTPv2_v13.7.0_CNL113846</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="GTPv2_PrivateExtensions_CNL113798" projectLocationURI="../GTPv2_PrivateExtensions_CNL113798/GTPv2_PrivateExtensions_CNL113798.tpd"/>
+ <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+ </ReferencedProjects>
+ <Files>
+ <FileResource projectRelativePath="GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <generateInternalMakefile>true</generateInternalMakefile>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/GTPv2_v13.7.0_CNL113846</targetExecutable>
+ <buildLevel>Level3-Creatingobjectfileswithdependencyupdate</buildLevel>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information>
diff --git a/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_Descr.doc b/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_Descr.doc
new file mode 100644
index 00000000..7a6bf7f0
--- /dev/null
+++ b/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_Descr.doc
Binary files differ
diff --git a/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_PRI.doc b/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_PRI.doc
new file mode 100644
index 00000000..39bf67f7
--- /dev/null
+++ b/GTPv2_v13.7.0_CNL113846_LATEST/doc/GTPv2_v13.7_PRI.doc
Binary files differ
diff --git a/GTPv2_v13.7.0_CNL113846_LATEST/src/GTPv2_Types.ttcn b/GTPv2_v13.7.0_CNL113846_LATEST/src/GTPv2_Types.ttcn
new file mode 100644
index 00000000..1488f6c0
--- /dev/null
+++ b/GTPv2_v13.7.0_CNL113846_LATEST/src/GTPv2_Types.ttcn
@@ -0,0 +1,4801 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Copyright Test Competence Center (TCC) ETH 2017 //
+// //
+// 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) has been supplied. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+//
+// File: GTPv2_Types.ttcn
+// Description: GTPv2 protocol module
+// Rev: R1E
+// Prodnr: CNL 113 846
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 29.274 v13.7.0
+//
+
+
+module GTPv2_Types
+{
+import from General_Types all;
+import from GTPv2_PrivateExtensions all;
+
+external function enc_PDU_GTPCv2(in PDU_GTPCv2 pdu) return octetstring
+with { extension "prototype(convert)" extension "encode(RAW)" }
+
+external function dec_PDU_GTPCv2(in octetstring stream) return PDU_GTPCv2
+with { extension "prototype(convert)" extension "decode(RAW)" }
+
+external function enc_PDU_GTPCv2_fast(in PDU_GTPCv2 pdu, out octetstring stream)
+with { extension "prototype(fast) encode(RAW)" }
+
+external function dec_PDU_GTPCv2_backtrack(in octetstring stream, out PDU_GTPCv2 pdu) return integer
+with { extension "prototype(backtrack) decode(RAW)" }
+
+
+// Information Elements
+
+//8.2.1A For future use
+type record Special_IE_Type_Extension
+{
+ OCT1 elementIdentifier, // dec 254, 'FE'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ IE_Extension_UnionType iE_Type_Extension
+} with {
+ variant (lengthIndicator) "LENGTHTO(iE_Type_Extension)";
+ variant "PRESENCE (elementIdentifier = 'FE'O; )";
+};
+
+type union IE_Extension_UnionType
+{
+ IE_Type_Extension iE_Type_Extension
+}
+
+type record IE_Type_Extension
+{
+ OCT2 elementIdentifier,
+ octetstring valueField
+}
+
+// 8.3
+type record IMSI
+{
+ OCT1 elementIdentifier, //dec 1, '01'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ hexstring iMSI_Value
+} with {
+ variant "PRESENCE (elementIdentifier = '01'O;)"
+ variant (lengthIndicator) "LENGTHTO(iMSI_Value)"
+ variant (iMSI_Value) "PADDING(yes)";
+ variant (iMSI_Value) "PADDING_PATTERN('1'B)"
+};
+
+// 8.4
+type record Cause
+{
+ OCT1 elementIdentifier, //dec 2, '02'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 causeValue,
+ BIT1 cS,
+ BIT1 bCE,
+ BIT1 pCE,
+ BIT5 spare2,
+ OCT1 typeOfOffendingIE optional,
+ LIN2_BO_LAST lengthIndicator2 optional,
+ BIT4 instanceOfOffendingIE optional,
+ BIT4 spare3 optional
+} with {
+ variant "PRESENCE (elementIdentifier = '02'O; )"
+ variant (lengthIndicator) "LENGTHTO(causeValue,cS,bCE,pCE,spare2,typeOfOffendingIE,
+ lengthIndicator2,instanceOfOffendingIE,spare3 )"
+};
+
+// 8.5
+type record Recovery
+{
+ OCT1 elementIdentifier, // dec 3, '03'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer recoveryValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(recoveryValue)"
+ variant "PRESENCE (elementIdentifier = '03'O; )"
+};
+
+// 8.6
+type record AccessPointName
+{
+ OCT1 elementIdentifier, // dec 71, '47'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring aPN_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(aPN_Value)"
+ variant "PRESENCE (elementIdentifier = '47'O; )"
+};
+
+// 8.7
+type record AggregateMaximumBitRate
+{
+ OCT1 elementIdentifier, // dec 72, '48'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 aPN_AMBR_for_uplink,
+ OCT4 aPN_AMBR_for_downlink
+} with {
+ variant (lengthIndicator) "LENGTHTO(aPN_AMBR_for_uplink,aPN_AMBR_for_downlink)"
+ variant "PRESENCE (elementIdentifier = '48'O; )"
+};
+
+//8.8
+type record EPS_BearerID
+{
+ OCT1 elementIdentifier, // dec 73, '49'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer ePS_Bearer_ID_Value,
+ BIT4 spare2, //'0000'B
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(ePS_Bearer_ID_Value,spare2,additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '49'O; )"
+ variant(ePS_Bearer_ID_Value) "FIELDLENGTH(4)";
+};
+
+type set of EPS_BearerID EPS_BearerID_List;
+
+//8.9
+type union IPv4_IPv6_Address{
+ OCT4 iPv4_Address,
+ OCT16 iPv6_Address
+};
+
+type record IP_Address
+{
+ OCT1 elementIdentifier, // dec 74, '4A'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ IPv4_IPv6_Address iPv4_IPv6_Address
+} with {
+ variant (lengthIndicator) "LENGTHTO(iPv4_IPv6_Address)"
+ variant "PRESENCE (elementIdentifier = '4A'O; )"
+ variant (iPv4_IPv6_Address) "CROSSTAG( iPv4_Address, lengthIndicator = 4;
+ iPv6_Address, lengthIndicator = 16)"
+};
+
+type set of IP_Address IP_Address_List;
+
+//8.10
+type record MEI
+{
+ OCT1 elementIdentifier, // dec 75, '4B'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring mEI_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(mEI_Value)"
+ variant "PRESENCE (elementIdentifier = '4B'O; )"
+};
+
+//8.11
+type record MSISDN
+{
+ OCT1 elementIdentifier, // dec 76, '4C'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ hexstring mSISDN_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(mSISDN_Value)"
+ variant "PRESENCE (elementIdentifier = '4C'O; )"
+ variant (mSISDN_Value) "PADDING(yes)";
+ variant (mSISDN_Value) "PADDING_PATTERN('1'B)"
+
+};
+
+type set of MSISDN MSISDN_List;
+
+//8.12
+type record Indication
+{
+ OCT1 elementIdentifier, // dec 77, '4D'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 sGWCI,
+ BIT1 iSRAI,
+ BIT1 iSRSI,
+ BIT1 oI,
+ BIT1 dFI,
+ BIT1 hI,
+ BIT1 dTF,
+ BIT1 dAF,
+ BIT1 mSV,
+ BIT1 sI,
+ BIT1 pT,
+ BIT1 pBit,
+ BIT1 cRSI,
+ BIT1 cFSI,
+ BIT1 uIMSI,
+ BIT1 sQCI,
+ BIT1 cCRSI optional,
+ BIT1 iSRAU optional,
+ BIT1 mBMDT optional,
+ BIT1 s4AF optional,
+ BIT1 s6AF optional,
+ BIT1 sRNI optional,
+ BIT1 pBIC optional,
+ BIT1 retLoc optional,
+ BIT1 cPSR optional,
+ BIT1 cLII optional,
+ BIT1 cSFBI optional,
+ BIT1 pPSI optional,
+ BIT1 pPON_PPEI optional,
+ BIT1 pPOF optional,
+ BIT1 aRRL optional,
+ BIT1 cPRAI optional,
+ BIT1 aOPI optional,
+ BIT1 aOSI optional,
+ BIT1 pCRI optional,
+ BIT1 pSCI optional,
+ BIT1 bDWI optional,
+ BIT1 dTCI optional,
+ BIT1 uASI optional,
+ BIT1 nSI optional,
+ BIT1 wPMSI optional,
+ BIT1 uNACCSI optional,
+ BIT1 pNSI optional,
+ BIT1 s11TF optional,
+ BIT1 pMTSMI optional,
+ BIT1 cPOPCI optional,
+ BIT1 ePCOSI optional,
+ BIT1 rOAAI optional,
+ BIT1 tSPCMI optional,
+ BIT1 spare_1 optional,
+ BIT1 spare_2 optional,
+ BIT1 spare_3 optional,
+ BIT1 spare_4 optional,
+ BIT1 spare_5 optional,
+ BIT1 spare_6 optional,
+ BIT1 spare_7 optional,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(sGWCI,iSRAI,iSRSI,oI,dFI,hI,dTF,dAF,
+ mSV,sI,pT,pBit,cRSI,cFSI,uIMSI,sQCI,
+ cCRSI, iSRAU,mBMDT,s4AF,s6AF,sRNI,pBIC,retLoc,
+ cPSR,cLII,cSFBI,pPSI,pPON_PPEI,pPOF,aRRL,cPRAI,aOPI,aOSI,pCRI,pSCI,bDWI,dTCI,uASI,nSI,
+ wPMSI,uNACCSI,pNSI,s11TF,pMTSMI,cPOPCI,ePCOSI,rOAAI, tSPCMI, spare_1, spare_2, spare_3, spare_4, spare_5, spare_6, spare_7, additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '4D'O; )"
+};
+
+type set of Indication Indication_List;
+
+//8.13
+// 24.301 (9.9.4.8) -> 24.008 (10.5.6.3)
+type set of ProtocolID_or_ContainerID ProtocolIDs_and_ContainerIDs;
+
+type record ProtocolID_or_ContainerID
+{
+ OCT2 protocolID_or_ContainerID,
+ LIN1 lengthIndicator,
+ octetstring protID_orContID_Contents
+} with { variant (lengthIndicator) "LENGTHTO (protID_orContID_Contents)"};
+
+type record ProtocolConfigOptions
+{
+ OCT1 elementIdentifier, // dec 78 '4E'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 configProtocol,
+ BIT4 spare2, //'0000'B
+ BIT1 extensionField, //'1'B
+ ProtocolIDs_and_ContainerIDs protocolIDs_and_ContainerIDs optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(configProtocol,spare2,extensionField,protocolIDs_and_ContainerIDs)"
+ variant "PRESENCE (elementIdentifier = '4E'O; )"
+};
+
+//8.14
+type union PDN_Address_and_Prefix{
+ OCT4 iPv4_Address,
+ IPv6 iPv6_Address,
+ IPv4_IPv6 iPv4_IPv6
+};
+
+type record IPv6
+{
+ integer prefixLength,
+ OCT16 iPv6_Address
+};
+
+type record IPv4_IPv6
+{
+ integer prefixLength,
+ OCT16 iPv6_Address,
+ OCT4 iPv4_Address
+};
+
+type record PDN_AddressAllocation
+{
+ OCT1 elementIdentifier, // dec 79 '4F'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 pDN_Type,
+ BIT5 spare2, //'00000'B
+ PDN_Address_and_Prefix pDN_Address_and_Prefix optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pDN_Type,spare2,pDN_Address_and_Prefix)"
+ variant "PRESENCE (elementIdentifier = '4F'O; )"
+ variant (pDN_Address_and_Prefix) "CROSSTAG
+ (
+ iPv4_Address, pDN_Type ='001'B;
+ iPv6_Address, pDN_Type ='010'B;
+ iPv4_IPv6, pDN_Type ='011'B;
+ )"
+};
+
+//8.15
+type record Bearer_QoS
+{
+ OCT1 elementIdentifier, // dec 80 '50'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 pVI,
+ BIT1 spare2,
+ BIT4 pL,
+ BIT1 pCI,
+ BIT1 spare3,
+ OCT1 labelQCI,
+ OCT5 maxBitrateUplink,
+ OCT5 maxBitrateDownLink,
+ OCT5 guaranteedBitrateUplink,
+ OCT5 guaranteedBitrateDownLink,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pVI,spare2,pL,pCI,spare3,
+ labelQCI,maxBitrateUplink,maxBitrateDownLink,
+ guaranteedBitrateUplink,guaranteedBitrateDownLink,additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '50'O; )"
+};
+
+//8.16
+type record FlowQoS
+{
+ OCT1 elementIdentifier, // dec 81 '51'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 labelQCI,
+ OCT5 maxBitrateUplink,
+ OCT5 maxBitrateDownLink,
+ OCT5 guaranteedBitrateUplink,
+ OCT5 guaranteedBitrateDownLink,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(labelQCI,maxBitrateUplink,maxBitrateDownLink,guaranteedBitrateUplink,guaranteedBitrateDownLink,additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '51'O; )"
+};
+
+//8.17
+type record RAT_Type
+{
+ OCT1 elementIdentifier, // dec 82, '52'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer rAT_TypeValue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(rAT_TypeValue,additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '52'O; )"
+};
+
+//8.18
+type record ServingNetwork
+{
+ OCT1 elementIdentifier, // dec 83, '53'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2,additionalOctets)"
+ variant "PRESENCE (elementIdentifier = '53'O; )"
+};
+
+//8.19 24.008 10.5.6.12
+type union TrafficFlowTemplateV
+{
+ TrafficFlowTemplateV_CreateAddReplaceTFT
+ trafficFlowTemplateV_CreateAddReplaceTFT,
+ TrafficFlowTemplateV_DeletePacketFilter
+ trafficFlowTemplateV_DeletePacketFilter,
+ TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation
+ trafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation
+};
+
+
+type record TrafficFlowTemplateV_CreateAddReplaceTFT
+{
+ integer numberOfPacketFilters,
+ BIT1 eBIT,
+ BIT3 operationCodeTFT,
+ PacketFilterList_CreateAddReplaceTFT packetFilterList_CreateAddReplaceTFT,
+ ParametersList parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '001'B, // Create New TFT
+ operationCodeTFT = '011'B, // Add packet filters to existing TFT
+ operationCodeTFT = '100'B // Replace packet filters in existing TFT
+ )";
+ variant(parametersList) "PRESENCE(eBIT = '1'B)";
+ variant(numberOfPacketFilters)"FIELDLENGTH(4)";
+ variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_CreateAddReplaceTFT)";
+ variant(numberOfPacketFilters)"UNIT(elements)";
+};
+
+
+type record TrafficFlowTemplateV_DeletePacketFilter
+{
+ integer numberOfPacketFilters,
+ BIT1 eBIT,
+ BIT3 operationCodeTFT,
+ //'101'B or '011'B or '100'B
+ PacketFilterList_DeletePacketFilter packetFilterList_DeletePacketFilter,
+ ParametersList parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '101'B)" // Delete packet filters from existing TFT
+ variant(parametersList) "PRESENCE(eBIT = '1'B)";
+ variant(numberOfPacketFilters)"FIELDLENGTH(4)";
+ variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_DeletePacketFilter)";
+ variant (numberOfPacketFilters)"UNIT(elements)";
+};
+
+
+type record TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation
+{
+ BIT4 numberOfPacketFilters, //'0000'B
+ // numberOfPacketFilters is meaningless here since there is no PacketFilterList
+ BIT1 eBIT,
+ BIT3 operationCodeTFT, // '010'B or '110'B
+ ParametersList parametersList optional
+} with {
+ variant "PRESENCE (operationCodeTFT = '010'B, // delete existing TFT
+ operationCodeTFT = '110'B // No TFT Operation
+ )";
+ variant (parametersList) "PRESENCE(eBIT = '1'B)"
+};
+
+
+type record of PacketFilter PacketFilterList_CreateAddReplaceTFT;
+
+
+type record PacketFilter
+{
+ PacketFilterIdentifier identifier,
+ OCT1 evaluationPrecedence,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+
+type record of PacketFilterIdentifier PacketFilterList_DeletePacketFilter;
+
+type record PacketFilterIdentifier
+{
+ BIT4 identifier,
+ BIT2 direction,
+ BIT2 spare
+};
+
+
+type record of Parameter ParametersList;
+
+
+type record Parameter
+{
+ OCT1 parameterIdentifier,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+
+type record EPS_BearerLevel_TFT
+{
+ OCT1 elementIdentifier, // dec 84, '54'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ TrafficFlowTemplateV trafficFlowTemplateValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(trafficFlowTemplateValue)"
+ variant "PRESENCE (elementIdentifier = '54'O; )";
+};
+
+type set of EPS_BearerLevel_TFT EPS_BearerLevel_TFT_List;
+
+//8.20
+type record TrafficAggregateDescription
+{
+ OCT1 elementIdentifier, // dec 85, '55'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring trafficAggregateDescriptionValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(trafficAggregateDescriptionValue)"
+ variant "PRESENCE (elementIdentifier = '55'O; )";
+};
+
+//8.21
+type record UserLocationInfo
+{
+ OCT1 elementIdentifier, // dec 86, '56'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 cGI_Flag,
+ BIT1 sAI_Flag,
+ BIT1 rAI_Flag,
+ BIT1 tAI_Flag,
+ BIT1 eCGI_Flag,
+ BIT1 lAI_Flag,
+ BIT2 spare2,
+ CGI cGI optional,
+ SAI sAI optional,
+ RAI rAI optional,
+ TAI tAI optional,
+ ECGI eCGI optional,
+ LAI lAI optional,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(cGI_Flag,sAI_Flag,rAI_Flag,tAI_Flag,eCGI_Flag,
+ lAI_Flag,spare2,cGI,sAI,rAI,tAI,eCGI,lAI,additionalOctets)"
+ variant(cGI) "PRESENCE(cGI_Flag = '1'B)";
+ variant(sAI) "PRESENCE(sAI_Flag = '1'B)";
+ variant(rAI) "PRESENCE(rAI_Flag = '1'B)";
+ variant(tAI) "PRESENCE(tAI_Flag = '1'B)";
+ variant(eCGI) "PRESENCE(eCGI_Flag = '1'B)";
+ variant(lAI) "PRESENCE(lAI_Flag = '1'B)";
+ variant "PRESENCE (elementIdentifier = '56'O; )"
+};
+
+//8.21.1
+type record CGI
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lAC,
+ OCT2 cI
+};
+
+//8.21.2
+type record SAI
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lAC,
+ OCT2 sAC
+};
+
+//8.21.3
+type record RAI
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lAC,
+ OCT2 rAC
+};
+
+//8.21.4
+type record TAI
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 tAC
+};
+
+//8.21.5
+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)";
+};
+
+//8.21.6
+type record LAI
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lAC
+}
+
+//8.22
+type record FullyQualifiedTEID
+{
+ OCT1 elementIdentifier, // dec 87, '57'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer interfaceType,
+ BIT1 v6_Flag,
+ BIT1 v4_Flag,
+ OCT4 tEID_GRE_Key,
+ OCT4 iPv4_Address optional,
+ OCT16 iPv6_Address optional,
+ octetstring additionalOctets optional
+} with {
+ variant "PRESENCE (elementIdentifier = '57'O; )"
+ variant (lengthIndicator) "LENGTHTO(interfaceType,v6_Flag,v4_Flag,tEID_GRE_Key,
+ iPv4_Address,iPv6_Address,additionalOctets)"
+ variant(interfaceType) "FIELDLENGTH(6)";
+ variant(iPv4_Address) "PRESENCE(v4_Flag = '1'B)";
+ variant(iPv6_Address) "PRESENCE(v6_Flag = '1'B)";
+};
+
+type set of FullyQualifiedTEID FullyQualifiedTEID_List;
+
+//8.23
+type record TMSI
+{
+ OCT1 elementIdentifier, // dec 88, '58'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 tMSI_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(tMSI_Value)";
+ variant "PRESENCE (elementIdentifier = '58'O; )";
+};
+
+//8.24
+type record GlobalCN_ID
+{
+ OCT1 elementIdentifier, // dec 89, '59'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ octetstring cN_ID
+} with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2,cN_ID)"
+ variant "PRESENCE (elementIdentifier = '59'O; )";
+};
+
+//8.25
+type record EPS_Bearer_ID
+{
+ integer ePS_Bearer_ID_Value,
+ BIT4 spare // '0000'B
+} with {
+ variant(ePS_Bearer_ID_Value) "FIELDLENGTH(4)";}
+
+type set of EPS_Bearer_ID EPS_Bearer_IDs;
+
+type record S103_PDF
+{
+ OCT1 elementIdentifier,// dec 90, '5A'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer hSGW_AddrForForwardingLength (4,16),
+ octetstring hSGW_AddrForForwarding length (4..16),
+ OCT4 gRE_Key,
+ integer ePSBearerID_Number,
+ EPS_Bearer_IDs ePS_Bearer_IDs
+} with {
+ variant (lengthIndicator) "LENGTHTO(hSGW_AddrForForwardingLength,hSGW_AddrForForwarding,gRE_Key,ePSBearerID_Number,ePS_Bearer_IDs)";
+ variant "PRESENCE (elementIdentifier = '5A'O; )";
+ variant (hSGW_AddrForForwardingLength) "LENGTHTO(hSGW_AddrForForwarding)";
+ variant (ePSBearerID_Number) "LENGTHTO(ePS_Bearer_IDs)";
+ variant (ePSBearerID_Number) "UNIT (elements)";
+};
+
+type set of S103_PDF S103_PDF_List
+
+//8.26
+type record S1_UDF
+{
+ OCT1 elementIdentifier, // dec 91, '5B'O;
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer ePS_Bearer_ID_Value,
+ BIT4 spare2, // '0000'B
+ integer servingGWAddrLength (0,4,16),
+ octetstring servingGWAddr length (4..16) optional,
+ OCT4 servingGW_S1U_TEID
+} with {
+ variant (lengthIndicator) "LENGTHTO(ePS_Bearer_ID_Value,spare2,servingGWAddrLength,servingGWAddr,servingGW_S1U_TEID)";
+ variant "PRESENCE (elementIdentifier = '5B'O; )";
+ variant(ePS_Bearer_ID_Value) "FIELDLENGTH(4)";
+ variant (servingGWAddrLength) "LENGTHTO(servingGWAddr)";
+};
+
+type set of S1_UDF S1_UDF_List
+
+//8.27
+type record DelayValue
+{
+ OCT1 elementIdentifier, // dec 92 , '5C'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer delayValue, //(integer multiples of 50 millisec)
+ octetstring additionalOctets optional
+}
+with {
+ variant (lengthIndicator) "LENGTHTO(delayValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '5C'O; )";
+};
+
+//8.28 - Grouped
+type set BearerContextIEs
+{
+ EPS_BearerID ePS_Bearer_ID optional,
+ Cause cause optional,
+ EPS_BearerLevel_TFT ePS_Bearer_TFT optional,
+ FullyQualifiedTEID_List fullyQualifiedTEID optional,
+ Bearer_QoS bearerLevel_QoS optional,
+ ChargingID chargingID optional,
+ BearerFlags bearerFlags optional,
+ TransactionIdentifier transactionIdentifier optional,
+ ProtocolConfigOptions protocolConfigOptions optional,
+ RAN_NASCause rAN_NASCause optional,
+ APCO additionalProtocolConfigOptions optional,
+ ExtendedProtocolConfigOptions extendedProtocolConfigOptions optional
+}
+with {
+ variant(fullyQualifiedTEID) "REPEATABLE(yes)";
+};
+
+type record BearerContextGrouped
+{
+ OCT1 elementIdentifier, // dec 93 , '5D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BearerContextIEs bearerContextIEs
+} with {
+ variant (lengthIndicator) "LENGTHTO(bearerContextIEs)";
+ variant "PRESENCE (elementIdentifier = '5D'O; )";
+};
+
+type set of BearerContextGrouped BearerContextGrouped_List;
+
+//8.29
+type record ChargingID
+{
+ OCT1 elementIdentifier, // dec 94, '5E'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 chargingID_Value,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(chargingID_Value,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '5E'O; )";
+};
+
+//8.30
+type record ChargingCharacteristics
+{
+ OCT1 elementIdentifier, // dec 95, '5F'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT2 chargingCharacteristicsValue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(chargingCharacteristicsValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '5F'O; )";
+};
+
+//8.31
+type record TraceInformation
+{
+ OCT1 elementIdentifier, // dec 96, '60'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT3 traceIDValue,
+ OCT9 triggeringEvents,
+ OCT2 listOfNE_Types,
+ OCT1 sessionTraceDepth,
+ OCT12 listOfInterfaces,
+ octetstring iPAddressOfTraceCollectionEntity
+} with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3, mncDigit1,mncDigit2,
+ traceIDValue,triggeringEvents,listOfNE_Types,sessionTraceDepth,
+ listOfInterfaces,iPAddressOfTraceCollectionEntity)";
+ variant "PRESENCE (elementIdentifier = '60'O; )";
+};
+
+//8.32
+type record BearerFlags
+{
+ OCT1 elementIdentifier, // dec 97, '61'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 pPC,
+ BIT1 vB,
+ BIT1 vind,
+ BIT1 aSI,
+ BIT4 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pPC,vB,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '61'O; )";
+};
+
+//8.33
+//VOID
+
+//8.34
+type record PDN_Type
+{
+ OCT1 elementIdentifier, // dec 99, '63'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 pDN_TypeValue,
+ BIT5 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pDN_TypeValue,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '63'O; )";
+};
+
+//8.35
+type record ProcedureTransactionID
+{
+ OCT1 elementIdentifier, // dec 100, '64'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer pTI_Value,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pTI_Value,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '64'O; )";
+};
+
+//8.36 Void
+
+//8.37 Void
+
+//8.38
+type union MM_Context
+{
+ GSM_Key_and_Triplets gSM_Key_and_Triplets,
+ UMTS_Key_UsedCipher_and_Quintuplets uMTS_Key_UsedCipher_and_Quintuplets,
+ GSM_Key_UsedCipher_and_Quintuplets gSM_Key_UsedCipher_and_Quintuplets,
+ UMTS_key_and_Quintuplets uMTS_key_and_Quintuplets,
+ EPS_SecurityContext_and_Quadruplets ePS_SecurityContext_and_Quadruplets,
+ UMTS_Key_Quadruplets_and_Quintuplets uMTS_Key_Quadruplets_and_Quintuplets
+}
+
+type set of AuthTriplet AuthTriplets;
+
+type record AuthTriplet
+{
+ OCT16 rAND,
+ OCT4 sRES,
+ OCT8 kc
+};
+
+type set of AuthQuintuplet AuthQuintuplets;
+
+type record AuthQuintuplet {
+ OCT16 rand,
+ integer xresLength,
+ octetstring xres,
+ OCT16 ck,
+ OCT16 ik,
+ integer autnLength,
+ octetstring autn
+} with {
+ variant (xresLength) "LENGTHTO(xres)";
+ variant (autnLength) "LENGTHTO(autn)";
+};
+
+type set of AuthQuadruplet AuthQuadruplets;
+
+type record AuthQuadruplet
+{
+ OCT16 rand,
+ integer xresLength,
+ octetstring xres,
+ integer autnLength,
+ octetstring autn,
+ octetstring k_asme length (32)
+} with {
+ variant (xresLength) "LENGTHTO(xres)";
+ variant (autnLength) "LENGTHTO(autn)";
+};
+
+type record GSM_Key_and_Triplets
+{
+ OCT1 elementIdentifier, // dec 103, '67'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 cksn,
+ BIT1 dRXI,
+ BIT1 spare2,
+ integer securityMode,
+ BIT1 sAMBRI,
+ BIT1 uAMBRI,
+ BIT3 spare3,
+ integer noofTriplets,
+ BIT3 usedCipher,
+ BIT5 spare4,
+ OCT8 kc,
+ AuthTriplets triplets,
+ OCT2 drx_par optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(cksn,dRXI,spare2,securityMode,sAMBRI,uAMBRI,spare3,noofTriplets,usedCipher,spare4,
+ kc,triplets,drx_par,uplinkSubscribedUE_AMBR,downlinkSubscribedUE_AMBR,
+ uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,lengthOfUE_NEtworkCapability,
+ uE_NEtworkCapability,lengthOfMS_NetworkCapability,mS_NetworkCapability,
+ lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '67'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofTriplets) "FIELDLENGTH(3)";
+ variant (noofTriplets) "LENGTHTO(triplets)";
+ variant (noofTriplets) "UNIT(elements)";
+ variant (drx_par) "PRESENCE (dRXI = '1'B; )";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+};
+
+type record UMTS_Key_UsedCipher_and_Quintuplets
+{
+ OCT1 elementIdentifier, // dec 104, '68'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 cksn_ksi,
+ BIT1 dRXI,
+ BIT1 spare2,
+ integer securityMode,
+ BIT1 sAMBRI,
+ BIT1 uAMBRI,
+ BIT1 uGIPAI,
+ BIT1 gUPII,
+ BIT1 spare3,
+ integer noofQuintuplets,
+ BIT3 usedCipher,
+ BIT3 usedGPRSIntegrityProtectionAlgorithm,
+ BIT2 spare4,
+ OCT16 ck,
+ OCT16 ik,
+ AuthQuintuplets quintuplets,
+ OCT2 drx_par optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ integer lengthOfHigherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring higherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(cksn_ksi,dRXI,spare2,securityMode,sAMBRI,uAMBRI,uGIPAI,gUPII,spare3,noofQuintuplets,
+ usedCipher,usedGPRSIntegrityProtectionAlgorithm,spare4,ck,ik,quintuplets,drx_par,uplinkSubscribedUE_AMBR,
+ downlinkSubscribedUE_AMBR,uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,
+ lengthOfUE_NEtworkCapability,uE_NEtworkCapability,lengthOfMS_NetworkCapability,
+ mS_NetworkCapability,lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ lengthOfHigherBitratesThan16Mbpsflags,
+ higherBitratesThan16Mbpsflags,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '68'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "LENGTHTO(quintuplets)";
+ variant (noofQuintuplets) "UNIT(elements)";
+ variant (drx_par) "PRESENCE (dRXI = '1'B; )";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (lengthOfHigherBitratesThan16Mbpsflags) "LENGTHTO(higherBitratesThan16Mbpsflags)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+};
+
+type record GSM_Key_UsedCipher_and_Quintuplets
+{
+ OCT1 elementIdentifier, // dec 105, '69'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 cksn_ksi,
+ BIT1 dRXI,
+ BIT1 spare2,
+ integer securityMode,
+ BIT1 sAMBRI,
+ BIT1 uAMBRI,
+ BIT3 spare3,
+ integer noofQuintuplets,
+ BIT3 usedCipher,
+ BIT5 spare4,
+ OCT8 kc,
+ AuthQuintuplets quintuplets,
+ OCT2 drx_par optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ integer lengthOfHigherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring higherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(cksn_ksi,dRXI,spare2,securityMode,sAMBRI,uAMBRI,spare3,
+ noofQuintuplets,usedCipher,spare4,kc,quintuplets,
+ drx_par,uplinkSubscribedUE_AMBR,downlinkSubscribedUE_AMBR,
+ uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,lengthOfUE_NEtworkCapability,
+ uE_NEtworkCapability,lengthOfMS_NetworkCapability,mS_NetworkCapability,
+ lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ lengthOfHigherBitratesThan16Mbpsflags,
+ higherBitratesThan16Mbpsflags,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '69'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "LENGTHTO(quintuplets)";
+ variant (noofQuintuplets) "UNIT(elements)";
+ variant (drx_par) "PRESENCE (dRXI = '1'B; )";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (lengthOfHigherBitratesThan16Mbpsflags) "LENGTHTO(higherBitratesThan16Mbpsflags)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+};
+
+type record UMTS_key_and_Quintuplets
+{
+ OCT1 elementIdentifier, // dec 106, '6A'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 ksi,
+ BIT1 dRXI,
+ BIT1 spare2,
+ integer securityMode,
+ BIT1 sAMBRI,
+ BIT1 uAMBRI,
+ BIT1 uGIPAI,
+ BIT1 gUPII,
+ BIT1 spare3,
+ integer noofQuintuplets,
+ BIT3 usedGPRSIntegrityProtectionAlgorithm,
+ BIT5 spare4,
+ OCT16 ck,
+ OCT16 ik,
+ AuthQuintuplets quintuplets,
+ OCT2 drx_par optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ integer lengthOfHigherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring higherBitratesThan16Mbpsflags optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(ksi,dRXI,spare2,securityMode,sAMBRI,uAMBRI,uGIPAI,gUPII,spare3,
+ noofQuintuplets,usedGPRSIntegrityProtectionAlgorithm,spare4,ck,ik,quintuplets,
+ drx_par,uplinkSubscribedUE_AMBR,downlinkSubscribedUE_AMBR,
+ uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,lengthOfUE_NEtworkCapability,
+ uE_NEtworkCapability,lengthOfMS_NetworkCapability,mS_NetworkCapability,
+ lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ lengthOfHigherBitratesThan16Mbpsflags,
+ higherBitratesThan16Mbpsflags,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '6A'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "LENGTHTO(quintuplets)";
+ variant (noofQuintuplets) "UNIT(elements)";
+ variant (drx_par) "PRESENCE (dRXI = '1'B; )";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (lengthOfHigherBitratesThan16Mbpsflags) "LENGTHTO(higherBitratesThan16Mbpsflags)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+};
+
+
+type record OldEPS_SecurityContext
+{
+ BIT3 oldNCC,
+ BIT3 oldKSI,
+ BIT1 spare,
+ BIT1 nHI_old,
+ octetstring old_K_asme length (32),
+ octetstring old_NH length (32) optional
+} with {
+ variant (old_NH) "PRESENCE(nHI_old = '1'B )";
+};
+
+type record EPS_SecurityContext_and_Quadruplets
+{
+ OCT1 elementIdentifier, // dec 107, '6B'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 ksi_asme,
+ BIT1 dRXI,
+ BIT1 nHI,
+ integer securityMode,
+ BIT1 osci,
+ BIT1 uAMBRI,
+ integer noofQuadruplets,
+ integer noofQuintuplets,
+ BIT4 usedNAS_Cipher,
+ BIT3 usedNAS_IntegrityAlgorithm,
+ BIT1 sAMBRI,
+ integer nAS_DownlinkCount,
+ integer nAS_UplinkCount,
+ octetstring k_asme length (32),
+ AuthQuadruplets quadruplets,
+ AuthQuintuplets quintuplets,
+ OCT2 drx_par optional,
+ octetstring nH length (32) optional,
+ BIT3 nCC optional,
+ BIT5 spare4 optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ OldEPS_SecurityContext oldEPS_SecurityContext optional,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ LIN2_BO_LAST lengthOfUERadioCapabilityforPagingInformation optional, //"extendable" optional for backward compatibility
+ octetstring uERadioCapabilityforPagingInformation optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(ksi_asme,dRXI,nHI,securityMode,osci,uAMBRI,noofQuadruplets,
+ noofQuintuplets,usedNAS_Cipher,usedNAS_IntegrityAlgorithm,sAMBRI,
+ nAS_DownlinkCount,nAS_UplinkCount,k_asme,
+ quadruplets,quintuplets,drx_par,nH,nCC,spare4,
+ uplinkSubscribedUE_AMBR,downlinkSubscribedUE_AMBR,
+ uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,lengthOfUE_NEtworkCapability,
+ uE_NEtworkCapability,lengthOfMS_NetworkCapability,mS_NetworkCapability,
+ lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ oldEPS_SecurityContext,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ lengthOfUERadioCapabilityforPagingInformation,
+ uERadioCapabilityforPagingInformation,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '6B'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofQuadruplets) "FIELDLENGTH(3)";
+ variant (noofQuadruplets) "LENGTHTO(quadruplets)";
+ variant (noofQuadruplets) "UNIT(elements)";
+ variant (noofQuintuplets) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "LENGTHTO(quintuplets)";
+ variant (noofQuintuplets) "UNIT(elements)";
+ variant (nAS_DownlinkCount) "FIELDLENGTH(24)";
+ variant (nAS_DownlinkCount) "BYTEORDER(last)";
+ variant (nAS_UplinkCount) "FIELDLENGTH(24)";
+ variant (nAS_UplinkCount) "BYTEORDER(last)";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (lengthOfUERadioCapabilityforPagingInformation) "LENGTHTO(uERadioCapabilityforPagingInformation)";
+ variant (drx_par) "PRESENCE(dRXI = '1'B)";
+ variant (nH) "PRESENCE(nHI = '1'B)";
+ variant (nCC) "PRESENCE(nHI = '1'B)";
+ variant (spare4) "PRESENCE(nHI = '1'B)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (oldEPS_SecurityContext) "PRESENCE(osci = '1'B )";
+};
+
+type record UMTS_Key_Quadruplets_and_Quintuplets
+{
+ OCT1 elementIdentifier, // dec 108, '6C'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 ksi_asme,
+ BIT1 dRXI,
+ BIT1 spare2,
+ integer securityMode,
+ BIT1 sAMBRI,
+ BIT1 uAMBRI,
+ integer noofQuadruplets,
+ integer noofQuintuplets,
+ OCT1 spare4,
+ OCT16 ck,
+ OCT16 ik,
+ AuthQuadruplets quadruplets,
+ AuthQuintuplets quintuplets,
+ OCT2 drx_par optional,
+ OCT4 uplinkSubscribedUE_AMBR optional,
+ OCT4 downlinkSubscribedUE_AMBR optional,
+ OCT4 uplinkUsedUE_AMBR optional,
+ OCT4 downlinkUsedUE_AMBR optional,
+ integer lengthOfUE_NEtworkCapability,
+ octetstring uE_NEtworkCapability,
+ integer lengthOfMS_NetworkCapability,
+ octetstring mS_NetworkCapability,
+ integer lengthOfMobileEquipmentIdentity,
+ octetstring mobileEquipmentIdentity,
+ BIT1 uNA,
+ BIT1 gENA,
+ BIT1 gANA,
+ BIT1 iNA,
+ BIT1 eNA,
+ BIT1 hNNA,
+ BIT1 nBNA,
+ BIT1 spare5,
+ integer lengthOfVoiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring voiceDomainPreferenceAndUEsUsageSetting optional, //"extendable" optional for backward compatibility
+ octetstring additionalOctets optional //"extendable" optional for backward compatibility
+} with {
+ variant (lengthIndicator) "LENGTHTO(ksi_asme,dRXI,spare2,securityMode,sAMBRI,uAMBRI,
+ noofQuadruplets,noofQuintuplets,spare4,ck,
+ ik,quadruplets,quintuplets,drx_par,uplinkSubscribedUE_AMBR,
+ downlinkSubscribedUE_AMBR,uplinkUsedUE_AMBR,downlinkUsedUE_AMBR,
+ lengthOfUE_NEtworkCapability,uE_NEtworkCapability,
+ lengthOfMS_NetworkCapability,mS_NetworkCapability,
+ lengthOfMobileEquipmentIdentity,mobileEquipmentIdentity,
+ uNA,gENA,gANA,iNA,eNA,hNNA,nBNA,spare5,
+ lengthOfVoiceDomainPreferenceAndUEsUsageSetting,
+ voiceDomainPreferenceAndUEsUsageSetting,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '6C'O; )";
+ variant (securityMode) "FIELDLENGTH(3)";
+ variant (noofQuadruplets) "FIELDLENGTH(3)";
+ variant (noofQuadruplets) "LENGTHTO(quadruplets)";
+ variant (noofQuadruplets) "UNIT(elements)";
+ variant (noofQuintuplets) "FIELDLENGTH(3)";
+ variant (noofQuintuplets) "LENGTHTO(quintuplets)";
+ variant (noofQuintuplets) "UNIT(elements)";
+ variant (drx_par) "PRESENCE (dRXI = '1'B; )";
+ variant (lengthOfUE_NEtworkCapability) "LENGTHTO(uE_NEtworkCapability)";
+ variant (lengthOfMS_NetworkCapability) "LENGTHTO(mS_NetworkCapability)";
+ variant (lengthOfMobileEquipmentIdentity) "LENGTHTO(mobileEquipmentIdentity)";
+ variant (lengthOfVoiceDomainPreferenceAndUEsUsageSetting) "LENGTHTO(voiceDomainPreferenceAndUEsUsageSetting)";
+ variant (uplinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (downlinkSubscribedUE_AMBR) "PRESENCE (sAMBRI = '1'B; )";
+ variant (uplinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+ variant (downlinkUsedUE_AMBR) "PRESENCE (uAMBRI = '1'B; )";
+};
+
+//8.39
+type set PDN_Conn_BearerContext_IEs
+{
+ EPS_BearerID ePS_BearerID optional,
+ EPS_BearerLevel_TFT ePS_Bearer_TFT optional,
+ FullyQualifiedTEID_List fullyQualifiedTEID optional,
+ Bearer_QoS bearerLevel_QoS optional,
+ FullyQualifiedContainer container optional,
+ TransactionIdentifier transactionIdentifier optional,
+ BearerFlags bearerFlags optional
+}with {
+ variant(fullyQualifiedTEID) "REPEATABLE(yes)";
+};
+
+type record PDN_Conn_BearerContext
+{
+ OCT1 elementIdentifier,// dec 93, '5D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ PDN_Conn_BearerContext_IEs bearerContext_IEs
+} with {
+ variant (lengthIndicator) "LENGTHTO(bearerContext_IEs)";
+ variant "PRESENCE (elementIdentifier = '5D'O; )";
+};
+
+type set of PDN_Conn_BearerContext PDN_Conn_BearerContext_List
+
+type set PDN_Connection_IEs
+{
+ AccessPointName accessPointName optional,
+ IP_Address_List iP_Address optional,
+ EPS_BearerID linkedEPS_Bearer_ID optional,
+ FullyQualifiedTEID fullyQualifiedTEID optional,
+ FullyQualifiedDomainName_List fullyQualifiedDomainName optional,
+ PDN_Conn_BearerContext_List bearerContexts optional,
+ AggregateMaximumBitRate apn_ambr optional,
+ ChargingCharacteristics chargingCharacteristics optional,
+ APN_Restriction aPN_Restriction optional,
+ SelectionMode selectionMode optional,
+ ChangeReportingAction changeReportingAction optional,
+ CSG_InformationReportingAction cSG_InformationReportingAction optional,
+ HeNBInformationReporting heNBInformationReporting optional,
+ Indication indicationFlags optional,
+ SignallingPriorityIndication signallingPriorityIndication optional,
+ ChangeToReportFlags changeToReportFlags optional,
+ PresenceReportingAreaAction presenceReportingAreaAction optional,
+ WLANOffloadabilityIndication wLANOffloadabilityIndication optional,
+ RemoteUEContextGrouped remoteUEContext optional,
+ PDN_Type pDN_Type optional,
+ HeaderCompressionConfiguration headerCompressionConfiguration optional
+} with {
+ variant(iP_Address) "REPEATABLE(yes)";
+ variant(fullyQualifiedDomainName) "REPEATABLE(yes)";
+ variant(bearerContexts) "REPEATABLE(yes)"
+};
+
+type record PDN_ConnectionGrouped
+{
+ OCT1 elementIdentifier, // dec 109, '6D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ PDN_Connection_IEs pDN_Connection_IEs
+} with {
+ variant (lengthIndicator) "LENGTHTO(pDN_Connection_IEs)";
+ variant "PRESENCE (elementIdentifier = '6D'O; )";
+};
+
+type set of PDN_ConnectionGrouped PDN_ConnectionGrouped_List
+
+//8.40
+type record PDU_Numbers
+{
+ OCT1 elementIdentifier, // dec 110, '6E'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 nSAPI,
+ BIT4 spare2,
+ integer dL_GTPU_SeqNumber,
+ integer uL_GTPU_SeqNumber,
+ integer send_NPDU_Number,
+ integer receive_NPDU_Number,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(nSAPI,spare2,dL_GTPU_SeqNumber,
+ uL_GTPU_SeqNumber,send_NPDU_Number,
+ receive_NPDU_Number,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '6E'O;)";
+ variant (dL_GTPU_SeqNumber) "FIELDLENGTH(16)";
+ variant (dL_GTPU_SeqNumber) "BYTEORDER(last)";
+ variant (uL_GTPU_SeqNumber) "FIELDLENGTH(16)";
+ variant (uL_GTPU_SeqNumber) "BYTEORDER(last)";
+ variant (send_NPDU_Number) "FIELDLENGTH(16)";
+ variant (send_NPDU_Number) "BYTEORDER(last)";
+ variant (receive_NPDU_Number) "FIELDLENGTH(16)";
+ variant (receive_NPDU_Number) "BYTEORDER(last)";
+};
+
+//8.41
+type record Packet_TMSI
+{
+ OCT1 elementIdentifier, // dec 111, '6F'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 pTMSI_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(pTMSI_Value)";
+ variant "PRESENCE (elementIdentifier = '6F'O; )";
+};
+
+
+//8.42
+type record P_TMSI_Signature
+{
+ OCT1 elementIdentifier, // dec 112, '70'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT3 p_TMSI_SignatureValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(p_TMSI_SignatureValue)";
+ variant "PRESENCE (elementIdentifier = '70'O; )";
+};
+
+//8.43
+type record Hop_Counter
+{
+ OCT1 elementIdentifier, //dec 113, '71'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer hopCounterValue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(hopCounterValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '71'O; )";
+};
+
+//8.44
+type record UE_TimeZone
+{
+ OCT1 elementIdentifier, //dec 114, '72'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 timeZone,
+ BIT2 daylightSavingTime,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(timeZone,daylightSavingTime,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '72'O; )";
+};
+
+//8.45
+type record TraceReference
+{
+ OCT1 elementIdentifier, //dec 115, '73'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT3 traceID_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,
+ mncDigit1,mncDigit2,traceID_Value)";
+ variant "PRESENCE (elementIdentifier = '73'O; )";
+};
+
+//8.46
+type record CompleteRequestMessage
+{
+ OCT1 elementIdentifier, //dec 116, '74'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer completeRequestMessageType,
+ octetstring completeRequestMessageValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(completeRequestMessageType,completeRequestMessageValue)";
+ variant "PRESENCE (elementIdentifier = '74'O; )";
+};
+
+//8.47
+type record GUTI
+{
+ OCT1 elementIdentifier, //dec 117, '75'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 mME_GroupID,
+ OCT1 mME_Code,
+ octetstring m_TMSI
+} with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,
+ mncDigit1,mncDigit2,mME_GroupID,mME_Code,m_TMSI
+ )";
+ variant "PRESENCE (elementIdentifier = '75'O; )";
+};
+
+//8.48
+type record FullyQualifiedContainer
+{
+ OCT1 elementIdentifier, //dec 118, '76'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer containerType,
+ BIT4 spare2,
+ F_ContainerField f_ContainerField
+} with {
+ variant (lengthIndicator) "LENGTHTO(containerType,spare2,f_ContainerField)";
+ variant "PRESENCE (elementIdentifier = '76'O; )";
+ variant (containerType) "FIELDLENGTH(4)";
+ variant (f_ContainerField) "CROSSTAG(
+ uTRAN_TransparentContainer, containerType = 1;
+ bSS_Container, containerType = 2;
+ eUTRAN_TransparentContainer, containerType = 3;
+ nBIFOM_Container, containerType = 4;
+ )";
+};
+
+type union F_ContainerField
+{
+ BSS_Container_union bSS_Container,
+ octetstring uTRAN_TransparentContainer,
+ octetstring eUTRAN_TransparentContainer,
+ octetstring nBIFOM_Container
+}
+
+type set of FullyQualifiedContainer FullyQualifiedContainer_List;
+
+type union BSS_Container_union {
+ BSS_Container bSS_Container_structured,
+ octetstring bSS_Container_octet
+}
+
+//8.48-2
+type record BSS_Container
+{
+ BIT1 pFI,
+ BIT1 rP,
+ BIT1 sAPIflag,
+ BIT1 pHX,
+ BIT4 spare,
+ OCT1 packetFlowID optional,
+ BIT3 radioPriority optional,
+ BIT1 spare2 optional,
+ BIT4 sAPI optional,
+ integer xiDparametersLength optional,
+ octetstring xiDparameters optional
+} with {
+ variant "PRESENCE (spare = '0000'B; )";
+ variant (xiDparametersLength) "LENGTHTO(xiDparameters)";
+ variant (packetFlowID) "PRESENCE (pFI = '1'B; )";
+ variant (radioPriority) "PRESENCE (rP = '1'B; )";
+ variant (sAPI) "PRESENCE (sAPIflag = '1'B; )";
+ variant (xiDparametersLength) "PRESENCE (pHX = '1'B; )";
+ variant (xiDparameters) "PRESENCE (pHX = '1'B; )";
+};
+
+//8.49
+type record FullyQualifiedCause
+{
+ OCT1 elementIdentifier, //dec 119, '77'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 causeType,
+ BIT4 spare2,
+ octetstring f_CauseFieldValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(causeType,spare2,f_CauseFieldValue)";
+ variant "PRESENCE (elementIdentifier = '77'O; )";
+};
+
+type set of FullyQualifiedCause FullyQualifiedCause_List;
+
+//8.50
+type record PLMN_ID
+{
+ OCT1 elementIdentifier, //dec 120, '78'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT3 pLMN_IdentityValue
+}with {
+ variant (lengthIndicator) "LENGTHTO(pLMN_IdentityValue)";
+ variant "PRESENCE (elementIdentifier = '78'O; )";
+};
+
+//8.51
+type record TargetIdentification
+{
+ OCT1 elementIdentifier, //dec 121, '79'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer targetType,
+ TargetId targetID
+} with {
+ variant (lengthIndicator) "LENGTHTO(targetType,targetID)";
+ variant "PRESENCE (elementIdentifier = '79'O; )";
+ variant (targetID) "CROSSTAG( rnc_ID, targetType = 0;
+ macro_eNodeB_ID, targetType = 1;
+ cell_ID, targetType = 2;
+ home_eNodeB_ID, targetType = 3;
+ unknown, OTHERWISE)"
+};
+
+type union TargetId {
+ RNC_ID rnc_ID,
+ Macro_eNodeB_ID macro_eNodeB_ID,
+ Cell_ID cell_ID,
+ Home_eNodeB_ID home_eNodeB_ID,
+ octetstring unknown
+}
+
+type octetstring RNC_ID;
+type octetstring Cell_ID;
+
+type record Macro_eNodeB_ID {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT4 spare2,
+ bitstring targetID length(20),
+ OCT2 tac
+} with {
+ variant (spare2,targetID) "FIELDORDER(msb)";
+ variant (targetID) "BYTEORDER(last)";
+}
+
+type record Home_eNodeB_ID {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT4 spare2,
+ bitstring targetID length(28),
+ OCT2 tac
+} with {
+ variant (spare2,targetID) "FIELDORDER(msb)";
+ variant (targetID) "BYTEORDER(last)";
+}
+
+// In Presence Reporting Area Action it shall be encoded as per octets 6 to 11 of the Target ID
+type record Macro_eNodeB_ID_spec {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT4 spare2,
+ bitstring targetID length(20)
+} with {
+ variant (spare2,targetID) "FIELDORDER(msb)";
+ variant (targetID) "BYTEORDER(last)";
+}
+
+// In Presence Reporting Area Action it shall be encoded as per octets 6 to 11 of the Target ID
+type record Home_eNodeB_ID_spec {
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT4 spare2,
+ bitstring targetID length(28)
+} with {
+ variant (spare2,targetID) "FIELDORDER(msb)";
+ variant (targetID) "BYTEORDER(last)";
+}
+
+//8.52
+//VOID
+
+//8.53
+type record PacketFlowID
+{
+ OCT1 elementIdentifier, // dec 123, '7B'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 eBI,
+ BIT4 spare2,
+ octetstring packetFlowIDValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(eBI,spare2,packetFlowIDValue)";
+ variant "PRESENCE (elementIdentifier = '7B'O;)";
+};
+
+//8.54
+type record RAB_Context
+{
+ OCT1 elementIdentifier, // dec 124, '7C'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 nSAPI,
+ BIT4 spare2,
+ integer dL_GTPU_SeqNumber,
+ integer uL_GTPU_SeqNumber,
+ integer dL_PDCP_SeqNumber,
+ integer uL_PDCP_SeqNumber
+}with {
+ variant (lengthIndicator) "LENGTHTO(nSAPI,spare2,dL_GTPU_SeqNumber,uL_GTPU_SeqNumber,dL_PDCP_SeqNumber,uL_PDCP_SeqNumber)";
+ variant "PRESENCE (elementIdentifier = '7C'O;)";
+ variant (dL_GTPU_SeqNumber) "FIELDLENGTH(16)";
+ variant (dL_GTPU_SeqNumber) "BYTEORDER(last)";
+ variant (uL_GTPU_SeqNumber) "FIELDLENGTH(16)";
+ variant (uL_GTPU_SeqNumber) "BYTEORDER(last)";
+ variant (dL_PDCP_SeqNumber) "FIELDLENGTH(16)";
+ variant (dL_PDCP_SeqNumber) "BYTEORDER(last)";
+ variant (uL_PDCP_SeqNumber) "FIELDLENGTH(16)";
+ variant (uL_PDCP_SeqNumber) "BYTEORDER(last)";
+};
+
+type set of RAB_Context RAB_Context_List
+
+//8.55
+type record Source_RNC_PDCP_Context_Info
+{
+ OCT1 elementIdentifier, // dec 125, '7D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring rRC_ContainerValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(rRC_ContainerValue)";
+ variant "PRESENCE (elementIdentifier = '7D'O;)";
+};
+
+//8.56
+type record PortNumber
+{
+ OCT1 elementIdentifier, // dec 126, '7E'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer PortNumberValue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(PortNumberValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '7E'O;)";
+ variant (PortNumberValue) "FIELDLENGTH(16)";
+ variant (PortNumberValue) "BYTEORDER(last)";
+};
+
+type set of PortNumber PortNumber_List
+
+//8.57
+type record APN_Restriction
+{
+ OCT1 elementIdentifier, // dec 127, '7F'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer restrictionTypeValue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(restrictionTypeValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '7F'O;)";
+};
+
+//8.58
+type record SelectionMode
+{
+ OCT1 elementIdentifier, // dec 128, '80'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer selectionModeValue,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(selectionModeValue,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '80'O;)";
+ variant (selectionModeValue) "FIELDLENGTH(2)";
+};
+
+//8.59
+type record SourceIdentification
+{
+ OCT1 elementIdentifier, // dec 129, '81'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT8 targetCellID,
+ OCT1 sourceType,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT4 spare2,
+ bitstring sourceID length(20),
+ OCT2 tac
+} with {
+ variant (lengthIndicator) "LENGTHTO(targetCellID,sourceType,mccDigit1,mccDigit2,mccDigit3,
+ mncDigit3,mncDigit1,mncDigit2,spare2,
+ sourceID,tac)";
+ variant "PRESENCE (elementIdentifier = '81'O;)";
+ variant (spare2,sourceID) "FIELDORDER(msb)";
+ variant (sourceID) "BYTEORDER(last)";
+};
+
+//8.60
+//VOID
+
+//8.61
+type record ChangeReportingAction
+{
+ OCT1 elementIdentifier, // dec 131, '83'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring actionValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(actionValue)";
+ variant "PRESENCE (elementIdentifier = '83'O;)";
+};
+
+//8.62
+type set of OCT2 PDN_CSID_List;
+
+type union NodeID
+{
+ OCT4 globalUnicastIPv4,
+ OCT16 globalUnicastIPv6,
+ OCT4 fourOctets
+};
+
+type record FullyQualifiedPDN_ConnectionSetID //FQ CSID
+{
+ OCT1 elementIdentifier, // dec 132, '84'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer nRofCSIDs,
+ integer nodeIDType,
+ NodeID nodeID,
+ PDN_CSID_List pDN_CSID_List,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(nRofCSIDs,nodeIDType,nodeID,pDN_CSID_List,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '84'O;)";
+ variant (nRofCSIDs) "FIELDLENGTH(4)";
+ variant (nRofCSIDs) "LENGTHTO(pDN_CSID_List)";
+ variant (nRofCSIDs) "UNIT(elements)";
+ variant (nodeIDType) "FIELDLENGTH(4)";
+ variant (nodeID) "CROSSTAG(
+ globalUnicastIPv4, nodeIDType = 0;
+ globalUnicastIPv6, nodeIDType = 1;
+ fourOctets, nodeIDType = 2;
+ )";
+};
+
+type set of FullyQualifiedPDN_ConnectionSetID FullyQualifiedPDN_ConnectionSetID_List;
+
+//8.63
+type record ChannelNeeded
+{
+ OCT1 elementIdentifier, // dec 133, '85'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring channelNeededValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(channelNeededValue)";
+ variant "PRESENCE (elementIdentifier = '85'O;)";
+};
+
+//8.64
+type record EMLPP_Priority
+{
+ OCT1 elementIdentifier, // dec 134, '86'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring eMLPP_PriorityValue
+}with {
+ variant (lengthIndicator) "LENGTHTO(eMLPP_PriorityValue)";
+ variant "PRESENCE (elementIdentifier = '86'O;)";
+};
+
+//8.65
+type record NodeType
+{
+ OCT1 elementIdentifier,// dec 135, '87'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 nodeTypeValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(nodeTypeValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '87'O;)";
+};
+
+//8.66
+type record FullyQualifiedDomainName
+{
+ OCT1 elementIdentifier, // dec 136, '88'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring fQDN_Value
+} with {
+ variant (lengthIndicator) "LENGTHTO(fQDN_Value)";
+ variant "PRESENCE (elementIdentifier = '88'O;)";
+};
+
+type set of FullyQualifiedDomainName FullyQualifiedDomainName_List;
+
+//8.67
+// Moved to GTPv2_PrivateExtensions.ttcn
+
+
+//8.68
+type record TransactionIdentifier
+{
+ OCT1 elementIdentifier, // dec 137, '89'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 spare2,
+ L3_TransactionId transactionIdentifierValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(spare2,transactionIdentifierValue)";
+ variant "PRESENCE (elementIdentifier = '89'O;)";
+};
+
+type record L3_TransactionId
+{
+ BIT3 tio,
+ BIT1 tiFlag ,
+ TI_Extension tIExtension optional
+ // an extension octet (TI) can be used for session management messages
+ // not yet implemented (see 24.008 clause 10.3.2 for more detail
+} with { variant (tIExtension) "PRESENCE(tio = '111'B)"
+};
+
+type record TI_Extension
+{
+ BIT7 tI_Value,
+ BIT1 tI_ExtBit //'1'B
+};
+
+//8.69
+type record MBMS_SessionDuration
+{
+ OCT1 elementIdentifier, // dec 138, '8A'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT3 mBMS_SessionDurationValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mBMS_SessionDurationValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '8A'O;)";
+};
+
+//8.70
+type record MBMS_ServiceArea
+{
+ OCT1 elementIdentifier, // dec 139, '8B'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring mBMS_ServiceAreaValue
+}with {
+ variant (lengthIndicator) "LENGTHTO(mBMS_ServiceAreaValue)";
+ variant "PRESENCE (elementIdentifier = '8B'O;)";
+};
+
+//8.71
+type record MBMS_SessionIdentifier
+{
+ OCT1 elementIdentifier, // dec 140, '8C'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 mBMS_SessionIdentifierValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mBMS_SessionIdentifierValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '8C'O;)";
+};
+
+//8.72
+type record MBMS_FlowIdentifier
+{
+ OCT1 elementIdentifier, // dec 141, '8D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT2 mBMS_FlowIdentifierValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mBMS_FlowIdentifierValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '8D'O;)";
+};
+
+//8.73
+type record MBMS_IPMulticastDistribution
+{
+ OCT1 elementIdentifier, // dec 142, '8E'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 commonTunnelEndpointIdentifierData,
+ GSN_Address iP_MulticastDistributionAddress,
+ GSN_Address iP_MulticastSourceAddress,
+ OCT1 mBMS_HCIndicator,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(commonTunnelEndpointIdentifierData,iP_MulticastDistributionAddress,
+ iP_MulticastSourceAddress,mBMS_HCIndicator,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '8E'O;)";
+};
+
+type set of MBMS_IPMulticastDistribution MBMS_IPMulticastDistribution_List;
+
+type record GSN_Address
+{
+ INT6b lengthIndicator,
+ BIT2 addressType,
+ octetstring addressValue
+}with {
+ variant (lengthIndicator) "LENGTHTO(addressValue)";
+};
+
+//8.74
+type record MBMS_DistributionAcknowledge
+{
+ OCT1 elementIdentifier, // dec 143, '8F'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT2 distributionIndicationValue,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(distributionIndicationValue,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '8F'O;)";
+};
+
+//8.75
+type record User_CSG_Information
+{
+ OCT1 elementIdentifier, // dec 145, '91'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ BIT5 spare2,
+ bitstring cSG_ID length(27),
+ BIT1 cMI,
+ BIT1 lCSG,
+ BIT4 spare3,
+ BIT2 accessMode,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,
+ mncDigit3,mncDigit1,mncDigit2,
+ spare2,cSG_ID,cMI,lCSG,spare3,
+ accessMode,additionalOctets)";
+ variant (spare2,cSG_ID) "FIELDORDER(msb)";
+ variant (cSG_ID) "BYTEORDER(last)";
+ variant "PRESENCE (elementIdentifier = '91'O;)";
+};
+
+//8.76
+type record CSG_InformationReportingAction
+{
+ OCT1 elementIdentifier, // dec 146, '92'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 uCIC_SG,
+ BIT1 uCIS_HC,
+ BIT1 uCIU_HC,
+ BIT5 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(uCIC_SG,uCIS_HC,uCIU_HC,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '92'O;)";
+};
+
+//8.77
+type record of RFSP_Index RFSP_Index_List;
+
+type record RFSP_Index
+{
+ OCT1 elementIdentifier, // dec 144, '90'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer rFSP_IndexValue
+} with {
+ variant (lengthIndicator) "LENGTHTO(rFSP_IndexValue)";
+ variant "PRESENCE (elementIdentifier = '90'O;)";
+ variant (rFSP_IndexValue) "FIELDLENGTH(16)";
+ variant (rFSP_IndexValue) "BYTEORDER(last)";
+};
+
+//8.78
+type record CSG_ID
+{
+ OCT1 elementIdentifier, // dec 147, '93'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT5 spare2,
+ bitstring cSG_ID length(27),
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(spare2,cSG_ID,additionalOctets)";
+ variant (spare2,cSG_ID) "FIELDORDER(msb)";
+ variant (cSG_ID) "BYTEORDER(last)";
+ variant "PRESENCE (elementIdentifier = '93'O;)";
+};
+
+//8.79
+type record CSG_MembershipIndication
+{
+ OCT1 elementIdentifier, // dec 148, '94'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 cMI,
+ BIT7 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(cMI,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '94'O;)";
+};
+
+//8.80
+type record ServiceIndicator
+{
+ OCT1 elementIdentifier, // dec 149, '95'O
+ LIN2_BO_LAST lengthIndicator, //=1
+ BIT4 instance,
+ BIT4 spare,
+ INT1 serviceIndicator
+} with {
+ variant (lengthIndicator) "LENGTHTO(serviceIndicator)";
+ variant "PRESENCE (elementIdentifier = '95'O;)";
+};
+
+//8.81
+type record DetachType
+{
+ OCT1 elementIdentifier, // dec 150, '96'O
+ LIN2_BO_LAST lengthIndicator, //=1
+ BIT4 instance,
+ BIT4 spare,
+ INT1 detachType
+} with {
+ variant (lengthIndicator) "LENGTHTO(detachType)";
+ variant "PRESENCE (elementIdentifier = '96'O;)";
+};
+
+//8.82
+type record LocalDistinguishedName
+{
+ OCT1 elementIdentifier, // dec 151 '97'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ charstring lDN length (1..400)
+} with {
+ variant (lengthIndicator) "LENGTHTO(lDN)";
+ variant "PRESENCE (elementIdentifier = '97'O;)";
+};
+
+type set of LocalDistinguishedName LocalDistinguishedName_List
+
+//8.83
+type record NodeFeatures
+{
+ OCT1 elementIdentifier, // dec 152, '98'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 pRN,
+ BIT1 mABR,
+ BIT1 nTSR,
+ BIT1 cIOT,
+ BIT4 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(pRN,mABR,nTSR,cIOT,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '98'O;)";
+};
+
+//8.84
+type record MBMSTimetoDataTransfer
+{
+ OCT1 elementIdentifier, // dec 153, '99'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 mBMSTimetoDataTransfervalue,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(mBMSTimetoDataTransfervalue, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '99'O;)";
+};
+
+//8.85
+type record Throttling
+{
+ OCT1 elementIdentifier, // dec 154, '9A'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ INT5b throttlingDelayValue,
+ BIT3 throttlingDelayUnit,
+ INT1 throttlingfactor,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(throttlingDelayValue,throttlingDelayUnit,throttlingfactor,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '9A'O;)";
+};
+
+
+//8.86
+type record AllocationRetentionPriority
+{
+ OCT1 elementIdentifier, // dec 155, '9B'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 pVI,
+ BIT1 spare2,
+ BIT4 pL,
+ BIT1 pCI,
+ BIT1 spare3,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(pVI,spare2,pL,pCI,spare3,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '9B'O;)";
+};
+
+//8.87
+type record EPC_Timer
+{
+ OCT1 elementIdentifier, // dec 156, '9C'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ INT5b timerValue,
+ BIT3 timerUnit,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(timerValue,timerUnit,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '9C'O;)";
+};
+
+//8.88
+type record SignallingPriorityIndication
+{
+ OCT1 elementIdentifier, // dec 157, '9D'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 lAPI,
+ BIT7 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(lAPI,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '9D'O;)";
+};
+
+//8.89
+type record TMGI
+{
+ OCT1 elementIdentifier, // dec 158, '9E'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT3 mBMSServiceID,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(mBMSServiceID, mccDigit1,
+ mccDigit2, mccDigit3, mncDigit1,
+ mncDigit2, mncDigit3,
+ additionalOctets)";
+ variant "PRESENCE (elementIdentifier = '9E'O;)";
+};
+
+//8.90
+type record AdditionalMMContextForSRVCC
+{
+ OCT1 elementIdentifier, // dec 159, '9F'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer mobileStationClassmark2Length,
+ MobileStationClassmark2 mobileStationClassmark2,
+ integer mobileStationClassmark3Length,
+ octetstring mobileStationClassmark3,
+ integer supportedCodecListLength,
+ SupportedCodecList supportedCodecList,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mobileStationClassmark2Length,mobileStationClassmark2,
+ mobileStationClassmark3Length,mobileStationClassmark3,
+ supportedCodecListLength,supportedCodecList,
+ additionalOctets)";
+ variant (mobileStationClassmark2Length) "LENGTHTO(mobileStationClassmark2)";
+ variant (mobileStationClassmark3Length) "LENGTHTO(mobileStationClassmark3)";
+ variant (supportedCodecListLength) "LENGTHTO(supportedCodecList)";
+ variant "PRESENCE (elementIdentifier = '9F'O;)";
+};
+
+// 24.008/ 10.5.1.6 MobileStationClassmark2
+//4th octet:
+type record MobileStationClassmark2_oct4
+{
+ BIT1 fc,
+ BIT1 vgcs,
+ BIT1 vbs,
+ BIT1 sm_Capability,
+ BIT2 ss_ScreenIndicator,
+ BIT1 ps_Capability,
+ BIT1 spare2_1
+};
+
+
+//5th octet ( Table 10.5.6a ):
+type record MobileStationClassmark2_oct5
+{
+ BIT1 a5_2,
+ BIT1 a5_3,
+ BIT1 cmsp,
+ BIT1 solsa,
+ BIT1 ucs2,
+ BIT1 lcsva_cap,
+ BIT1 spare5_7,
+ BIT1 cm3
+};
+
+type record MobileStationClassmark2
+{
+ BIT3 rf_PowerCapability,
+ BIT1 a5_1,
+ BIT1 esind,
+ BIT2 revisionLevel,
+ BIT1 spare1_1,
+ MobileStationClassmark2_oct4 mobileStationClassmark2_oct4 optional,
+ MobileStationClassmark2_oct5 mobileStationClassmark2_oct5 optional
+};
+
+
+// TS 24008/10.5.4.32 Supported Codec List
+type record Codec
+{
+ OCT1 systemIdentification,
+ integer lengthOfBitmap,
+ OCT1 codecBitmap_bits1to8,
+ OCT1 codecBitmap_bits9to16 optional,
+ octetstring additional_codecs optional
+} with {
+ variant (lengthOfBitmap) "LENGTHTO(codecBitmap_bits1to8,codecBitmap_bits9to16,additional_codecs)";
+};
+
+type record of Codec SupportedCodecList;
+
+//8.91
+type record AdditionalFlagsForSRVCC
+{
+ OCT1 elementIdentifier, // dec 160, 'A0'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 iCS,
+ BIT7 spare2,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO(iCS, spare2, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A0'O;)";
+};
+
+// Sv Information Elements
+// 3GPP TS 29.280 6.2
+type record STN_SR
+{
+ OCT1 elementIdentifier, // dec 51, '33'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 nanpi,
+ hexstring sTN_SR_Value
+}with {
+ variant (lengthIndicator) "LENGTHTO(nanpi,sTN_SR_Value)";
+ variant "PRESENCE (elementIdentifier = '33'O;)";
+ variant (sTN_SR_Value) "PADDING(yes)";
+ variant (sTN_SR_Value) "PADDING_PATTERN('1'B)";
+};
+
+//8.92 Void
+/*type record MMBR
+{
+ OCT1 elementIdentifier, // dec 161, 'A1'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 maxMMBR_for_uplink,
+ OCT4 maxMMBR_for_downlink,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(maxMMBR_for_uplink,maxMMBR_for_downlink,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A1'O;)";
+};*/
+
+
+//8.93
+type record MDT_Configuration
+{
+ OCT1 elementIdentifier, // dec 162, 'A2'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT1 jobType,
+ OCT4 listOfmeasurements,
+ OCT1 reportingTrigger,
+ OCT1 reportInterval,
+ OCT1 reportAmount,
+ OCT1 eventThresholdforRSRP,
+ OCT1 eventThresholdforRSRQ,
+ INT1 lengthOfAreaScope,
+ octetstring areaScope optional,
+ BIT1 cRRMI,
+ BIT1 mPI,
+ BIT1 pMI,
+ BIT1 pLI,
+ BIT4 spare2,
+ CollectionPeriodforRRMmeasurementsLTE collectionPeriodforRRMmeasurementsLTE optional,
+ MeasurementPeriodLTE measurementPeriodLTE optional,
+ PositioningMethod positioningMethod optional,
+ INT1 numberOfMDT_PLMNs optional,
+ MDT_PLMN_List mDT_PLMN_List length(0..16) optional,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(jobType,listOfmeasurements,reportingTrigger,
+ reportInterval,reportAmount,eventThresholdforRSRP,
+ eventThresholdforRSRQ,lengthOfAreaScope,areaScope,
+ cRRMI,mPI,pMI,pLI,spare2,
+ collectionPeriodforRRMmeasurementsLTE,measurementPeriodLTE,positioningMethod,
+ numberOfMDT_PLMNs,mDT_PLMN_List,additionalOctets )";
+ variant "PRESENCE (elementIdentifier = 'A2'O;)";
+ variant (lengthOfAreaScope) "LENGTHTO(areaScope)";
+ variant (collectionPeriodforRRMmeasurementsLTE) "PRESENCE(cRRMI = '1'B)";
+ variant (measurementPeriodLTE) "PRESENCE(mPI = '1'B)";
+ variant (positioningMethod) "PRESENCE(pMI = '1'B)";
+ variant (mDT_PLMN_List) "PRESENCE(pLI = '1'B)";
+ variant (numberOfMDT_PLMNs) "PRESENCE(pLI = '1'B)";
+ variant (numberOfMDT_PLMNs) "LENGTHTO(mDT_PLMN_List)";
+ variant (numberOfMDT_PLMNs) "UNIT(elements)";
+};
+
+//5.10.19 3GPP TS 32.422
+type record PositioningMethod
+{
+ BIT1 gNSS,
+ BIT1 eCellID,
+ BIT6 spare
+}
+//5.10.20 3GPP TS 32.422
+type enumerated CollectionPeriodforRRMmeasurementsLTE
+{
+ ms1024 (0),
+ ms1280 (1),
+ ms2048 (2),
+ ms2560 (3),
+ ms5120 (4),
+ ms10240 (5),
+ min1 (6)
+} with { variant "FIELDLENGTH(8)"; }
+
+//5.10.23 3GPP TS 32.422
+type enumerated MeasurementPeriodLTE
+{
+ ms1024 (0),
+ ms1280 (1),
+ ms2048 (2),
+ ms2560 (3),
+ ms5120 (4),
+ ms10240 (5),
+ min1 (6)
+} with { variant "FIELDLENGTH(8)"; }
+
+//9.2.1.89, 9.2.3.8 TS 32.422
+type record of OCT3 MDT_PLMN_List;
+
+//8.94
+type record APCO
+{
+ OCT1 elementIdentifier, // dec 163, 'A3'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 configProtocol,
+ BIT4 spare2, //'0000'B
+ BIT1 extensionField, //'1'B
+ ProtocolIDs_and_ContainerIDs protocolIDs_and_ContainerIDs optional,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(configProtocol,spare2,extensionField,protocolIDs_and_ContainerIDs,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A3'O;)";
+};
+
+//8.95
+type record AbsoluteTimeofMBMSDataTransfer
+{
+ OCT1 elementIdentifier, // dec 164, 'A4'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT8 value_part,
+ octetstring additionalOctets optional
+} with {
+ variant (lengthIndicator) "LENGTHTO( value_part, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A4'O;)";
+};
+
+//8.96
+type record HeNBInformationReporting
+{
+ OCT1 elementIdentifier, // dec 165, 'A5'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 FTI,
+ BIT7 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(FTI,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A5'O;)";
+};
+
+//8.97
+type record IPv4ConfigurationPrameters
+{
+ OCT1 elementIdentifier, // dec 166, 'A6'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ INT1 subnetPrefixLength,
+ OCT4 iPv4DefaultRouterAddress,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(subnetPrefixLength,iPv4DefaultRouterAddress,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A6'O;)";
+}
+
+//8.98
+type record ChangeToReportFlags
+{
+ OCT1 elementIdentifier, // dec 167, 'A7'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 servingNetworkChangeToReport,
+ BIT1 timeZoneChangeToReport,
+ BIT6 spare2, //'000000'B
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(servingNetworkChangeToReport,timeZoneChangeToReport,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A7'O;)";
+}
+
+
+//8.99
+type record ActionIndication
+{
+ OCT1 elementIdentifier, // dec 168, 'A8'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 indication,
+ BIT5 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(indication,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A8'O;)";
+}
+
+//8.100
+type record TrustedWLANAccessNetworkIdentifier
+{
+ OCT1 elementIdentifier, //dec 169, 'A9'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 bssIdIndicator,
+ BIT1 cIVAI,
+ BIT1 pLMNI,
+ BIT1 oPNAI,
+ BIT1 lAAI,
+ BIT3 spare2,
+ INT1 lengthOfSSID,
+ octetstring SSID,
+ OCT6 BSSID optional,
+ INT1 lengthOfCivicAddress optional,
+ octetstring civicAddressInformation optional,
+ OCT4 tWAN_PLMNID optional,
+ INT1 lengthOfTWANOperatorName optional,
+ octetstring tWANOperatorName optional,
+ INT1 relayIdentityType optional,
+ INT1 lengthOfRelayIdentity optional,
+ octetstring relayIdentity optional,
+ INT1 lengthOfcircuitID optional,
+ octetstring circuitID optional,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(bssIdIndicator,cIVAI,pLMNI,oPNAI,lAAI,spare2,
+ lengthOfSSID,SSID,BSSID,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'A9'O;)";
+ variant (lengthOfSSID) "LENGTHTO(SSID)";
+ variant (civicAddressInformation) "PRESENCE(cIVAI = '1'B)";
+ variant (lengthOfCivicAddress) "PRESENCE(cIVAI = '1'B)";
+ variant (lengthOfCivicAddress) "LENGTHTO(civicAddressInformation)";
+ variant (tWAN_PLMNID) "PRESENCE(pLMNI = '1'B)";
+ variant (tWANOperatorName) "PRESENCE(oPNAI = '1'B)";
+ variant (lengthOfTWANOperatorName) "PRESENCE(oPNAI = '1'B)";
+ variant (lengthOfTWANOperatorName) "LENGTHTO(tWANOperatorName)";
+ variant (relayIdentityType) "PRESENCE(lAAI = '1'B)";
+ variant (lengthOfRelayIdentity) "PRESENCE(lAAI = '1'B)";
+ variant (relayIdentity) "PRESENCE(lAAI = '1'B)";
+ variant (lengthOfcircuitID) "PRESENCE(lAAI = '1'B)";
+ variant (circuitID) "PRESENCE(lAAI = '1'B)";
+ variant (lengthOfRelayIdentity) "LENGTHTO(relayIdentity)";
+ variant (lengthOfcircuitID) "LENGTHTO(circuitID)";
+};
+
+type set of TrustedWLANAccessNetworkIdentifier TrustedWLANAccessNetworkIdentifier_List;
+
+//8.101
+type record UserLocationInformationTimestamp
+{
+ OCT1 elementIdentifier, //dec 170, 'AA'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 timestampValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(timestampValue, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'AA'O;)";
+}
+
+//8.102
+type record MBMSFlags
+{
+ OCT1 elementIdentifier, //dec 171, 'AB'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 mSRI,
+ BIT1 lMR,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(mSRI,lMR,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'AB'O;)";
+}
+
+//8.103
+type record RAN_NASCause
+{
+ OCT1 elementIdentifier, //dec 172, 'AC'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT4 causeType,
+ BIT4 protocolType,
+ OCT1 causeValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(causeType, protocolType, causeValue, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'AC'O;)";
+}
+
+//8.104
+type record CNOperatorSelectionEntity
+{
+ OCT1 elementIdentifier, //dec 173, 'AD'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT2 selectionEntity,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(selectionEntity, spare2, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'AD'O;)";
+}
+
+//8.105
+type record TrustedWLANModeIndication
+{
+ OCT1 elementIdentifier, //dec 174, 'AE'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 sCM,
+ BIT1 mCM,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(sCM, mCM, spare2, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'AE'O;)";
+}
+
+//8.106
+type record NodeNumber
+{
+ OCT1 elementIdentifier, //dec 175, 'AF'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LIN1 lenghOfNodeNumber,
+ octetstring nodeNumber,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(lenghOfNodeNumber, nodeNumber, additionalOctets)";
+ variant (lenghOfNodeNumber) "LENGTHTO(nodeNumber)";
+ variant "PRESENCE (elementIdentifier = 'AF'O;)";
+}
+
+type set of NodeNumber NodeNumber_List;
+
+//8.107
+type record NodeIdentifier
+{
+ OCT1 elementIdentifier, //dec 176, 'B0'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LIN1 lenghOfNodeName,
+ octetstring nodeName,
+ LIN1 lenghOfNodeRealm,
+ octetstring nodeRealm,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(lenghOfNodeName,nodeName,lenghOfNodeRealm,nodeRealm, additionalOctets)";
+ variant (lenghOfNodeName) "LENGTHTO(nodeName)";
+ variant (lenghOfNodeRealm) "LENGTHTO(nodeRealm)";
+ variant "PRESENCE (elementIdentifier = 'B0'O;)";
+}
+
+type set of NodeIdentifier NodeIdentifier_List;
+
+//8.108
+type record PresenceReportingAreaAction
+{
+ OCT1 elementIdentifier, //dec 177, 'B1'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT3 actionField,
+ BIT5 spare2,
+ OCT3 presenceReportingAreaIdentifier optional,
+ INT4b numberOfRAI (0..15) optional,
+ INT4b numberOfTAI (0..15) optional,
+ INT6b numberOfMacroENodeB (0..63) optional,
+ BIT2 spare3 optional,
+ INT6b numberOfHomeENodeB (0..63) optional,
+ BIT2 spare4 optional,
+ INT6b numberOfECGI (0..63) optional,
+ BIT2 spare5 optional,
+ INT6b numberOfSAI (0..63) optional,
+ BIT2 spare6 optional,
+ INT6b numberOfCGI (0..63) optional,
+ BIT2 spare7 optional,
+ TAIList tAIs optional,
+ Macro_eNB_ID_List macroENBIDs optional,
+ Home_eNB_ID_List homeENBIDs optional,
+ ECGIList eCGIs optional,
+ RAIList rAIs optional,
+ SAIList sAIs optional,
+ CGIList cGIs optional,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(actionField,spare2,presenceReportingAreaIdentifier,numberOfRAI,numberOfTAI,numberOfMacroENodeB,
+ spare3,numberOfHomeENodeB,spare4,numberOfECGI,spare5,numberOfSAI,spare6,numberOfCGI,spare7,tAIs,macroENBIDs,homeENBIDs,
+ eCGIs,rAIs,sAIs,cGIs,additionalOctets)";
+ variant (numberOfRAI) "LENGTHTO(rAIs)";
+ variant (numberOfRAI) "UNIT(elements)";
+ variant (numberOfTAI) "LENGTHTO(tAIs)";
+ variant (numberOfTAI) "UNIT(elements)";
+ variant (numberOfMacroENodeB) "LENGTHTO(macroENBIDs)";
+ variant (numberOfMacroENodeB) "UNIT(elements)";
+ variant (numberOfHomeENodeB) "LENGTHTO(homeENBIDs)";
+ variant (numberOfHomeENodeB) "UNIT(elements)";
+ variant (numberOfECGI) "LENGTHTO(eCGIs)";
+ variant (numberOfECGI) "UNIT(elements)";
+ variant (numberOfSAI) "LENGTHTO(sAIs)";
+ variant (numberOfSAI) "UNIT(elements)";
+ variant (numberOfCGI) "LENGTHTO(cGIs)";
+ variant (numberOfCGI) "UNIT(elements)";
+ variant "PRESENCE (elementIdentifier = 'B1'O;)";
+}
+
+type set of TAI TAIList;
+type set of ECGI ECGIList;
+type set of RAI RAIList;
+type set of SAI SAIList;
+type set of CGI CGIList;
+type set of Macro_eNodeB_ID_spec Macro_eNB_ID_List;
+type set of Home_eNodeB_ID_spec Home_eNB_ID_List;
+
+//8.109
+type record PresenceReportingAreaInformation
+{
+ OCT1 elementIdentifier, //dec 178, 'B2'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT3 presenceReportingAreaIdentifier,
+ BIT1 iPRA,
+ BIT1 oPRA,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(presenceReportingAreaIdentifier,iPRA,oPRA, spare2, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'B2'O;)";
+}
+
+//8.110
+type record TWANIdentifierTimestamp
+{
+ OCT1 elementIdentifier, //dec 179, 'B3'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 tWANIdentifierTimestampValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(tWANIdentifierTimestampValue, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'B3'O;)";
+}
+
+type set of TWANIdentifierTimestamp TWANIdentifierTimestamp_List
+
+//8.111
+type record OverloadControlInformationGrouped
+{
+ OCT1 elementIdentifier, //dec 180, 'B4'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OverloadControlInformationIEs overloadControlInformationIEs
+}with {
+ variant (lengthIndicator) "LENGTHTO(overloadControlInformationIEs)";
+ variant "PRESENCE (elementIdentifier = 'B4'O;)";
+}
+
+type set OverloadControlInformationIEs
+{
+ SequenceNumber overloadControlSequenceNumber optional,
+ Metric overloadReductionMetric optional,
+ EPC_Timer periodOfValidity optional,
+ AccessPointName listOfAccessPointName optional
+}
+
+type set of OverloadControlInformationGrouped OverloadControlInformationGrouped_List;
+
+//8.112
+type record LoadControlInformationGrouped
+{
+ OCT1 elementIdentifier, //dec 181, 'B5'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LoadControlInformationIEs loadControlInformationIEs
+}with {
+ variant (lengthIndicator) "LENGTHTO(loadControlInformationIEs)";
+ variant "PRESENCE (elementIdentifier = 'B5'O;)";
+}
+
+type set LoadControlInformationIEs
+{
+ SequenceNumber loadControlSequenceNumber optional,
+ Metric loadMetric optional,
+ APNandRelativeCapacity listOfAPNandRelativeCapacity optional
+}
+
+type set of LoadControlInformationGrouped LoadControlInformationGrouped_List;
+
+//8.113
+type record Metric
+{
+ OCT1 elementIdentifier, //dec 182, 'B6'O
+ LIN2_BO_LAST lengthIndicator (1),
+ BIT4 instance,
+ BIT4 spare,
+ LIN1 metric (0..100)
+}with {
+ variant (lengthIndicator) "LENGTHTO(metric)";
+ variant "PRESENCE (elementIdentifier = 'B6'O;)";
+}
+
+//8.114
+type record SequenceNumber
+{
+ OCT1 elementIdentifier, //dec 183, 'B7'O
+ LIN2_BO_LAST lengthIndicator (4),
+ BIT4 instance,
+ BIT4 spare,
+ LIN4_BO_LAST sequenceNumber
+}with {
+ variant (lengthIndicator) "LENGTHTO(sequenceNumber)";
+ variant "PRESENCE (elementIdentifier = 'B7'O;)";
+}
+
+//8.115
+type record APNandRelativeCapacity
+{
+ OCT1 elementIdentifier, //dec 184, 'B8'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LIN1 relativeCapacity (0..100),
+ LIN1 aPNLength,
+ AccessPointName accessPointName,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(relativeCapacity,aPNLength,accessPointName, additionalOctets)";
+ variant (aPNLength) "LENGTHTO(accessPointName)";
+ variant "PRESENCE (elementIdentifier = 'B8'O;)";
+}
+
+//8.116
+type record WLANOffloadabilityIndication
+{
+ OCT1 elementIdentifier, //dec 185, 'B9'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 uTRANIndication,
+ BIT1 eUTRANIndication,
+ BIT6 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(uTRANIndication, eUTRANIndication, spare2, additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'B9'O;)";
+}
+
+//8.117
+type record PagingAndServiceInformation
+{
+ OCT1 elementIdentifier, //dec 186, 'BA'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ integer ePS_Bearer_ID_Value,
+ BIT4 spare2,
+ BIT1 pPI,
+ BIT7 spare3,
+ BIT6 pagingPolicyIndicationValue optional,
+ BIT2 spare4 optional,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(ePS_Bearer_ID_Value,spare2,pPI,spare3,pagingPolicyIndicationValue,spare4,additionalOctets)";
+ variant(ePS_Bearer_ID_Value) "FIELDLENGTH(4)";
+ variant "PRESENCE (elementIdentifier = 'BA'O;)";
+ variant (pagingPolicyIndicationValue) "PRESENCE(pPI = '1'B)";
+ variant (spare4) "PRESENCE(pPI = '1'B)";
+}
+
+//8.118
+type record IntegerNumber
+{
+ OCT1 elementIdentifier, //dec 187, 'BB'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ IntegerNumberValue integerNumberValue optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(integerNumberValue)";
+ variant "PRESENCE (elementIdentifier = 'BB'O;)";
+ variant (integerNumberValue)"CROSSTAG(int1,lengthIndicator=1;
+ int2,lengthIndicator=2)"
+}
+
+type union IntegerNumberValue
+{
+ LIN1 int1,
+ LIN2_BO_LAST int2
+}
+
+//8.119
+type record MillisecondTimeStamp
+{
+ OCT1 elementIdentifier, //dec 188, 'BC'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT6 millisecondTimeStampValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(millisecondTimeStampValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'BC'O;)";
+}
+
+//8.120
+type record MonitoringEventInformation
+{
+ OCT1 elementIdentifier, //dec 189, 'BD'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 sCEFReferenceID, //Unsigned32 ?
+ LIN1 sCEF_ID_length,
+ octetstring sCEF_ID,
+ OCT2 remainingNumberOfReports, //Unsigned32 ?
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(sCEFReferenceID,sCEF_ID_length,sCEF_ID,remainingNumberOfReports,additionalOctets)";
+ variant (sCEF_ID_length) "LENGTHTO(sCEF_ID)";
+ variant "PRESENCE (elementIdentifier = 'BD'O;)";
+}
+
+//8.121
+type record ECGI_List
+{
+ OCT1 elementIdentifier, //dec 190, 'BE'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LIN2_BO_LAST numberOfECGI,
+ ECGIs eCGIs,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(numberOfECGI,eCGIs,additionalOctets)";
+ variant (numberOfECGI) "LENGTHTO(eCGIs)";
+ variant (numberOfECGI) "UNIT(elements)";
+ variant "PRESENCE (elementIdentifier = 'BE'O;)";
+}
+
+type set of ECGI ECGIs;
+
+//8.122
+type record RemoteUEContextGrouped
+{
+ OCT1 elementIdentifier, //dec 191, 'BF'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ RemoteUEContextIEs remoteUEContextIEs
+}with {
+ variant (lengthIndicator) "LENGTHTO(remoteUEContextIEs)";
+ variant "PRESENCE (elementIdentifier = 'BF'O;)";
+}
+
+type set RemoteUEContextIEs
+{
+ RemoteUserID remoteUserID optional,
+ RemoteUEIPInformation remoteUEIPInformation optional
+}
+
+type set of RemoteUEContextGrouped RemoteUEContextGrouped_List;
+
+//8.123
+type record RemoteUserID
+{
+ OCT1 elementIdentifier, //dec 192, 'C0'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 mSISDNF,
+ BIT1 iMEIF,
+ BIT6 spare2,
+ LIN1 lengthOfIMSI,
+ hexstring iMSI,
+ LIN1 lengthOfMSISDN optional,
+ hexstring mSISDN optional,
+ LIN1 lengthOfIMEI optional,
+ octetstring iMEI optional,
+ octetstring additionalOctets optional
+}with {
+ variant "PRESENCE (elementIdentifier = 'C0'O;)";
+ variant (lengthIndicator) "LENGTHTO(mSISDNF,iMEIF,spare2,lengthOfIMSI,iMSI,lengthOfMSISDN,mSISDN,lengthOfIMEI,iMEI,additionalOctets)";
+ variant (lengthOfMSISDN) "PRESENCE(mSISDNF = '1'B)";
+ variant (mSISDN) "PRESENCE(mSISDNF = '1'B)";
+ variant (lengthOfIMEI) "PRESENCE(iMEIF = '1'B)";
+ variant (iMEI) "PRESENCE(iMEIF = '1'B)";
+ variant (lengthOfIMSI) "LENGTHTO(iMSI)";
+ variant (iMSI) "PADDING(yes)";
+ variant (iMSI) "PADDING_PATTERN('1'B)";
+ variant (lengthOfMSISDN) "LENGTHTO(mSISDN)";
+ variant (mSISDN) "PADDING(yes)";
+ variant (mSISDN) "PADDING_PATTERN('1'B)";
+ variant (lengthOfIMEI) "LENGTHTO(iMEI)" ;
+}
+
+//8.124
+type record RemoteUEIPInformation
+{
+ OCT1 elementIdentifier, //dec 193, 'C1'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring remoteUEIPInformation
+}with {
+ variant (lengthIndicator) "LENGTHTO(remoteUEIPInformation)";
+ variant "PRESENCE (elementIdentifier = 'C1'O;)";
+}
+
+//8.125
+type record CIoT_OptimizationsSupportIndication
+{
+ OCT1 elementIdentifier, //dec 194, 'C2'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ BIT1 sGNIPDN,
+ BIT1 sCNIPDN,
+ BIT1 aWOPDN,
+ BIT1 iHCSI,
+ BIT4 spare2,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(sGNIPDN,sCNIPDN,aWOPDN,iHCSI,spare2,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'C2'O;)";
+}
+
+//8.126
+type record SCEF_PDN_ConnectionGrouped
+{
+ OCT1 elementIdentifier, //dec 195, 'C3'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ SCEF_PDN_ConnectionIEs sCEF_PDN_ConnectionIEs
+}with {
+ variant (lengthIndicator) "LENGTHTO(sCEF_PDN_ConnectionIEs)";
+ variant "PRESENCE (elementIdentifier = 'C3'O;)";
+}
+
+type set SCEF_PDN_ConnectionIEs
+{
+ AccessPointName accessPointName optional,
+ EPS_BearerID ePS_BearerID optional,
+ NodeIdentifier nodeIdentifier optional
+}
+
+type set of SCEF_PDN_ConnectionGrouped SCEF_PDN_ConnectionGrouped_List;
+
+//8.127
+type record HeaderCompressionConfiguration
+{
+ OCT1 elementIdentifier, //dec 196, 'C4'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT2 rOHC_Profiles,
+ LIN2_BO_LAST maxCID (1..16383),
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(rOHC_Profiles,maxCID,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'C4'O;)";
+}
+
+//8.128
+type record ExtendedProtocolConfigOptions
+{
+ OCT1 elementIdentifier, //dec 197, 'C5'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ octetstring ePCO
+}with {
+ variant (lengthIndicator) "LENGTHTO(ePCO)";
+ variant "PRESENCE (elementIdentifier = 'C5'O;)";
+}
+
+//8.129
+type record ServingPLMNRateControl
+{
+ OCT1 elementIdentifier, //dec 197, 'C6'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ LIN2_BO_LAST uplinkRateLimit,
+ LIN2_BO_LAST downlinkRateLimit,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(uplinkRateLimit,downlinkRateLimit,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'C6'O;)";
+}
+
+//8.130
+type record Counter
+{
+ OCT1 elementIdentifier, //dec 199, 'C7'O
+ LIN2_BO_LAST lengthIndicator,
+ BIT4 instance,
+ BIT4 spare,
+ OCT4 timestampValue,
+ OCT1 counterValue,
+ octetstring additionalOctets optional
+}with {
+ variant (lengthIndicator) "LENGTHTO(timestampValue,counterValue,additionalOctets)";
+ variant "PRESENCE (elementIdentifier = 'C7'O;)";
+}
+
+// GTPC PDUs
+// Path Management messages
+//7.1.1
+type set EchoRequest
+{
+ Recovery recovery,
+ NodeFeatures sendingNodeFeatures optional,
+ PrivateExtension_List privateExtension optional
+};
+
+//7.1.2
+type set EchoResponse
+{
+ Recovery recovery,
+ NodeFeatures sendingNodeFeatures optional,
+ PrivateExtension_List privateExtension optional
+};
+
+//7.1.3
+type set VersionNotSupported
+{};
+
+// Tunnel Management messages
+//7.2.1
+type set CreateSessionRequest
+{
+ IMSI iMSI optional,
+ MSISDN mSISDN optional,
+ MEI mEI optional,
+ UserLocationInfo userLocationInfo optional,
+ ServingNetwork servingNetwork optional,
+ RAT_Type rAT_Type,
+ Indication indication optional,
+ FullyQualifiedTEID_List fullyQualifiedTEID,
+ AccessPointName accessPointName,
+ SelectionMode selectionMode optional,
+ PDN_Type pDN_Type optional,
+ PDN_AddressAllocation pDN_AddressAllocation optional,
+ APN_Restriction maxAPN_Restriction optional,
+ AggregateMaximumBitRate ambr optional,
+ EPS_BearerID linkedEPS_Bearer_ID optional,
+ TrustedWLANModeIndication trustedWLANModeIndication optional,
+ ProtocolConfigOptions protocolConfigOptions optional,
+ BearerContextGrouped_List bearerContextGrouped,
+ TraceInformation traceInformation optional,
+ Recovery recovery optional,
+ FullyQualifiedPDN_ConnectionSetID_List csid optional,
+ UE_TimeZone uE_TimeZone optional,
+ User_CSG_Information user_CSG_Information optional,
+ ChargingCharacteristics chargingCharacteristics optional,
+ LocalDistinguishedName_List lDN optional,
+ SignallingPriorityIndication signallingPriorityIndication optional,
+// MMBR maxMBR_APN_AMBR optional,
+ IP_Address_List iP_Addr optional,
+ PortNumber_List portNumber optional,
+ APCO aPCO optional,
+ TrustedWLANAccessNetworkIdentifier_List trustedWLANAccessNetworkIdentifier optional,
+ CNOperatorSelectionEntity cNOperatorSelectionEntity optional,
+ PresenceReportingAreaInformation presenceReportingAreaInformation optional,
+ OverloadControlInformationGrouped_List overloadControlInformationGrouped optional,
+ MillisecondTimeStamp originationTimeStamp optional,
+ IntegerNumber maximumWaitTime optional,
+ TWANIdentifierTimestamp wLANLocationTimestamp optional,
+ FullyQualifiedContainer nBIFOMContainer optional,
+ RemoteUEContextGrouped_List remoteUEContextGrouped optional,
+ NodeIdentifier_List nodeIdentifier optional,
+ ExtendedProtocolConfigOptions extendedProtocolConfigOptions optional,
+ ServingPLMNRateControl servingPLMNRateControl optional,
+ Counter counter optional,
+ PrivateExtension_List privateExtension optional
+} with {
+ variant(fullyQualifiedTEID) "REPEATABLE(yes)";
+ variant(bearerContextGrouped) "REPEATABLE(yes)";
+ variant(csid) "REPEATABLE(yes)";
+ variant(lDN) "REPEATABLE(yes)";
+ variant(iP_Addr) "REPEATABLE(yes)";
+ variant(portNumber) "REPEATABLE(yes)";
+ variant(overloadControlInformationGrouped) "REPEATABLE(yes)";
+ variant(remoteUEContextGrouped) "REPEATABLE(yes)";
+ variant(trustedWLANAccessNetworkIdentifier) "REPEATABLE(yes)";
+};
+
+
+//7.2.2
+//6.1.1 - Only the Cause information element, optionally Protocol Configuration Options and optionally the Recovery information element
+//shall be included in the response if the Cause contains a value indicating that the request is not accepted.
+type set CreateSessionResponse
+{
+ Cause cause,
+ ChangeReportingAction changeReportingAction optional,
+ CSG_InformationReportingAction cSG_InformationReportingAction optional,
+ HeNBInformationReporting heNBInformationReporting optional,
+ FullyQualifiedTEID_List fullyQualifiedTEID optional,
+ PDN_AddressAllocation pDN_AddressAllocation optional,
+ APN_Restriction aPN_Restriction optional,
+ AggregateMaximumBitRate ambr optional,
+ EPS_BearerID linkedEPS_Bearer_ID optional,
+ ProtocolConfigOptions protocolConfigOptions optional,
+ BearerContextGrouped_List bearerContextGrouped optional,
+ Recovery recovery optional,
+ FullyQualifiedDomainName chargingGatewayName optional,
+ IP_Address chargingGatewayAddress optional,
+ FullyQualifiedPDN_ConnectionSetID_List csid optional,
+ LocalDistinguishedName_List lDN optional,
+ EPC_Timer pGW_Back_OffTime optional,
+ APCO aPCO optional,
+ IPv4ConfigurationPrameters trustedWLANIPv4Parameters optional,
+ Indication indicationFlags optional,
+ PresenceReportingAreaAction presenceReportingAreaAction optional,
+ LoadControlInformationGrouped_List loadControlInformationGrouped optional,
+ OverloadControlInformationGrouped_List overloadControlInformationGrouped optional,
+ FullyQualifiedContainer nBIFOMContainer optional,
+ ChargingID pDNConnectionChargingID optional,
+ ExtendedProtocolConfigOptions extendedProtocolConfigOptions optional,
+ PrivateExtension_List privateExtension optional
+} with {
+ variant(fullyQualifiedTEID) "REPEATABLE(yes)";
+ variant(bearerContextGrouped) "REPEATABLE(yes)";
+ variant(csid) "REPEATABLE(yes)";
+ variant(lDN) "REPEATABLE(yes)";
+ variant(loadControlInformationGrouped) "REPEATABLE(yes)";
+ variant(overloadControlInformationGrouped) "REPEATABLE(yes)";
+};
+
+//7.2.3
+type set CreateBearerRequest
+{
+ ProcedureTransactionID procedureTransactionID optional,
+ EPS_BearerID linkedEPS_BearerID,
+ ProtocolConfigOptions protocolConfigOptions optional,
+ BearerContextGrouped_List bearerContextGrouped,
+ FullyQualifiedPDN_ConnectionSetID_List csid optional,
+ ChangeReportingAction changeReportingAction optional,
+ CSG_InformationReportingAction cSG_InformationReportingAction optional,
+ HeNBInformationReporting heNBInformationReporting optional,
+ PresenceReportingAreaAction presenceReportingAreaAction optional,
+ Indication indicationFlags optional,
+ LoadControlInformationGrouped_List loadControlInformationGrouped optional,
+ OverloadControlInformationGrouped_List overloadControlInformationGrouped optional,
+ FullyQualifiedContainer nBIFOMContainer optional,
+ PrivateExtension_List privateExtension optional
+} with {
+ variant(bearerContextGrouped) "REPEATABLE(yes)";
+ variant(csid) "REPEATABLE(yes)";
+ variant(loadControlInformationGrouped) "REPEATABLE(yes)";
+ variant(overloadControlInformationGrouped) "REPEATABLE(yes)";
+};
+
+//7.2.4
+//6.1.1 - Only the Cause information element, optionally Protocol Configuration Options and optionally the Recovery information element
+//shall be included in the response if the Cause contains a value indicating that the request is not accepted.
+type set CreateBearerResponse
+{
+ Cause cause,
+ BearerContextGrouped_List bearerContextGrouped optional,
+ Recovery recovery optional,
+ FullyQualifiedPDN_ConnectionSetID_List csid optional,
+ ProtocolConfigOptions protocolConfigOptions optional,
+ UE_TimeZone uE_TimeZone optional,