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