/////////////////////////////////////////////////////////////////////////////// // // // 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