summaryrefslogtreecommitdiffstats
path: root/MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn')
-rw-r--r--MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn2532
1 files changed, 2532 insertions, 0 deletions
diff --git a/MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn b/MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn
new file mode 100644
index 00000000..5148608c
--- /dev/null
+++ b/MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_GMM_SM_Types.ttcn
@@ -0,0 +1,2532 @@
+///////////////////////////////////////////////////////////////////////////////
+// //
+// 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: MobileL3_GMM_SM_Types.ttcn
+// Rev: R1B
+// Prodnr: CNL 113 832
+// Contact: http://ttcn.ericsson.se
+// Reference: 3GPP TS 24.008 v13.4.0
+
+module MobileL3_GMM_SM_Types
+{
+
+// This module contains the GPRS Mobility Management Messages and
+// GPRS Session Management Messages of Mobile Radio Interface Layer 3 protocol
+// (DTAP) version 24.008 v13.4.0 with attributes for RAW encoding/decoding.
+//
+// Protocol discriminators and other general parts are defined in 24.007 v6.5.0
+// Some deviations added in order to make the module compatible with
+// V97 version of L3. These changes are indicated by 'V97' in comments
+
+import from General_Types all;
+import from MobileL3_CommonIE_Types all;
+import from MobileL3_MM_Types all;
+
+// =============================================================
+// GPRS Mobilty management information elements (chapter 10.5.5)
+// =============================================================
+
+// Additional Update Type - 10.5.5.0, TS 24.301 v13.4.0/9.9.3.0B
+type record AdditionalUpdateTypeTV
+{
+ AdditionalUpdateTypeV additionalUpdateType,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '0111'B)" };
+
+type record AdditionalUpdateTypeV
+{
+ BIT1 aUTV,
+ BIT3 spare
+};
+
+// Attach Result - 10.5.5.1
+type record AttachResultV
+{
+ BIT3 resultOfAttach,
+ BIT1 fop_l3
+};
+
+
+// Attach Type - 10.5.5.2
+type record AttachTypeV
+{
+ BIT3 attachType,
+ BIT1 for_l3
+};
+
+
+// Ciphering Algorithm - 10.5.5.3
+type record CipheringAlgorithmTV
+{
+ CipheringAlgorithmV cipheringAlgorithm,
+ BIT4 cipheringAlgorithmIEI
+};
+
+
+type record CipheringAlgorithmV
+{
+ BIT3 valueField,
+ BIT1 spare
+};
+
+
+// TMSI status - 10.5.5.4
+type record TMSIStatusTV
+{
+ TMSIStatusV tmsiStatusV,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1001'B)" };
+
+
+type record TMSIStatusV
+{
+ BIT1 tmsiFlag,
+ BIT3 spare // '000'B
+};
+
+
+// Detach Type - 10.5.5.5
+type record DetachTypeTV
+{
+ DetachTypeV detachTypeV,
+ BIT4 detachTypeIEI
+};
+
+
+type record DetachTypeV
+{
+ BIT3 detachType,
+ BIT1 powerOffFlag
+};
+
+
+// DRX Parameter - 10.5.5.6
+type record DRXParameterTV
+{
+ OCT1 elementIdentifier,
+ DRXParameterV drxParameter
+} with { variant "PRESENCE (elementIdentifier = '27'O)"; };
+
+
+type record DRXParameterV
+{
+ OCT1 splitPGCycleCode,
+ BIT3 nonDRXTimer,
+ BIT1 splitOnCCCH,
+ BIT4 cnSpecificDRXCycleLength
+};
+
+
+//Force To Standby - 10.5.5.7
+type record ForceToStandbyTV
+{
+ ForceToStandbyV valueField,
+ BIT4 forceToStandbyIEI
+};
+
+
+type record ForceToStandbyV{
+ BIT3 forceToStandbyValue,
+ BIT1 spare // '0'B
+};
+
+
+// P-TMSI Signature - 10.5.5.8
+type record P_TMSISignatureTV
+{
+ OCT1 elementIdentifier,
+ OCT3 valueField
+} with { variant "PRESENCE (elementIdentifier = '19'O)"; }
+
+
+//P-TMSI Signature 2 - 10.5.5.8a
+//moved into MobileL3_CommonIE_Types
+
+
+// Identity Type 2 - 10.5.5.9
+type record IdentityType2TV
+{
+ IdentityType2V valueField,
+ BIT4 identityType2IEI
+};
+
+
+type record IdentityType2V
+{
+ BIT3 valueField,
+ BIT1 spare
+};
+
+
+// IMEISV request - 10.5.5.10
+type record IMEISVRequestTV
+{
+ IMEISVRequestV imeisvRequest,
+ BIT4 imeisvRequestIEI
+};
+
+
+type record IMEISVRequestV
+{
+ BIT3 valueField,
+ BIT1 spare //'0'B
+};
+
+
+// Receive N-PDU Numbers list - 10.5.5.11
+type record ReceiveNPDUNumbersListTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ ReceiveNPDUNumbersListV numberList
+} with {
+ variant "PRESENCE (elementIdentifier = '26'O)";
+ variant (lengthIndicator) "LENGTHTO (numberList)";
+ variant (numberList) "PADDING(yes)"// Padding is needed when odd
+ // number of ReceiveNPDUNumber is used
+};
+
+type record length(1..11) of ReceiveNPDUNumber ReceiveNPDUNumbersListV;
+
+type record ReceiveNPDUNumber
+{
+ BIT4 sapi,
+ BIT8 numberValue
+} with { variant "FIELDORDER(msb)" };
+
+
+// MS network capability - 10.5.5.12
+type record MSNetworkCapabilityTLV
+{
+ OCT1 elementIdentifier,
+ MSNetworkCapabilityLV mSNetworkCapabilityLV
+} with { variant "PRESENCE (elementIdentifier = '31'O)"; };
+
+
+type record MSNetworkCapabilityLV
+{
+ LIN1 lengthIndicator,
+ MSNetworkCapabilityV msNetworkCapabilityV
+} with { variant (lengthIndicator) "LENGTHTO (msNetworkCapabilityV)";
+ variant (msNetworkCapabilityV) "PADDING(yes)"
+};
+
+
+type record MSNetworkCapabilityV //length 3-10 octets
+{
+ BIT1 gea1bit,
+ BIT1 smCapabilitiesviaDedicatedChannels,
+ BIT1 smCapabilitiesviaGPRSChannels,
+ BIT1 ucs2Support,
+ BIT2 ssScreeningIndicator,
+ BIT1 solSACapability optional, //spare in V97
+ BIT1 revisionLevelIndicatior optional, //spare in V97
+ BIT1 pFCFeatureMode optional, //spare in V97(opt)
+ BIT6 extendedGEAbits optional, //spare in V97(opt)
+ BIT1 lcsVAcapability optional, //spare in V97(opt)
+ BIT1 pSInterRATHOtoUTRANIuModeCapability optional,
+ BIT1 pSInterRATHOtoEUTRANS1ModeCapability optional,
+ BIT1 eMMCombinedProceduresCapability optional,
+ BIT1 iSRSupport optional,
+ BIT1 sRVCCtoGERANUTRANCapability optional,
+ BIT1 ePCCapability optional,
+ BIT1 nFCapability optional,
+ BIT1 gERANNertworkSharingCapability optional,
+ octetstring spare_octets length (0..3) optional
+} with { variant "FIELDORDER(msb)" };
+
+
+//MS Radio Access capability - 10.5.5.12a
+
+// Note: specification allows application of spare bits (even the forming of
+// spare octets), The only limitation is that the MS Radio Access capability IE
+// has maximum length of 51 octets
+type record MSRadioAccessCapabilityLV
+{
+ LIN1 lengthIndicator,
+ MSRadioAccessCapabilityV msRadioAccessCapabilityV
+ // Note that spareBits is automatically handled/calculated as padding
+ // so that MSRadioAccessCapabilityLV will be octet aligned when encoded
+ // even if the padding (spareBits) is not visible for the tester.
+ // lengthIndicator value = MSRadioAccessCapabilityV + (virtual) padding.
+} with {
+ variant "FIELDORDER(msb)";
+ variant (lengthIndicator) "LENGTHTO (msRadioAccessCapabilityV )";
+ variant "PADDING(yes)"
+};
+
+type record of MSRACapabilityValuesRecord MSRadioAccessCapabilityV
+with { variant "EXTENSION_BIT(reverse)";variant "FIELDORDER(msb)" };
+
+
+type record MSRACapabilityValuesRecord
+{
+ MSRACapabilityValues mSRACapabilityValues,
+ BIT1 presenceBitMSRACap
+} with { variant "FIELDORDER(msb)" };
+
+
+type union MSRACapabilityValues
+{
+ MSRACapabilityValuesExclude1111 mSRACapabilityValuesExclude1111,
+ MSRACapabilityValues1111 mSRACapabilityValues1111
+};
+
+
+type record MSRACapabilityValuesExclude1111
+{
+ BIT4 accessTechnType,
+ AccessCapabilitiesStruct 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
+{
+ integer lengthIndicator,
+ AccessCapabilities 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
+{
+ BIT3 rfPowerCapability,
+ BIT1 presenceBitA5,
+ A5BITS a5bits optional,
+ BIT1 esind,
+ BIT1 psbit,
+ BIT1 vgcs,
+ BIT1 vbs,
+ BIT1 presenceBitMultislot,
+ MultislotCap multislotcap optional,
+ AccessCapAdditionsAfterRel97 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
+{
+ AccessCapAdditionsRel99 accessCapAdditionsRel99,
+ AccessCapAdditionsAfterRel99 accessCapAdditionsAfterRel99 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel99
+{
+ 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
+{
+ AccessCapAdditionsRel4 accessCapAdditionsRel4,
+ AccessCapAdditionsAfterRel4 accessCapAdditionsAfterRel4 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel4
+{
+ BIT1 umts128RadAccTechCap,
+ BIT1 geranFeaturePackage,
+ BIT1 presenceBitExtendedDTM,
+ ExtendedDTM extendedDTM optional,
+ BIT1 modulationBasedMultislotClass
+} with {
+ variant "FIELDORDER(msb)";
+ variant (extendedDTM) "PRESENCE(presenceBitExtendedDTM = '1'B)";
+}
+
+
+type record AccessCapAdditionsAfterRel4
+{
+ AccessCapAdditionsRel5 accessCapAdditionsRel5,
+ AccessCapAdditionsAfterRel5 accessCapAdditionsAfterRel5 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+
+type record AccessCapAdditionsRel5
+{
+ BIT1 presenceBitHighMultislotCapability,
+ BIT2 highMultislotCapability optional,
+ BIT1 presenceBitGeranIuModeCapability, // this field is present to make the module compatible with earlier versions; it always must be set to 0,
+ BIT2 gMSKMultislotPowerProfile,
+ BIT2 eightPSKMultislotPowerProfile
+} with {
+ variant "FIELDORDER(msb)";
+ variant (highMultislotCapability)
+ "PRESENCE(presenceBitHighMultislotCapability = '1'B)"
+}
+
+
+type record AccessCapAdditionsAfterRel5
+{
+ AccessCapAdditionsRel6 accessCapAdditionsRel6,
+ AccessCapAdditionsAfterRel6 accessCapAdditionsAfterRel6 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsAfterRel6
+{
+ AccessCapAdditionsRel7 accessCapAdditionsRel7,
+ //AccessCapAdditionsRel8 accessCapAdditionsAfterRel7 optional
+ AccessCapAdditionsAfterRel7 accessCapAdditionsAfterRel7 optional
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsRel6
+{
+ BIT1 multipleTBFCapability,
+ BIT2 downlinkAdvancedReceiverPerformance,
+ BIT1 extendedRLCMACCtrlMsgSegmentationCap,
+ BIT1 dTMEnhancementsCapability,
+ BIT1 presenceBitDTMGPRSHighMultiSlotClass,
+ DTMGPRSHighMultiSlotClass dTMGPRSHighMultiSlotClass optional,
+ BIT1 pSHandoverCapability
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dTMGPRSHighMultiSlotClass)
+ "PRESENCE(presenceBitDTMGPRSHighMultiSlotClass = '1'B)"
+}
+
+
+type record DTMGPRSHighMultiSlotClass
+{
+ BIT3 dTMGPRSHighMultiSlotClassValue,
+ BIT1 presenceBitDTMEGPRSHighMultiSlotClass,
+ BIT3 dTMEGPRSHighMultiSlotClassValue optional
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dTMEGPRSHighMultiSlotClassValue)
+ "PRESENCE(presenceBitDTMEGPRSHighMultiSlotClass = '1'B)"
+
+}
+
+
+type record AccessCapAdditionsRel7
+{
+ BIT1 dTMHandoverCapability,
+ BIT1 presenceBitDownlinkDualCarrier,
+ DownlinkDualCarrier downlinkDualCarrier,
+ BIT1 flexibleTimeslotAssignment,
+ BIT1 gANPSHandoverCapability,
+ BIT1 rLCNonPersistentMode,
+ BIT1 reducedLatencyCapability,
+ BIT2 uplinkEGPRS2,
+ BIT2 downlinkEGPRS2
+} with {
+ variant "FIELDORDER(msb)";
+ variant (downlinkDualCarrier) "PRESENCE(presenceBitDownlinkDualCarrier = '1'B)"
+}
+
+type record AccessCapAdditionsAfterRel7
+{
+ AccessCapAdditionsRel8 accessCapAdditionsRel8,
+ AccessCapAdditionsAfterRel8 accessCapAdditionsAfterRel8
+}
+
+
+type record AccessCapAdditionsRel8
+{
+ BIT1 eUTRAFDDsupport ,
+ BIT1 eUTRATDDsupport,
+ BIT2 gERANToEUTRASupportInGERANPacketTransferMode,
+ BIT1 priorityBasedReselectionSupport
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsAfterRel8
+{
+ AccessCapAdditionsRel9 accessCapAdditionsRel9,
+ AccessCapAdditionsAfterRel9 accessCapAdditionsAfterRel9
+}
+
+type record AccessCapAdditionsRel9
+{
+ EnhancedFlexTimeslotAssignment enhancedFlexTimeslotAssignment,
+ BIT1 indicationofUpperLayerPDUStartCapabilityforRLCUM,
+ BIT1 eMSTCapability,
+ BIT1 mTTICapability,
+ BIT1 uTRACSGCellsReporting,
+ BIT1 eUTRACSGCellsReporting
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsAfterRel9
+{
+ AccessCapAdditionsRel10 accessCapAdditionsRel10,
+ AccessCapAdditionsAfterRel10 accessCapAdditionsAfterRel10
+}
+
+type record AccessCapAdditionsRel10
+{
+ BIT1 dTRCapability,
+ BIT1 eMSRCapability,
+ BIT1 fastDownlinkFrequencySwitchingCapability,
+ BIT2 tIGHTER_Capability
+}
+
+type record AccessCapAdditionsAfterRel10
+{
+ AccessCapAdditionsRel11 accessCapAdditionsRel11,
+ AccessCapAdditionsAfterRel11 accessCapAdditionsAfterRel11
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsRel11
+{
+ BIT1 fANRCapability,
+ BIT1 iPACapability,
+ BIT1 gERANNetworkSharingSupport,
+ BIT1 eUTRAWidebandRSRQMeasurementsSupport
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsAfterRel11
+{
+ AccessCapAdditionsRel12 accessCapAdditionsRel12,
+ AccessCapAdditionsAfterRel12 accessCapAdditionsAfterRel12
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsRel12
+{
+ BIT1 uTRAMultipleFrequencyBandIndicatorsSupport,
+ BIT1 eUTRAMultipleFrequencyBandIndicatorsSupport,
+ BIT1 presenceBitDLMCCapability,
+ DLMCCapability dLMCCapability optional,
+ BIT1 extendedTSCSetCapabilitySupport
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dLMCCapability) "PRESENCE(presenceBitDLMCCapability = '1'B)"
+}
+
+type record DLMCCapability
+{
+ BIT1 presenceDLMC,
+ DLMCBandReception dLMCBandReception optional,
+ BIT2 dLMCMaxBandwidth,
+ BIT6 dLMCMaxNumOfDownlinkTimeslots,
+ BIT3 dLMCMaxNumOfDownlinkCarriers
+} with {
+ variant "FIELDORDER(msb)";
+ variant (dLMCBandReception) "PRESENCE(presenceDLMC = '1'B)"
+}
+
+type record DLMCBandReception
+{
+ BIT2 dLMCNonContiguousIntraBandReception,
+ BIT1 dLMCInterBandReception
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapAdditionsAfterRel12
+{
+ AccessCapLateAdditionsRel11 accessCapLateAdditionsRel11,
+ octetstring accessCapLateAdditionsAfterRel11
+} with {
+ variant "FIELDORDER(msb)";
+}
+
+type record AccessCapLateAdditionsRel11
+{
+ BIT1 extendedEARFCNValueRange
+}
+
+type record EnhancedFlexTimeslotAssignment
+{
+ BIT1 presenceBitalternativeEFTAMultislotClass,
+ BIT4 alternativeEFTAMultislotClass,
+ BIT3 eFTAMultislotCapabilityReductionforDownlinkDualCarrier
+} with {
+ variant "FIELDORDER(msb)"
+};
+
+
+type record DownlinkDualCarrier
+{
+ BIT3 multislotCapReductionforDownLinkDualCarrier,
+ BIT1 downlinkDualCarrierforDTMCapability
+} with { variant "FIELDORDER(msb)" };
+
+
+type record ExtendedDTM
+{
+ BIT2 ExtendedDTM_GPRSMultislot,
+ BIT2 ExtendedDTM_EGPRSMultislot
+} with { variant "FIELDORDER(msb)" };
+
+
+//MultislotCap
+type record MultislotCap
+{
+ BIT1 presenceBitHscsd,
+ BIT5 hscsdmultislotclass optional,
+ BIT1 presenceBitGprs,
+ MultislotCap_GPRS gprsmultislot optional,
+ BIT1 presenceBitSms,
+ MultislotCap_SMS multislotCap_SMS optional,
+ MultislotCapAdditionsAfterRel97 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
+{
+ BIT1 presenceBitEcsdmulti,
+ BIT5 ecsdmultislotclass optional,
+ BIT1 presenceBitEgprsmulti,
+ MultislotCap_EGPRS multislotCap_EGPRS optional,
+ BIT1 presenceBitDtmGprsmulti,
+ MultislotCap_dtmgprsmultislotsubclass 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
+{
+ BIT5 gprsmultislotclass,
+ BIT1 gprsextendeddynalloccap
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MultislotCap_SMS
+{
+ BIT4 smsValue,
+ BIT4 smValue
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MultislotCap_EGPRS
+{
+ BIT5 egprsmultislotclass,
+ BIT1 egprsextendeddynalloccap
+} with { variant "FIELDORDER(msb)" };
+
+type record MultislotCap_dtmgprsmultislotsubclass
+{
+ 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
+{
+ BIT1 a51 ,
+ BIT1 a52 ,
+ BIT1 a53 ,
+ BIT1 a54 ,
+ BIT1 a55 ,
+ BIT1 a56 ,
+ BIT1 a57
+} with { variant "FIELDORDER(msb)" };
+
+
+type record MSRACapabilityValues1111
+{
+ BIT4 accessTechnType, //1111
+ integer lengthIndicator,
+ BIT1 presenceIndicator_AdditionalAccessTechnologiesRepetition,
+ AdditionalAccessTechnologiesRepetition // 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
+AdditionalAccessTechnologiesRepetition
+with { variant "EXTENSION_BIT(reverse)" };
+
+
+type record AdditionalAccessTechnologiesRecord
+{
+ AdditionalAccessTechnologies additionalAccessTechnologies,
+ BIT1 extensionBit
+} with { variant "FIELDORDER(msb)" };
+
+
+type record AdditionalAccessTechnologies
+{
+ BIT4 accessTechnType,
+ BIT3 gMSKPowerClass,
+ BIT2 psk8PowerClass
+} with { variant "FIELDORDER(msb)" };
+
+
+// GMM Cause - 10.5.5.14
+type record GMM_CauseTV
+{
+ OCT1 elementIdentifier,
+ GMM_CauseV causeValue
+} with { variant "PRESENCE (elementIdentifier = '25'O)"; };
+
+type record GMM_CauseV
+{
+ OCT1 causeValue
+};
+
+
+// Routing Area identification - 10.5.5.15
+type record RoutingAreaIdentificationV
+{
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2,
+ OCT2 lac,
+ OCT1 rac
+};
+
+// Routing Area identification - 10.5.5.15a
+// moved into MobileL3_CommonIE_Types
+
+//Update Result - 10.5.5.17
+type record UpdateResultTV
+{
+ UpdateResultV valueField,
+ BIT4 elementIdentifier
+};
+
+type record UpdateResultV
+{
+ BIT3 valueField,
+ BIT1 fOP_l3
+};
+
+
+// Update Type - 10.5.5.18
+type record UpdateTypeTV
+{
+ UpdateTypeV valueField,
+ BIT4 elementIdentifier
+};
+
+type record UpdateTypeV
+{
+ BIT3 valueField,
+ BIT1 for_l3
+};
+
+
+// ACReferenceNumber - 10.5.5.19
+type record ACReferenceNumberTV
+{
+ ACReferenceNumberV acReferenceNumber,
+ BIT4 acReferenceNumberIEI
+};
+
+type record ACReferenceNumberV
+{
+ BIT4 valueField
+};
+
+
+// Service type - 10.5.5.20
+type record ServiceTypeV
+{
+ BIT3 serviceType,
+ BIT1 spare //'0'B
+};
+
+
+// Cell Notification - 10.5.5.21
+type record CellNotificationT
+{
+ OCT1 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '8C'O)"; };
+
+
+// PC_LCSCapability - 10.5.5.22
+type record PC_LCSCapability
+{
+ OCT1 elementIdentifier,
+ PC_LCSCapabilityLV pC_LCSCapabilityLV
+} with { variant "PRESENCE (elementIdentifier = '33'O)"; };
+
+
+type record PC_LCSCapabilityLV
+{
+ LIN1 lengthIndicator, // 3 octets
+ PC_LCSCapabilityV pC_LCSCapabilityV
+} with { variant (lengthIndicator) "LENGTHTO (pC_LCSCapabilityV)"};
+
+
+type record PC_LCSCapabilityV
+{
+ BIT1 gPS_C,
+ BIT1 gPS_B,
+ BIT1 gPS_A,
+ BIT1 oTD_B,
+ BIT1 oTD_A,
+ BIT1 aPC,
+ BIT2 spare //'00'B
+};
+
+
+// NetworkFeatureSupportTV - 10.5.5.23
+type record NetworkFeatureSupportTV
+{
+ NetworkFeatureSupportV networkFeatureSupportV,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1011'B)"; };
+
+
+type record NetworkFeatureSupportV
+{
+ BIT1 eMCBS, // 24.008 v9.5.0
+ BIT1 iMSVoPS,
+ BIT1 mBMS,
+ BIT1 lCS_MOLR
+};
+
+// AdditionalNetworkFeatureSupportTLV - 10.5.5.23A
+type record AdditionalNetworkFeatureSupportTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ AdditionalNetworkFeatureSupportV additionalNetworkFeatureSupportV
+} with {
+ variant "PRESENCE (elementIdentifier = '66'O)";
+ variant (lengthIndicator) "LENGTHTO (additionalNetworkFeatureSupportV)"
+};
+
+
+type record AdditionalNetworkFeatureSupportV
+{
+ BIT1 gPRS_SMS,
+ BIT7 spare
+};
+
+// 10.5.5.24 Inter RAT information container
+type record InterRATInformationContainerTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ octetstring interRATInformationContainerV length(0..248)
+} with {
+ variant "PRESENCE (elementIdentifier = '27'O)";
+ variant (lengthIndicator) "LENGTHTO (interRATInformationContainerV)"
+};
+
+
+// 10.5.5.25 Requested MS information
+type record RequestedMSInformationTV
+{
+ BIT2 spare, //'00'B
+ BIT1 i_RAT2,
+ BIT1 i_RAT,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1010'B)"; };
+
+// 10.5.5.26 UE network capability TS 24.301 v13.4.0 / 9.9.3.34
+type record UENetworkCapabilityTLV
+{
+ OCT1 elementIdentifier,
+ UENetworkCapabilityLV uENetworkCapabilityLV
+}with {
+ variant "PRESENCE (elementIdentifier = '58'O)"
+}
+
+type record UENetworkCapabilityLV
+{
+ LIN1 lengthIndicator, //2..13
+ UENetworkCapabilityV uENetworkCapabilityV
+} with {
+ variant (lengthIndicator) "LENGTHTO (uENetworkCapabilityV)"
+}
+
+type record UENetworkCapabilityV
+{
+ BIT8 eEA,
+ BIT8 eIA,
+ BIT8 uEA optional,
+ BIT7 uIA optional,
+ BIT1 uCS2 optional,//4. octet
+ BIT1 nF optional,
+ BIT1 sRVCC optional,
+ BIT1 lCS optional,
+ BIT1 lPP optional,
+ BIT1 aCC_CSFB optional,
+ BIT1 h245_ASH optional,
+ BIT1 proSe optional,
+ BIT1 proSe_dd optional,
+ BIT1 proSe_dc optional,
+ BIT7 spare optional,//6. octet
+ octetstring spare4 length (0..7) optional
+}
+
+// 10.5.5.27 E-UTRAN inter RAT information container
+type record EUTRANinterRATInformationContainerTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ octetstring eUTRANinterRATInformationContainerV length(0..255)
+} with {
+ variant "PRESENCE (elementIdentifier = '2B'O)";
+ variant (lengthIndicator) "LENGTHTO (eUTRANinterRATInformationContainerV)"
+};
+
+// 10.5.5.28 Voice Domain Preference and UE's Usage Setting
+type record VoiceDomainPreferenceandUEsUsageSettingTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ VDPaUEsUS_V informationElement
+} with {
+ variant "PRESENCE (elementIdentifier = '5D'O)"
+ variant (lengthIndicator) "LENGTHTO (informationElement)"
+};
+
+type record VDPaUEsUS_V
+{
+ BIT2 voiceDomainPreferenceforEUTRAN,
+ BIT1 uEsUsageSetting,
+ BIT1 spare1,
+ BIT1 spare2,
+ BIT1 spare3,
+ BIT1 spare4,
+ BIT1 spare5
+};
+
+// P_TMSI Type 10.5.5.29
+//moved into MobileL3_CommonIE_Types
+
+// 10.5.5.30
+type record LocationAreaIdentification2_TLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ OCT5 locationAreaIdentificationValue
+} with {
+ variant "PRESENCE (elementIdentifier = '14'O)";
+ variant (lengthIndicator) "LENGTHTO (locationAreaIdentificationValue)"
+};
+
+// 10.5.5.31
+type record NetworkResourceIdentifierContainerTLV
+{
+ OCT1 elementIdentifier,
+ NetworkResourceIdentifierContainerLV networkResourceIdentifierContainerLV
+} with {
+ variant "PRESENCE (elementIdentifier = '10'O)";
+};
+
+type record NetworkResourceIdentifierContainerLV
+{
+ LIN1 lengthIndicator,
+ NetworkResourceIdentifierContainerV networkResourceIdentifierContainerV
+} with {
+ variant (lengthIndicator) "LENGTHTO (networkResourceIdentifierContainerV)"
+};
+
+type record NetworkResourceIdentifierContainerV
+{
+ BIT10 nRIContainerValue,
+ BIT6 spare
+} with {
+ variant (nRIContainerValue) "BITORDER (msb)";
+ variant (nRIContainerValue,spare) "FIELDORDER (msb)";
+};
+
+// 10.5.5.32
+type record ExtendedDRXParametersTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ BIT4 eDRXValue,
+ BIT4 pagingTimeWindow
+} with {
+ variant "PRESENCE (elementIdentifier = '6E'O)";
+ variant (lengthIndicator) "LENGTHTO (eDRXValue,pagingTimeWindow)"
+};
+// ========================================================
+// Session management information elements (chapter 10.5.6)
+// ========================================================
+
+// Access Point Name - 10.5.6.1
+
+type record AccessPointNameTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator, // 3-102 octets ,
+ AccessPointNameV accessPointNameValue
+} with {
+ variant "PRESENCE (elementIdentifier = '28'O)";
+ variant (lengthIndicator) "LENGTHTO (accessPointNameValue)"
+};
+
+type record AccessPointNameLV
+{
+ LIN1 lengthIndicator, // 3-102 octets ,
+ AccessPointNameV accessPointNameValue
+} with { variant (lengthIndicator) "LENGTHTO (accessPointNameValue)"};
+
+type octetstring AccessPointNameV;
+
+
+//NSAPI - 10.5.6.2
+type record NSAPITV
+{
+ OCT1 elementIdentifier,
+ NSAPIV valueField
+};
+
+type record NSAPIV
+{
+ BIT4 valueField,
+ BIT4 spare //'0000'B
+};
+
+
+//Protocol Configuration Options - 10.5.6.3
+type record ProtocolConfigOptionsTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ ProtocolConfigOptionsV protocolConfigOptionsV
+} with {
+ variant "PRESENCE (elementIdentifier = '27'O)";
+ variant (lengthIndicator) "LENGTHTO (protocolConfigOptionsV)"
+};
+
+type record ProtocolConfigOptionsV
+{
+ BIT3 configProtocol,
+ BIT4 spare , //'0000'B
+ BIT1 extensionField, //'1'B
+ ProtocolIDs_and_ContainerIDs protocolIDs_and_ContainerIDs optional
+};
+
+type record 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)"};
+
+
+// PDP Address - 10.5.6.4
+type record PDPAddressTLV
+{
+ OCT1 elementIdentifier,
+ PDPAddressLV pDPAddressLV
+} with { variant "PRESENCE (elementIdentifier = '2B'O)"; };
+
+
+type record PDPAddressLV
+{
+ LIN1 lengthIndicator,
+ PDPAddressV pdpAddressV
+} with { variant (lengthIndicator) "LENGTHTO (pdpAddressV)"};
+
+
+type record PDPAddressV
+{
+ BIT4 pdpTypeOrg,
+ BIT4 spare, //'0000'B
+ OCT1 pdpTypeNum,
+ octetstring addressInfo optional
+};
+
+
+// QoS - 10.5.6.5
+type record QoSTLV
+{
+ OCT1 elementIdentifier,
+ QoSLV qoSLV
+} with { variant "PRESENCE (elementIdentifier = '30'O)"; };
+
+
+type record QoSLV
+{
+ LIN1 lengthIndicator,
+ QoSV qoSV
+} with { variant (lengthIndicator) "LENGTHTO (qoSV)"};
+
+
+type record QoSV
+{
+ 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
+ OCT1 maxBitrateDownlinkExt2 optional, //opt because of V97
+ OCT1 guaranteedBitRateDownlinkExt2 optional, //opt because of V97
+ OCT1 maxBitrateUplinkExt2 optional, //opt because of V97
+ OCT1 guaranteedBitRateUplinkExt2 optional //opt because of V97
+};
+
+// ReAttemptIndicator - 10.5.6.5a
+type record ReAttemptIndicatorTLV
+{
+ OCT1 elementIdentifier,
+ ReAttemptIndicatorLV reAttemptIndicatorLV
+} with { variant "PRESENCE (elementIdentifier = '6B'O)"; };
+
+type record ReAttemptIndicatorLV
+{
+ LIN1 lengthIndicator,
+ ReAttemptIndicatorV reAttemptIndicatorV
+} with { variant (lengthIndicator) "LENGTHTO (reAttemptIndicatorV)"};
+
+type record ReAttemptIndicatorV
+{
+ BIT1 rATCValue,
+ BIT1 ePLMNCValue,
+ BIT6 spare
+}
+
+// SM Cause - 10.5.6.6
+type OCT1 SMCauseV;
+
+// SM Cause2 - 10.5.6.6a
+type record SMCause2TLV
+{
+ OCT1 elementIdentifier,
+ SMCause2LV sMCause2LV
+} with { variant "PRESENCE (elementIdentifier = '39'O)"; };
+
+type record SMCause2LV
+{
+ LIN1 lengthIndicator,
+ OCT1 sMCause2V
+} with { variant (lengthIndicator) "LENGTHTO (sMCause2V)"};
+
+// Linked TI - 10.5.6.7
+type record LinkedTITLV
+{
+ OCT1 elementIdentifier,
+ LinkedTILV linkedTILV
+}
+
+type record LinkedTILV
+{
+ LIN1 lengthIndicator,
+ LinkedTIV valueField
+} with { variant (lengthIndicator) "LENGTHTO (valueField)"};
+
+
+type record LinkedTIV
+{
+ BIT4 spare, //'0000'B
+ BIT3 tio,
+ BIT1 tiFlag,
+ TI_Extension tIExtension optional
+} with { variant (tIExtension)"PRESENCE(tio = '111'B)"};
+
+
+type record TI_Extension
+{
+ BIT7 tI_Value,
+ BIT1 tI_ExtBit //'1'B
+};
+
+
+// LLC SAPI - 10.5.6.9
+type record LLC_SAPITV
+{
+ OCT1 elementIdentifier,
+ LLC_SAPIV valueField
+} with { variant "PRESENCE (elementIdentifier = '32'O)"; };
+
+
+type record LLC_SAPIV
+{
+ BIT4 valueField,
+ BIT4 spare //'0000'B
+};
+
+
+// Tear down indicator - 10.5.6.10
+type record TearDownIndicatorTV
+{
+ TearDownIndicatorV tearDownIndicatorV,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1001'B)"; };
+
+type record TearDownIndicatorV
+{
+ BIT1 tdi_flag,
+ BIT3 spare //'000'B
+};
+
+
+// Packet Flow Identifier - 10.5.6.11
+type record PacketFlowIDTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ PacketFlowIDV valueField
+} with {
+ variant "PRESENCE (elementIdentifier = '34'O)";
+ variant (lengthIndicator) "LENGTHTO (valueField)"
+};
+
+
+type record PacketFlowIDV
+{
+ BIT7 valueField,
+ BIT1 spare // '0'B
+};
+
+
+// Traffic Flow Template - 10.5.6.12
+// when TFT operation is "delete packet filters from existing TFT"
+// NOTE: will need to use "TAG" variant if both IEI is present within a PDU
+type record TrafficFlowTemplateTLV
+{
+ OCT1 elementIdentifier,
+ TrafficFlowTemplateLV trafficFlowTemplateLV
+} with { variant "PRESENCE (elementIdentifier = '31'O,
+ elementIdentifier = '36'O)";
+};
+
+type record TrafficFlowTemplateLV
+{
+ LIN1 lengthIndicator,
+ TrafficFlowTemplateV valueField
+} with { variant (lengthIndicator) "LENGTHTO(valueField)"};
+
+
+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, //'001'B or
+ 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_CreateAddReplaceTFT identifier,
+ OCT1 evaluationPrecedence,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+type record PacketFilterIdentifier_CreateAddReplaceTFT
+{
+ BIT4 packetFilterIdentifier,
+ BIT2 packetFilterDirection,
+ BIT2 spare
+}
+
+type record of PacketFilterIdentifier PacketFilterList_DeletePacketFilter;
+
+
+type record PacketFilterIdentifier
+{
+ BIT4 packetFilterIdentifier,
+ BIT4 spare
+}
+
+
+type record of Parameter ParametersList;
+
+
+type record Parameter
+{
+ OCT1 parameterIdentifier,
+ LIN1 lengthIndicator,
+ octetstring contents
+} with { variant (lengthIndicator) "LENGTHTO (contents)"};
+
+
+// Temporary Mobile Group Identity - 10.5.6.13
+type record TemporaryMobileGroupIDLV
+{
+ LIN1 lengthIndicator,
+ OCT3 mBMSServiceID,
+ HEX1 mccDigit1,
+ HEX1 mccDigit2,
+ HEX1 mccDigit3,
+ HEX1 mncDigit3,
+ HEX1 mncDigit1,
+ HEX1 mncDigit2
+} with { variant (lengthIndicator) "LENGTHTO
+ (mBMSServiceID,mccDigit1,mccDigit2,mccDigit3,
+ mccDigit3,mncDigit1,mncDigit2)"};
+
+
+// MBMS Bearer Capabilities - 10.5.6.14
+type record MBMSBearerCapabilitiesLV
+{
+ LIN1 lengthIndicator,
+ OCT1 maxBitrateDownlink,
+ OCT1 maxBitrateDownlinkExtended optional
+} with { variant (lengthIndicator) "LENGTHTO (maxBitrateDownlink,
+ maxBitrateDownlinkExtended)"};
+
+// MBMS Protocol Configuration Options - 10.5.6.15
+type record MBMSProtocolConfigOptionsTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ OCT1 spare, // '00'O
+ octetstring valueField
+} with {
+ variant "PRESENCE (elementIdentifier = '35'O)";
+ variant (lengthIndicator) "LENGTHTO (spare,valueField)"
+};
+
+
+//10.5.6.16
+type record EnhancedNetworkSeviveAccessPointIDV //(V)
+{
+ OCT1 enhancedNetworkSeviveAccessPointIDValue
+}
+
+// 10.5.6.17 Request type
+type record RequestTypeTV {
+ RequestTypeV requestTypeV,
+ BIT1 spare,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1010'B)" };
+
+//001 initial request
+//010 Handover
+//011 Unused. If received, the network shall interpret this as "initial request".
+//100 Emergency
+type BIT3 RequestTypeV;
+
+// 10.5.6.18 Notification Indicator
+type record NotificationIndicatorLV
+{
+ LIN1 lengthIndicator,
+ OCT1 valueField
+} with {
+ variant (lengthIndicator) "LENGTHTO (valueField)"
+};
+
+// 10.5.6.19 Connectivity Type
+type record ConnectivityTypeTV
+{
+ BIT4 connectivityTypeValue,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1011'B)" };
+
+// 10.5.6.20 WLAN Offload Acceptability
+type record WLANOffloadAcceptabilityTV
+{
+ BIT1 eUTRANOffloadAcceptabilityValue,
+ BIT1 uTRANOffloadAcceptabilityValue,
+ BIT2 spare,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1100'B)" };
+
+// 10.5.6.21 NBIFOM container
+type record NBIFOM_ContainerTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ NBIFOM_ParameterList contents
+} with { variant "PRESENCE (elementIdentifier = '33'O)";
+ variant (lengthIndicator) "LENGTHTO (contents)" };
+
+// 6.1.1 - TS 24.161 v2.0.0
+type record of NBIFOM_Parameter NBIFOM_ParameterList;
+
+type record NBIFOM_Parameter
+{
+ OCT1 parameterIdentifier,
+ LIN1 lengthIndicator,
+ NBIFOM_ParameterContents parameterContents
+} with { variant (lengthIndicator) "LENGTHTO (parameterContents)";
+ variant (parameterContents) "CROSSTAG(
+ nBIFOM_Mode, parameterIdentifier = '01'O;
+ nBIFOM_DefaultAccess, parameterIdentifier = '02'O;
+ nBIFOM_Status, parameterIdentifier = '03'O;
+ nBIFOM_RoutingRules, parameterIdentifier = '04'O;
+ nBIFOM_IPFlowMapping, parameterIdentifier = '05'O;
+ nBIFOM_RANRulesHandling, parameterIdentifier = '06'O;
+ nBIFOM_RANRulesStatus, parameterIdentifier = '07'O;
+ nBIFOM_AccessUsabilityIndication, parameterIdentifier = '08'O;
+ unknownParameter, OTHERWISE)"};
+
+type union NBIFOM_ParameterContents
+{
+ OCT1 nBIFOM_Mode,
+ OCT1 nBIFOM_DefaultAccess,
+ OCT1 nBIFOM_Status,
+ NBIFOM_RoutingRules nBIFOM_RoutingRules,
+ NBIFOM_RoutingRules nBIFOM_IPFlowMapping,
+ OCT1 nBIFOM_RANRulesHandling,
+ OCT1 nBIFOM_RANRulesStatus,
+ NBIFOM_AccessUsabilityIndication nBIFOM_AccessUsabilityIndication,
+ octetstring unknownParameter
+};
+
+type record of NBIFOM_RoutingRule NBIFOM_RoutingRules
+type record NBIFOM_RoutingRule
+{
+ LIN1 lengthIndicator,
+ OCT1 routingRuleIdentifier,
+ BIT3 operationCode,
+ BIT3 spare,
+ BIT2 routingAccess,
+ OCT1 routingRulePrioroty,
+ RoutingFilter routingFilter
+} with { variant (lengthIndicator) "LENGTHTO (routingRuleIdentifier,operationCode,
+ spare,routingAccess,routingRulePrioroty,routingFilter)";}
+
+type record RoutingFilter
+{
+ BIT1 flagA,
+ BIT1 flagB,
+ BIT1 flagC,
+ BIT1 flagD,
+ BIT1 flagE,
+ BIT1 flagF,
+ BIT1 flagG,
+ BIT1 flagH,
+ BIT1 flagI,
+ BIT1 flagJ,
+ BIT1 flagK,
+ BIT1 flagL,
+ BIT1 flagM,
+ BIT1 flagN,
+ bitstring flagsZ length(18),
+ OCT4 sourceIPv4Address optional,
+ OCT4 destinationIPv4Address optional,
+ OCT16 sourceIPv6Address optional,
+ OCT16 destinationIPv6Address optional,
+ OCT1 sourceAddressPrefixLength optional,
+ OCT1 destinationAddressPrefixLength optional,
+ OCT4 iPSecSecurityParameterIndex optional,
+ OCT1 protocolTypeNextHeader optional,
+ OCT4 startSourcePortRange optional,
+ OCT4 endSourcePortRange optional,
+ OCT4 startDestinationPortRange optional,
+ OCT4 endDestinationPortRange optional,
+ OCT1 typeOfService optional,
+ OCT4 flowLabel optional
+} with { variant (sourceIPv4Address) "PRESENCE(flagA = '1'B)";
+ variant (destinationIPv4Address) "PRESENCE(flagB = '1'B)";
+ variant (sourceIPv6Address) "PRESENCE(flagC = '1'B)";
+ variant (destinationIPv6Address) "PRESENCE(flagD = '1'B)";
+ variant (sourceAddressPrefixLength) "PRESENCE(flagE = '1'B)";
+ variant (destinationAddressPrefixLength) "PRESENCE(flagF = '1'B)";
+ variant (iPSecSecurityParameterIndex) "PRESENCE(flagG = '1'B)";
+ variant (protocolTypeNextHeader) "PRESENCE(flagH = '1'B)";
+ variant (startSourcePortRange) "PRESENCE(flagI = '1'B)";
+ variant (endSourcePortRange) "PRESENCE(flagJ = '1'B)";
+ variant (startDestinationPortRange) "PRESENCE(flagK = '1'B)";
+ variant (endDestinationPortRange) "PRESENCE(flagL = '1'B)";
+ variant (typeOfService) "PRESENCE(flagM = '1'B)";
+ variant (flowLabel) "PRESENCE(flagN = '1'B)";
+}
+
+type record NBIFOM_AccessUsabilityIndication
+{
+ BIT2 threeGPPAccessUsableValue,
+ BIT2 wLANAccessUsableValue,
+ BIT4 spare
+}
+// =================================================
+// GPRS Common information elements (chapter 10.5.7)
+// =================================================
+
+//PDPContextStatus - 10.5.7.1
+type record PDPContextStatusTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ OCT2 valueField
+} with {
+ variant "PRESENCE (elementIdentifier = '32'O)";
+ variant (lengthIndicator) "LENGTHTO (valueField)"
+};
+
+
+// Radio priority - 10.5.7.2
+type record RadioPriorityTV
+{
+ RadioPriorityV valueField,
+ BIT4 elementIdentifier
+} with { variant "PRESENCE (elementIdentifier = '1000'B)"; };
+
+
+type record RadioPriorityV
+{
+ BIT3 priorityLevelValue,
+ BIT1 spare // '0'B
+};
+
+
+//GPRS Timer - 10.5.7.3
+type record GPRSTimerTV
+{
+ OCT1 elementIdentifier,
+ GPRSTimerV gprsTimerV
+} with { variant "PRESENCE (elementIdentifier = '17'O)"; };
+
+
+type record GPRSTimerV
+{
+ BIT5 timerValue,
+ BIT3 unit
+};
+
+// GPRS Timer2 - 10.5.7.4
+type record GPRSTimer2TLV
+{
+ OCT1 elementIdentifier, //'2A'O or '37'O
+ LIN1 lengthIndicator,
+ GPRSTimerV gprsTimer2V // the same as GPRSTimerV
+} with {
+ variant (lengthIndicator) "LENGTHTO (gprsTimer2V)"
+};
+
+// GPRS Timer3 - 10.5.7.4a
+// GPRSTimer3TLV See MobileL3_CommonIE_Types.ttcn
+
+// Radio priority2 - 10.5.7.5
+type record RadioPriority2TV
+{
+ RadioPriority2V valueField,
+ BIT4 elementIdentifier
+};
+
+
+type record RadioPriority2V
+{
+ BIT3 priorityLevelValue,
+ BIT1 spare // '0'B
+};
+
+
+// 10.5.7.6 MBMS context status
+type record MBMS_ContextStatusTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ octetstring mBMSContextStatusInformation length (0..16)
+} with {
+ variant "PRESENCE (elementIdentifier = '35'O)";
+ variant (lengthIndicator) "LENGTHTO (mBMSContextStatusInformation)"
+};
+
+
+// 10.5.7.7
+type record UplinkDataStatusTLV
+{
+ OCT1 elementIdentifier,
+ LIN1 lengthIndicator,
+ UplinkDataStatusV valueField
+} with {
+ variant "PRESENCE (elementIdentifier = '36'O)";
+ variant (lengthIndicator) "LENGTHTO (valueField)"
+};
+
+type record UplinkDataStatusV
+{
+ BIT5 spare,
+ BIT3 nSAPI_5_to_7,
+ BIT8 nSAPI_8_to_15
+};
+
+// 10.5.7.8
+// DevicePropertiesTV -> See MobileL3_CommonIE_Types.ttcn
+
+
+// ==============================================
+// GPRS Mobility Management Messages (chapter 9.4)
+// ==============================================
+
+// GMM Attach Request - 9.4.1
+type record PDU_GMM_AttachRequest
+{
+ BIT8 messageType, // '00000001'B
+ MSNetworkCapabilityLV msNetworkCapability,
+ AttachTypeV attachType,
+ CipheringKeySequenceNumberV gprsCKSN,
+ DRXParameterV drxParam,
+ MobileIdentityLV mobileIdentity,
+ RoutingAreaIdentificationV oldRoutingAreaID,
+ MSRadioAccessCapabilityLV msRACap,
+ P_TMSISignatureTV ptmsiSignature optional,
+ GPRSTimerTV reqGPRStimer optional,
+ TMSIStatusTV tmsiStatus optional,
+ PC_LCSCapability pC_LCSCapability optional,
+ MobileStationClassmark2_TLV mobileStationClassmark2 optional,
+ MobileStationClassmark3_TLV mobileStationClassmark3 optional,
+ SupportedCodecList supportedCodecs optional,
+ UENetworkCapabilityTLV uENetworkCapability optional,
+ MobileIdentityTLV additionalMobileIdentity optional,
+ RoutingAreaIdentification2TLV routingAreaIdentification2 optional,
+ VoiceDomainPreferenceandUEsUsageSettingTLV voiceDomainandUEsUsageSetting optional,
+ DevicePropertiesTV deviceProperties optional,
+ P_TMSI_TypeTV p_TMSI_Type optional,
+ MS_NetworkFeatureSupportTV mS_NetworkFeatureSupport optional,
+ LocationAreaIdentification2_TLV oldLocationAreaIdentification optional,
+ AdditionalUpdateTypeTV additionalUpdateType optional,
+ NetworkResourceIdentifierContainerTLV tMSIBasedNRIcontainer optional,
+ GPRSTimer2TLV t3324 optional,
+ GPRSTimer3TLV t3312_ExtendedValue optional,
+ ExtendedDRXParametersTLV extendedDRXParameters optional
+} with {
+ variant "PRESENCE (messageType = '00000001'B)";
+ variant "TAG
+ (
+ additionalMobileIdentity, elementIdentifier = '0011010'B;
+ deviceProperties, elementIdentifier = '1101'B; //D
+ mS_NetworkFeatureSupport, elementIdentifier = '1100'B; //C
+ t3324, elementIdentifier = '6a'O;
+ t3312_ExtendedValue, elementIdentifier = '39'O
+ )"
+};
+
+// GMM Attach Accept - 9.4.2
+type record PDU_GMM_AttachAccept
+{
+ BIT8 messageType,
+ AttachResultV attachResult,
+ ForceToStandbyV forceToStandby,
+ GPRSTimerV updateTimer,
+ RadioPriorityV radioPriority, //SMS
+ RadioPriority2V radioPriorityTOM8, // TOM8
+ RoutingAreaIdentificationV routingAreaIdentification,
+ P_TMSISignatureTV ptmsiSignature optional,
+ GPRSTimerTV readyTimer optional,
+ MobileIdentityTLV allocatedPTMSI optional,
+ MobileIdentityTLV msIdentity optional,
+ GMM_CauseTV gmmCause optional,
+ GPRSTimer2TLV t3302 optional,
+ CellNotificationT cellNotification optional,
+ PLMNListTLV equivalentPLMNs optional,
+ NetworkFeatureSupportTV networkFeatureSupport optional,
+ EmergencyNumberListTLV emergencyNumberList optional,
+ RequestedMSInformationTV requestedMSInformation optional,
+ GPRSTimer2TLV t3319 optional,
+ GPRSTimer2TLV t3323 optional,
+ GPRSTimer3TLV t3312_ExtendedValue optional,
+ AdditionalNetworkFeatureSupportTLV additionalNetworkFeatureSupport optional,
+ GPRSTimer2TLV t3324 optional,
+ ExtendedDRXParametersTLV extendedDRXParameters optional
+} with {
+ variant "PRESENCE (messageType = '00000010'B)";
+ variant "TAG
+ (
+ allocatedPTMSI, elementIdentifier = '0011000'B; //'18'O 7 bits
+ msIdentity, elementIdentifier = '0100011'B; //'23'O 7 bits
+ t3302, elementIdentifier = '2A'O;
+ t3319, elementIdentifier = '37'O;
+ t3323, elementIdentifier = '38'O;
+ t3312_ExtendedValue, elementIdentifier = '39'O;
+ t3324, elementIdentifier = '6a'O;
+ )"
+};
+
+
+// GMM Attach Complete - 9.4.3
+type record PDU_GMM_AttachComplete
+{
+ BIT8 messageType,
+ InterRATInformationContainerTLV interRATHandoverInformation optional,
+ EUTRANinterRATInformationContainerTLV eUTRANinterRATHandoverInformation optional
+} with { variant "PRESENCE (messageType = '00000011'B)"; };
+
+
+// GMM Attach Reject - 9.4.4
+type record PDU_GMM_AttachReject
+{
+ BIT8 messageType,
+ GMM_CauseV gmmCause,
+ GPRSTimer2TLV t3302 optional,
+ GPRSTimer2TLV t3346 optional
+
+} with { variant "PRESENCE (messageType = '00000100'B)";
+ variant "TAG
+ (
+ t3302, elementIdentifier = '2A'O;
+ t3346, elementIdentifier = '3A'O;
+ )"
+};
+
+// GMM Detach Request - 9.4.5
+
+// GMM Detach Request (mobile terminated detach) - 9.4.5.1
+type record PDU_GMM_DetachRequest_SGSN_MS
+{
+ BIT8 messageType,
+ DetachTypeV detachType,
+ ForceToStandbyV forceToStandby,
+ GMM_CauseTV gmmCause optional
+} with { variant "PRESENCE (messageType = '00000101'B)"; };
+
+// GMM Detach Request (mobile originating detach) - 9.4.5.2
+type record PDU_GMM_DetachRequest_MS_SGSN
+{
+ BIT8 messageType,
+ DetachTypeV detachType,
+ BIT4 spare,
+ MobileIdentityTLV ptmsi optional,
+ P_TMSISignature2TLV ptmsiSignature optional
+} with {
+ variant "PRESENCE (messageType = '00000101'B)";
+ variant "TAG (ptmsi, elementIdentifier = '0011000'B;)" //'18'O 7 bits
+};
+
+// GMM Detach Accept - 9.4.6
+
+// GMM Detach Accept (mobile terminated detach) 9.4.6.1
+type record PDU_GMM_DetachAccept_MS_SGSN
+{
+ BIT8 messageType
+} with { variant "PRESENCE (messageType = '00000110'B)"; };
+
+// GMM Detach Accept (mobile originating detach) 9.4.6.2
+type record PDU_GMM_DetachAccept_SGSN_MS
+{
+ BIT8 messageType,
+ ForceToStandbyV forceToStandby,
+ BIT4 spare
+} with { variant "PRESENCE (messageType = '00000110'B)"; };
+
+// GMM P-TMSI reallocation command - 9.4.7
+type record PDU_GMM_P_TMSIReallocationCommand
+{
+ BIT8 messageType,
+ MobileIdentityLV allocatedPTMSI,
+ RoutingAreaIdentificationV routingAreaIdentification,
+ ForceToStandbyV forceToStandby,
+ BIT4 spare,
+ P_TMSISignatureTV ptmsiSignature optional
+} with { variant "PRESENCE (messageType = '00010000'B)"; };
+
+// GMM P-TMSI reallocation complete - 9.4.8
+type record PDU_GMM_P_TMSIReallocationComplete
+{
+ BIT8 messageType
+} with { variant "PRESENCE (messageType = '00010001'B)"; };
+
+// GMM Authentication and ciphering request - 9.4.9
+type record PDU_GMM_AuthenticationAndCipheringRequest
+{
+ BIT8 messageType,
+ CipheringAlgorithmV cipheringAlgorithm,
+ IMEISVRequestV imeisvRequest,
+ ForceToStandbyV forceToStandby,
+ ACReferenceNumberV acReferenceNumber,
+ AuthenticationParameterRANDTV authenticationParameterRAND optional,
+ CipheringKeySequenceNumberTV cipheringKeySequenceNumber optional,
+ AuthenticationParameterAUTNTLV authenticationParameterAUTN optional
+} with { variant "PRESENCE (messageType = '00010010'B)";
+ variant "TAG (authenticationParameterAUTN, elementIdentifier = '28'O)";
+};
+
+// GMM Authentication and ciphering response - 9.4.10
+type record PDU_GMM_AuthenticationAndCipheringResponse
+{
+ BIT8 messageType,
+ ACReferenceNumberV acReferenceNumber,
+ BIT4 spare,
+ AuthenticationResponseParameterTV authenticationParResp optional,
+ MobileIdentityTLV imeisv optional,
+ AuthenticationResponseParameterUMTSTLV authenticationRespParExt optional
+} with {
+ variant "PRESENCE (messageType = '00010011'B)";
+ variant "TAG (imeisv, elementIdentifier = '0100011'B;)"
+ variant "TAG (authenticationRespParExt, elementIdentifier = '29'O)";
+};
+
+// GMM Authentication and Ciphering Failure - 9.4.10a
+type record PDU_GMM_AuthenticationAndCipheringFailure
+{
+ BIT8 messageType,
+ GMM_CauseV gmmCause,
+ AuthenticationFailureParametersTLV authenticationFailureParam optional
+} with { variant "PRESENCE (messageType = '00011100'B)";
+ variant "TAG (authenticationFailureParam, elementIdentifier = '30'O)";
+};
+
+// GMM Authentication and ciphering reject - 9.4.11
+type record PDU_GMM_AuthenticationAndCipheringReject
+{
+ BIT8 messageType
+} with { variant "PRESENCE (messageType = '00010100'B)"; };
+
+// GMM Identity Request - 9.4.12
+type record PDU_GMM_IdentityRequest
+{
+ BIT8 messageType,
+ IdentityType2V identityType,
+ ForceToStandbyV forceToStandby
+} with { variant "PRESENCE (messageType = '00010101'B)"; };
+
+// GMM Identity response - 9.4.13
+type record PDU_GMM_IdentityResponse
+{
+ BIT8 messageType,
+ MobileIdentityLV mobileIdentity
+} with { variant "PRESENCE (messageType = '00010110'B)"; };
+
+// GMM Routing area update request - 9.4.14
+type record PDU_GMM_RoutingAreaUpdateRequest
+{
+ BIT8 messageType,
+ UpdateTypeV updateType,
+ CipheringKeySequenceNumberV gprsCKSN,
+ RoutingAreaIdentificationV oldRoutingAreaId,
+ MSRadioAccessCapabilityLV msRACap,
+ P_TMSISignatureTV oldPTMSISignature optional,
+ GPRSTimerTV readyTimerValue optional,
+ DRXParameterTV drxParameter optional,
+ TMSIStatusTV tmsiStatus optional,
+ MobileIdentityTLV ptmsi optional,
+ MSNetworkCapabilityTLV mSNetworkCapability optional,
+ PDPContextStatusTLV pdpContextStatus optional,
+ PC_LCSCapability pC_LCSCapability optional,
+ MBMS_ContextStatusTLV mBMS_ContextStatus optional,
+ UENetworkCapabilityTLV uENetworkCapability optional,
+ MobileIdentityTLV additionalMobileIdentity optional,
+ RoutingAreaIdentification2TLV oldRoutingAreaIdentification2 optional,
+ MobileStationClassmark2_TLV mobileStationClassmark2 optional,
+ MobileStationClassmark3_TLV mobileStationClassmark3 optional,
+ SupportedCodecList supportedCodecs optional,
+ VoiceDomainPreferenceandUEsUsageSettingTLV voiceDomainUEUsageSetting optional,
+ P_TMSI_TypeTV p_TMSI_Type optional,
+ DevicePropertiesTV deviceProperties optional,
+ MS_NetworkFeatureSupportTV mS_NetworkFeatureSupport optional,
+ LocationAreaIdentification2_TLV oldLocationAreaIdentification optional,
+ AdditionalUpdateTypeTV additionalUpdateType optional,
+ NetworkResourceIdentifierContainerTLV tMSIBasedNRIcontainer optional,
+ GPRSTimer2TLV t3324 optional,
+ GPRSTimer3TLV t3312_ExtendedValue optional,
+ ExtendedDRXParametersTLV extendedDRXParameters optional
+} with {
+ variant "PRESENCE (messageType = '00001000'B)";
+ variant "TAG (
+ ptmsi, elementIdentifier = '0011000'B; //'18'O 7 bits
+ additionalMobileIdentity, elementIdentifier = '0011010'B;
+ deviceProperties, elementIdentifier = '1101'B; //D
+ mS_NetworkFeatureSupport, elementIdentifier = '1100'B; //C
+ t3324, elementIdentifier = '6a'O;
+ t3312_ExtendedValue, elementIdentifier = '39'O
+ )"
+};
+
+// GMM Routing Area update accept - 9.4.15
+type record PDU_GMM_RoutingAreaUpdateAccept
+{
+ BIT8 messageType,
+ ForceToStandbyV forceToStandby,
+ UpdateResultV updateResult,
+ GPRSTimerV raUpdateTimer,
+ RoutingAreaIdentificationV routingAreaId,
+ P_TMSISignatureTV ptmsiSignature optional,
+ MobileIdentityTLV allocatedPTMSI optional,
+ MobileIdentityTLV msIdentity optional,
+ ReceiveNPDUNumbersListTLV receiveNPDUNumbers optional,
+ GPRSTimerTV readyTimer optional,
+ GMM_CauseTV gmmCause optional,
+ GPRSTimer2TLV t3302 optional,
+ CellNotificationT cellNotification optional,
+ PLMNListTLV equivalentPLMNs optional,
+ PDPContextStatusTLV pdpContextStatus optional,
+ NetworkFeatureSupportTV networkFeatureSupport optional,
+ EmergencyNumberListTLV emergencyNumberList optional,
+ MBMS_ContextStatusTLV mBMS_ContextStatus optional,
+ RequestedMSInformationTV requestedMSInformation optional,
+ GPRSTimer2TLV t3319 optional,
+ GPRSTimer2TLV t3323 optional,
+ GPRSTimer3TLV t3312_ExtendedValue optional,
+ AdditionalNetworkFeatureSupportTLV additionalNetworkFeatureSupport optional,
+ GPRSTimer2TLV t3324 optional,
+ ExtendedDRXParametersTLV extendedDRXParameters optional
+} with {
+ variant "PRESENCE (messageType = '00001001'B)";
+ variant "TAG
+ (
+ allocatedPTMSI, elementIdentifier = '0011000'B; //'18'O 7 bits
+ msIdentity, elementIdentifier = '0100011'B; //'23'O 7 bits
+ t3302, elementIdentifier = '2A'O;
+ t3319, elementIdentifier = '37'O;
+ t3323, elementIdentifier = '38'O;
+ t3312_ExtendedValue, elementIdentifier = '39'O;
+ t3324, elementIdentifier = '6a'O;
+ )"
+};
+
+// GMM Routing area update complete - 9.4.16
+type record PDU_GMM_RoutingAreaUpdateComplete
+{
+ BIT8 messageType,
+ ReceiveNPDUNumbersListTLV receiveNPDUNumbers optional,
+ InterRATInformationContainerTLV interRATHandoverInformation optional,
+ EUTRANinterRATInformationContainerTLV eUTRANinterRATHandoverInformation optional
+} with { variant "PRESENCE (messageType = '00001010'B)"; };
+
+// GMM Routing area update reject - 9.4.17
+type record PDU_GMM_RoutingAreaUpdateReject
+{
+ BIT8 messageType,
+ GMM_CauseV gmmCause,
+ ForceToStandbyV forceToStandby,
+ BIT4 spare,
+ GPRSTimer2TLV t3302 optional,
+ GPRSTimer2TLV t3346 optional
+} with {
+ variant "PRESENCE (messageType = '00001011'B)";
+ variant "TAG
+ (
+ t3302, elementIdentifier = '2A'O;
+ t3346, elementIdentifier = '3A'O;
+ )"
+};
+
+// GMM GMM Status - 9.4.18
+type record PDU_GMM_GMM_Status
+{
+ BIT8 messageType,
+ GMM_CauseV gmmCause
+} with { variant "PRESENCE (messageType = '00100000'B)"; };
+
+
+// GMM GMM Information - 9.4.19
+type record PDU_GMM_GMM_Information
+{
+ BIT8 messageType,
+ NetworkNameTLV fullNetworkName optional,
+ NetworkNameTLV shortNetworkName optional,
+ TimeZoneTV networkTimeZone optional,
+ TimeZoneAndTimeTV networkTimeAndTimeZone optional,
+ LSA_IdentifierTLV lsaIdentity optional,
+ DaylightSavingTimeTLV networkDaylightSavingTime optional
+} with {
+ variant "PRESENCE (messageType = '00100001'B)";
+ variant "TAG
+ (
+ fullNetworkName, elementIdentifier = '1000011'B;//'43'O 7 bits
+ shortNetworkName, elementIdentifier = '1000101'B;//'45'O 7 bits
+ )"
+};
+
+// GMM Service Request - 9.4.20
+type record PDU_GMM_ServiceRequest
+{
+ BIT8 messageType,
+ CipheringKeySequenceNumberV cipheringKeySeqNum,
+ ServiceTypeV serviceType,
+ MobileIdentityLV ptmsi,
+ PDPContextStatusTLV pdpContextStatus optional, // this IE shall be included by the MS
+ MBMS_ContextStatusTLV mBMS_ContextStatus optional,
+ UplinkDataStatusTLV uplinkDataStatus optional,
+ DevicePropertiesTV deviceProperties optional
+} with { variant "PRESENCE (messageType = '00001100'B)";
+ variant "TAG (deviceProperties, elementIdentifier = '1101'B; //D
+ )"
+};
+
+// GMM Service Accept - 9.4.21
+type record PDU_GMM_ServiceAccept
+{
+ BIT8 messageType,
+ PDPContextStatusTLV pdpContextStatus optional,
+ MBMS_ContextStatusTLV mBMS_ContextStatus optional
+} with { variant "PRESENCE (messageType = '00001101'B)"; };
+
+// GMM Service Reject - 9.4.22
+type record PDU_GMM_ServiceReject
+{
+ BIT8 messageType,
+ GMM_CauseV gmmCause,
+ GPRSTimer2TLV t3346 optional
+} with { variant "PRESENCE (messageType = '00001110'B)"; };
+
+
+// ==============================================
+// GPRS Session Management Messages (chapter 9.5)
+// ==============================================
+
+// SM Activate PDP Context Request - 9.5.1
+type record PDU_SM_ActivatePDPContextRequest
+{
+ BIT8 messageType,
+ NSAPIV requestedNSAPI,
+ LLC_SAPIV requestedLLCSAPI,
+ QoSLV requestedQoS,
+ PDPAddressLV requestedPDPaddress,
+ AccessPointNameTLV accessPointName optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ RequestTypeTV requestType optional,
+ DevicePropertiesTV deviceProperties optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000001'B)";
+ variant "TAG ( deviceProperties, elementIdentifier = '1100'B; //C
+ )"
+};
+
+
+// SM Activate PDP Context Accept - 9.5.2
+type record PDU_SM_ActivatePDPContextAccept
+{
+ BIT8 messageType,
+ LLC_SAPIV negotiatedLLCSAPI,
+ QoSLV negotiatedQoS,
+ RadioPriorityV radioPriority,
+ BIT4 spare,
+ PDPAddressTLV pdpAddress optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ PacketFlowIDTLV packetFlowID optional,
+ SMCause2TLV sMCause2 optional,
+ ConnectivityTypeTV connectivityType optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000010'B)"; };
+
+
+// SM Activate PDP Context Reject - 9.5.3
+type record PDU_SM_ActivatePDPContextReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ GPRSTimer3TLV backOffTimer optional,
+ ReAttemptIndicatorTLV reAttemptIndicator optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000011'B)";
+ variant "TAG (backOffTimer, elementIdentifier = '37'O)"
+};
+
+
+// SM Activate Secondary PDP Context - 9.5.4
+type record PDU_SM_ActivateSecondaryPDPContextRequest
+{
+ BIT8 messageType,
+ NSAPIV requestedNSAPI,
+ LLC_SAPIV requestedLLC_SAPI,
+ QoSLV requestedQoS,
+ LinkedTILV linkedTI,
+ TrafficFlowTemplateTLV tft optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ DevicePropertiesTV deviceProperties optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001101'B)";
+ variant "TAG (deviceProperties, elementIdentifier = '1100'B; //C
+ )"
+};
+// SM Activate Secondary PDP Context Accept - 9.5.5
+type record PDU_SM_ActivateSecondaryPDPContextAccept
+{
+ BIT8 messageType,
+ LLC_SAPIV negotiatedLLC_SAPI,
+ QoSLV negotiatedQoS,
+ RadioPriorityV radioPriority,
+ BIT4 spare,
+ PacketFlowIDTLV packetFlowIdentifier optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001110'B)"; };
+
+
+// SM Activate Secondary PDP Context Reject - 9.5.6
+type record PDU_SM_ActivateSecondaryPDPContextReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ GPRSTimer3TLV backOffTimer optional,
+ ReAttemptIndicatorTLV reAttemptIndicator optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001111'B)";
+ variant "TAG (backOffTimer, elementIdentifier = '37'O)"
+};
+
+
+// SM Request PDP context activation - 9.5.7
+type record PDU_SM_RequestPDPContextActivation
+{
+ BIT8 messageType,
+ PDPAddressLV offeredPDPAdress,
+ AccessPointNameTLV accessPointName optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000100'B)"; };
+
+
+// SM Request PDP context activation reject - 9.5.8
+type record PDU_SM_RequestPDPContextActivationReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000101'B)"; };
+
+
+// SM Modify PDP context request (Network to MS direction) - 9.5.9
+type record PDU_SM_ModifyPDPContextRequest_SGSN_MS
+{
+ BIT8 messageType ,
+ RadioPriorityV radioPriority,
+ BIT4 spare,
+ LLC_SAPIV requestedLLC_SAPI,
+ QoSLV newQoS,
+ PDPAddressTLV pdpAddress optional,
+ PacketFlowIDTLV packetFlowIdentifier optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ TrafficFlowTemplateTLV tFT optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001000'B)"; };
+
+
+// SM Modify PDP context request (MS to network direction) - 9.5.10
+type record PDU_SM_ModifyPDPContextRequest_MS_SGSN
+{
+ BIT8 messageType,
+ LLC_SAPITV requestedLLC_SAPI optional,
+ QoSTLV requestedNewQoS optional,
+ TrafficFlowTemplateTLV newTFT optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ DevicePropertiesTV deviceProperties optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001010'B)";
+ variant "TAG (deviceProperties, elementIdentifier = '1100'B; //C
+ )"
+};
+
+
+// SM Modify PDP context accept (MS to network direction) - 9.5.11
+type record PDU_SM_ModifyPDPContextAccept_MS_SGSN
+{
+ BIT8 messageType,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001001'B)"; };
+
+
+// SM Modify PDP context accept (Network to MS direction) - 9.5.12
+type record PDU_SM_ModifyPDPContextAccept_SGSN_MS
+{
+ BIT8 messageType,
+ QoSTLV negotiatedQoS optional,
+ LLC_SAPITV negotiatedLLC_SAPI optional,
+ RadioPriorityTV newRadioPriority optional,
+ PacketFlowIDTLV packetFlowIdentifier optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001011'B)"; };
+
+
+// SM Modify PDP Context reject - 9.5.13
+type record PDU_SM_ModifyPDPContextReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ GPRSTimer3TLV backOffTimer optional,
+ ReAttemptIndicatorTLV reAttemptIndicator optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01001100'B)";
+ variant "TAG (backOffTimer, elementIdentifier = '37'O)"
+};
+
+
+// SM Deactivate PDP Context Request - 9.5.14
+type record PDU_SM_DeactivatePDPContextRequest
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ TearDownIndicatorTV tearDownIndicator optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional,
+ GPRSTimer3TLV t3396 optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000110'B)";
+ variant "TAG (t3396, elementIdentifier = '37'O)"
+};
+
+
+// SM Deactivate PDP Context Accept 3GPP - 9.5.15
+type record PDU_SM_DeactivatePDPContextAccept
+{
+ BIT8 messageType,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01000111'B)"; };
+
+
+// Request Secondary PDP Context Activation - 9.5.15a
+type record PDU_SM_RequestSecondaryPDPContextActivation
+{
+ BIT8 messageType,
+ QoSLV requiredQoS,
+ LinkedTILV linkedTI,
+ TrafficFlowTemplateTLV tFT optional,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ WLANOffloadAcceptabilityTV wLANOffloadIndication optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01011011'B)"; };
+
+
+// Request Secondary PDP Context Activation Reject - 9.5.15b
+type record PDU_SM_RequestSecondaryPDPContextActivationReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ ProtocolConfigOptionsTLV protocolConfigOpts optional,
+ NBIFOM_ContainerTLV nBIFOM_Container optional
+} with { variant "PRESENCE (messageType = '01011100'B)"; };
+
+// Notification - 9.5.16a
+type record PDU_SM_Notification
+{
+ BIT8 messageType,
+ NotificationIndicatorLV notificationIndicator
+} with { variant "PRESENCE (messageType = '01011101'B)"; };
+
+// SM SM Status - 9.5.21
+type record PDU_SM_SM_Status
+{
+ BIT8 messageType,
+ SMCauseV smCause
+} with { variant "PRESENCE (messageType = '01010101'B)"; };
+
+
+// Activate MBMS Context Request - 9.5.22
+type record PDU_SM_ActivateMBMSContextRequest
+{
+ BIT8 messageType,
+ EnhancedNetworkSeviveAccessPointIDV requestedMBMS_NSAPI,
+ LLC_SAPIV requestedLLCSAPI,
+ MBMSBearerCapabilitiesLV supportdMBMSBearerCapabilities,
+ PDPAddressLV requestedMulticastAddress,
+ AccessPointNameLV accessPointName,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional,
+ DevicePropertiesTV deviceProperties optional
+} with { variant "PRESENCE (messageType = '01010110'B)";
+ variant "TAG(deviceProperties, elementIdentifier = '1100'B; //C
+ )"
+};
+
+
+// Activate MBMS Context Accept - 9.5.23
+type record PDU_SM_ActivateMBMSContextAccept
+{
+ BIT8 messageType,
+ TemporaryMobileGroupIDLV temporaryMobileGroupIDLV,
+ LLC_SAPIV negotiatedLLCSAPI,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional
+} with { variant "PRESENCE (messageType = '01010111'B)"; };
+
+
+// Activate MBMS Context Reject - 9.5.24
+type record PDU_SM_ActivateMBMSContextReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional,
+ GPRSTimer3TLV backOffTimer optional,
+ ReAttemptIndicatorTLV reAttemptIndicator optional
+} with { variant "PRESENCE (messageType = '01011000'B)";
+ variant "TAG (backOffTimer, elementIdentifier = '37'O)"
+};
+
+
+// Request MBMS Context Activation - 9.5.25
+type record PDU_SM_RequestMBMSContextActivation
+{
+ BIT8 messageType,
+ NSAPIV linkedNSAPI,
+ PDPAddressLV offeredMulticastAddress,
+ AccessPointNameLV accessPointName,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional
+} with { variant "PRESENCE (messageType = '01011001'B)"; };
+
+
+// Request MBMS Context Activation Reject - 9.5.26
+type record PDU_SM_RequestMBMSContextActivationReject
+{
+ BIT8 messageType,
+ SMCauseV smCause,
+ MBMSProtocolConfigOptionsTLV mBMSprotocolConfigOptions optional
+} with { variant "PRESENCE (messageType = '01011010'B)"; };
+
+
+//==============================================================================
+//==============================================================================
+// GPRS SESSION MANAGEMENT MESSAGES Messages MS TO SGSN
+//==============================================================================
+//==============================================================================
+type union L3_GSM_MS_SGSN
+{
+ PDU_SM_ActivatePDPContextRequest activatePDPContextRequest,
+ PDU_SM_ActivateSecondaryPDPContextRequest activateSecondaryPDPContextRequest,
+ PDU_SM_RequestPDPContextActivationReject requestPDPContextActivationReject,
+ PDU_SM_ModifyPDPContextRequest_MS_SGSN modifyPDPContextRequest_MS_SGSN,
+ PDU_SM_ModifyPDPContextAccept_MS_SGSN modifyPDPContextAccept_MS_SGSN,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_DeactivatePDPContextRequest deactivatePDPContextRequest,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_DeactivatePDPContextAccept deactivatePDPContextAccept,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_SM_Status sM_Status,
+ PDU_SM_ActivateMBMSContextRequest activateMBMSContextRequest,
+ PDU_SM_RequestMBMSContextActivationReject requestMBMSContextActivationReject,
+ PDU_SM_RequestSecondaryPDPContextActivationReject requestSecondaryPDPContextActivationReject,
+ PDU_SM_Notification notification
+};
+
+//==============================================================================
+//==============================================================================
+// GPRS SESSION MANAGEMENT MESSAGES Messages SGSN -> MS
+//==============================================================================
+//==============================================================================
+type union L3_GSM_SGSN_MS
+{
+ PDU_SM_ActivatePDPContextAccept activatePDPContextAccept,
+ PDU_SM_ActivatePDPContextReject activatePDPContextReject,
+ PDU_SM_ActivateSecondaryPDPContextAccept activateSecondaryPDPContextAccept,
+ PDU_SM_ActivateSecondaryPDPContextReject activateSecondaryPDPContextReject,
+ PDU_SM_RequestPDPContextActivation requestPDPContextActivation,
+ PDU_SM_ModifyPDPContextRequest_SGSN_MS modifyPDPContextRequest_SGSN_MS,
+ PDU_SM_ModifyPDPContextAccept_SGSN_MS modifyPDPContextAccept_SGSN_MS,
+ PDU_SM_ModifyPDPContextReject modifyPDPContextReject,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_DeactivatePDPContextRequest deactivatePDPContextRequest,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_DeactivatePDPContextAccept deactivatePDPContextAccept,
+ //SGSN_MS, MS_SGSN
+ PDU_SM_SM_Status sM_Status,
+ PDU_SM_ActivateMBMSContextAccept activateMBMSContextAccept,
+ PDU_SM_ActivateMBMSContextReject activateMBMSContextReject,
+ PDU_SM_RequestMBMSContextActivation requestMBMSContextActivation,
+ PDU_SM_RequestSecondaryPDPContextActivation requestSecondaryPDPContextActivation
+};
+
+//==============================================================================
+//==============================================================================
+// GPRS Mobility Management Messages MS TO SGSN
+//==============================================================================
+//==============================================================================
+type union L3_GMM_MS_SGSN
+{
+ PDU_GMM_AttachRequest attachRequest,
+ PDU_GMM_AttachComplete attachComplete,
+ PDU_GMM_DetachRequest_MS_SGSN detachRequest_MS_SGSN,
+ PDU_GMM_DetachAccept_MS_SGSN detachAccept_MS_SGSN,
+ PDU_GMM_P_TMSIReallocationComplete p_TMSIReallocationComplete,
+ PDU_GMM_AuthenticationAndCipheringResponse authenticationAndCipheringResponse,
+ PDU_GMM_AuthenticationAndCipheringFailure authenticationAndCipheringFailure,
+ PDU_GMM_IdentityResponse identityResponse,
+ PDU_GMM_RoutingAreaUpdateRequest routingAreaUpdateRequest,
+ PDU_GMM_RoutingAreaUpdateComplete routingAreaUpdateComplete,
+ //SGSN_MS, MS_SGSN
+ PDU_GMM_GMM_Status gMM_Status,
+ PDU_GMM_ServiceRequest serviceRequest
+};
+
+//==============================================================================
+//==============================================================================
+// GPRS Mobility Management Messages SGSN TO MS
+//==============================================================================
+//==============================================================================
+type union L3_GMM_SGSN_MS
+{
+ PDU_GMM_AttachAccept attachAccept,
+ PDU_GMM_AttachReject attachReject,
+ PDU_GMM_DetachRequest_SGSN_MS detachRequest_SGSN_MS,
+ PDU_GMM_DetachAccept_SGSN_MS detachAccept_SGSN_MS,
+ PDU_GMM_P_TMSIReallocationCommand p_TMSIReallocationCommand,
+ PDU_GMM_AuthenticationAndCipheringRequest authenticationAndCipheringRequest,
+ PDU_GMM_AuthenticationAndCipheringReject authenticationAndCipheringReject,
+ PDU_GMM_IdentityRequest identityRequest,
+ PDU_GMM_RoutingAreaUpdateAccept routingAreaUpdateAccept,
+ PDU_GMM_RoutingAreaUpdateReject routingAreaUpdateReject,
+ //SGSN_MS, MS_SGSN
+ PDU_GMM_GMM_Status gMM_Status,
+ PDU_GMM_GMM_Information gMM_Information,
+ PDU_GMM_ServiceAccept serviceAccept,
+ PDU_GMM_ServiceReject serviceReject
+};
+
+}//end of module
+with {
+extension "version R1B"
+encode "RAW"
+}
+