osmo-ttcn3-hacks/BSSGP_v13.0.0_CNL113833_LATEST/src/BSSGP_Types.ttcn

4420 lines
150 KiB
Plaintext

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