blob: 717286235d54b6c9446617ddd1c844d1b3dabf85 [file] [log] [blame]
Harald Weltea814f262017-07-24 13:21:35 +02001///////////////////////////////////////////////////////////////////////////////
2// //
3// Copyright Test Competence Center (TCC) ETH 2016 //
4// //
5// The copyright to the computer program(s) herein is the property of TCC. //
6// The program(s) may be used and/or copied only with the written permission //
7// of TCC or in accordance with the terms and conditions stipulated in the //
8// agreement/contract under which the program(s) has been supplied. //
9// //
10///////////////////////////////////////////////////////////////////////////////
11//
12// File: BSSGP_Types.ttcn
13// Rev: R1A
14// Prodnr: CNL 113 833
15// Contact: http://ttcn.ericsson.se
16// Reference: 3GPP TS 48.018 13.0.0
17
18
19module BSSGP_Types
20{
21
22import from General_Types all;
23
24external function enc_PDU_BSSGP(in PDU_BSSGP pdu) return octetstring;
25
26external function dec_PDU_BSSGP(in octetstring stream) return PDU_BSSGP;
27
28external function enc_PDU_BSSGP_fast(in PDU_BSSGP pdu, out octetstring stream)
29with { extension "prototype(fast) encode(RAW)" }
30
31external function dec_PDU_BSSGP_backtrack(in octetstring stream, out PDU_BSSGP pdu) return integer
32with { extension "prototype(backtrack) decode(RAW)" }
33
34
35//-----------------------------------------------------------------------------
36// INFORMATION ELEMENTS
37//-----------------------------------------------------------------------------
38type union LIN2_2a
39{
40 integer length1,
41 integer length2
42} with {
43 variant (length1) "FIELDLENGTH(7)";
44 variant (length2) "FIELDLENGTH(15)";
45 variant (length2) "BYTEORDER(last)";
46 variant (length1,length2) "FIELDORDER(msb)";
47}
48
49// 11.3.1
50type record Alignment_octets
51{
52 OCT1 iEI,
53 BIT1 ext,
54 LIN2_2a lengthIndicator,
55 octetstring spare_octet length(0..3)
56} with {
57 variant "PRESENCE(iEI = '00'O)";
58 variant (lengthIndicator) "LENGTHTO (spare_octet)";
59 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
60 length2, ext = '0'B;)";
61 variant (ext,lengthIndicator) "FIELDORDER(msb)";
62};
63
64// 11.3.2
65type record Bmax_default_MS
66{
67 OCT1 iEI,
68 BIT1 ext,
69 LIN2_2a lengthIndicator,
70 OCT2 bmax // could be changed to integer input if simpler
71} with {
72 variant "PRESENCE(iEI = '01'O)";
73 variant (lengthIndicator) "LENGTHTO (bmax)";
74 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
75 length2, ext = '0'B;)";
76 variant (ext,lengthIndicator) "FIELDORDER(msb)";
77};
78
79// 11.3.3
80type record BSS_Area_Indication
81{
82 OCT1 iEI,
83 BIT1 ext,
84 LIN2_2a lengthIndicator,
85 OCT1 bSS_indicator
86} with {
87 variant "PRESENCE(iEI = '02'O)";
88 variant (lengthIndicator) "LENGTHTO (bSS_indicator)";
89 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
90 length2, ext = '0'B;)";
91 variant (ext,lengthIndicator) "FIELDORDER(msb)";
92};
93
94// 11.3.4
95type record Bucket_Leak_Rate
96{
97 OCT1 iEI,
98 BIT1 ext,
99 LIN2_2a lengthIndicator,
100 OCT2 r_Value // could be changed to integer input if simpler
101} with {
102 variant "PRESENCE(iEI = '03'O)";
103 variant (lengthIndicator) "LENGTHTO (r_Value)";
104 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
105 length2, ext = '0'B;)";
106 variant (ext,lengthIndicator) "FIELDORDER(msb)";
107};
108
109// 11.3.5
110type record BVC_Bucket_Size
111{
112 OCT1 iEI,
113 BIT1 ext,
114 LIN2_2a lengthIndicator,
115 OCT2 bmax
116} with {
117 variant "PRESENCE(iEI = '05'O)";
118 variant (lengthIndicator) "LENGTHTO (bmax)";
119 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
120 length2, ext = '0'B;)";
121 variant (ext,lengthIndicator) "FIELDORDER(msb)";
122};
123
124// 11.3.6
125type record BVCI
126{
127 OCT1 iEI,
128 BIT1 ext,
129 LIN2_2a lengthIndicator,
130 OCT2 unstructured_value
131} with {
132 variant "PRESENCE(iEI = '04'O)";
133 variant (lengthIndicator) "LENGTHTO (unstructured_value)";
134 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
135 length2, ext = '0'B;)";
136 variant (ext,lengthIndicator) "FIELDORDER(msb)";
137};
138
139// 11.3.7
140type record BVC_Measurement
141{
142 OCT1 iEI,
143 BIT1 ext,
144 LIN2_2a lengthIndicator,
145 OCT2 delay_Value
146
147} with {
148 variant "PRESENCE(iEI = '06'O)";
149 variant (lengthIndicator) "LENGTHTO (delay_Value)";
150 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
151 length2, ext = '0'B;)";
152 variant (ext,lengthIndicator) "FIELDORDER(msb)";
153};
154
155// 11.3.8
156type record Cause_BSSGP
157 {
158 OCT1 iEI,
159 BIT1 ext,
160 LIN2_2a lengthIndicator,
161 OCT1 cause_Value
162 } with {
163 variant "PRESENCE(iEI = '07'O)";
164 variant (lengthIndicator) "LENGTHTO (cause_Value)";
165 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
166 length2, ext = '0'B;)";
167 variant (ext,lengthIndicator) "FIELDORDER(msb)";
168};
169
170// 11.3.9
171type record Cell_Identifier
172{
173 OCT1 iEI,
174 BIT1 ext,
175 LIN2_2a lengthIndicator,
176 HEX1 mccDigit1 ,
177 HEX1 mccDigit2 ,
178 HEX1 mccDigit3 ,
179 HEX1 mncDigit3 ,
180 HEX1 mncDigit1 ,
181 HEX1 mncDigit2 ,
182 OCT2 lac,
183 OCT1 rac,
184 OCT2 cI_value
185} with {
186 variant "PRESENCE(iEI = '08'O)";
187 variant (lengthIndicator)
188 "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,
189 mncDigit2,lac,rac,cI_value)";
190 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
191 length2, ext = '0'B;)";
192 variant (ext,lengthIndicator) "FIELDORDER(msb)";
193};
194
195
196type record Cell_Identifier_V
197{
198 HEX1 mccDigit1,
199 HEX1 mccDigit2,
200 HEX1 mccDigit3,
201 HEX1 mncDigit3,
202 HEX1 mncDigit1,
203 HEX1 mncDigit2,
204 OCT2 lac,
205 OCT1 rac,
206 OCT2 cI_value
207};
208
209// 11.3.10
210// 29.018, 44.018
211type record Channel_needed
212{
213 OCT1 iEI,
214 BIT1 ext,
215 LIN2_2a lengthIndicator,
216 Channel_Needed_Value channel_Needed_Value
217} with {
218 variant "PRESENCE(iEI = '09'O)";
219 variant (lengthIndicator) "LENGTHTO (channel_Needed_Value)";
220 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
221 length2, ext = '0'B;)";
222 variant (ext,lengthIndicator) "FIELDORDER(msb)";
223};
224
225type record Channel_Needed_Value
226{
227 BIT2 channel_1,
228 BIT2 channel_2,
229 BIT4 channelNeededIEI //44.018
230}
231
232// 11.3.11
233type record DRX_Parameters
234{
235 OCT1 iEI,
236 BIT1 ext,
237 LIN2_2a lengthIndicator,
238 OCT1 splitPG_CycleCode,
239 BIT3 nonDRXTimer,
240 BIT1 splitOnCCCH,
241 BIT4 cnSpecificDRXCycleLength
242} with {
243 variant "PRESENCE(iEI = '0A'O)";
244 variant (lengthIndicator)
245 "LENGTHTO (splitPG_CycleCode,nonDRXTimer,splitOnCCCH,
246 cnSpecificDRXCycleLength)";
247 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
248 length2, ext = '0'B;)";
249 variant (ext,lengthIndicator) "FIELDORDER(msb)";
250 };
251
252// 11.3.12
253type record EMLPP_Priority_BSSGP
254{
255 OCT1 iEI,
256 BIT1 ext,
257 LIN2_2a lengthIndicator,
258 BIT3 callPriority,
259 BIT5 spare
260} with {
261 variant "PRESENCE(iEI = '0B'O)";
262 variant (lengthIndicator) "LENGTHTO (callPriority,spare)";
263 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
264 length2, ext = '0'B;)";
265 variant (ext,lengthIndicator) "FIELDORDER(msb)";
266 };
267
268// 11.3.13
269type record Flush_Action
270{
271 OCT1 iEI,
272 BIT1 ext,
273 LIN2_2a lengthIndicator,
274 OCT1 actionValue
275} with {
276 variant "PRESENCE(iEI = '0C'O)";
277 variant (lengthIndicator) "LENGTHTO (actionValue)";
278 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
279 length2, ext = '0'B;)";
280 variant (ext,lengthIndicator) "FIELDORDER(msb)";
281 };
282
283
284// 11.3.14
285type record IMSI_BSSGP
286{
287 OCT1 iEI,
288 BIT1 ext,
289 LIN2_2a lengthIndicator,
290 BIT3 type_of_Identity,
291 BIT1 oddevenIndicator, // '1'B or '0'B
292 hexstring digits length(5..15)
293} with {
294 variant "PRESENCE(iEI = '0D'O)";
295 variant (lengthIndicator) "LENGTHTO (type_of_Identity,
296 oddevenIndicator,digits)";
297 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
298 length2, ext = '0'B;)";
299 //variant (fillerDigit) "PRESENCE (oddevenIndicator = '0'B) ";
300 variant (digits) "HEXORDER(low)";
301 variant (ext,lengthIndicator) "FIELDORDER(msb)";
302 variant "PADDING(yes)";
303 variant "PADDING_PATTERN('1'B)"
304
305 };
306
307// 11.3.15
308//NOTE: lengthIndicator-short form will be converted to long form
309// if needed during encoding
310type record LLC_PDU
311{
312 OCT1 iEI,
313 BIT1 ext,
314 LIN2_2a lengthIndicator,
315 octetstring lLC_PDU // Note: this is divided into 2 parts in spec!
316} with {
317 variant "PRESENCE(iEI = '0E'O)";
318 variant (lengthIndicator) "LENGTHTO (lLC_PDU)";
319 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
320 length2, ext = '0'B;)";
321 variant (ext,lengthIndicator) "FIELDORDER(msb)";
322};
323
324// 11.3.16
325type record LLC_Frames_Discarded
326{
327 OCT1 iEI,
328 BIT1 ext,
329 LIN2_2a lengthIndicator,
330 hexstring number_of_frames_discarded length (2)
331 } with {
332 variant "PRESENCE(iEI = '0F'O)";
333 variant (lengthIndicator) "LENGTHTO (number_of_frames_discarded)";
334 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
335 length2, ext = '0'B;)";
336 variant (ext,lengthIndicator) "FIELDORDER(msb)";
337};
338
339// 11.3.17
340type record Location_Area
341{
342 OCT1 iEI,
343 BIT1 ext,
344 LIN2_2a lengthIndicator,
345 HEX1 mccDigit1,
346 HEX1 mccDigit2,
347 HEX1 mccDigit3,
348 HEX1 mncDigit3,
349 HEX1 mncDigit1,
350 HEX1 mncDigit2,
351 OCT2 lac
352} with {
353 variant "PRESENCE(iEI = '10'O)";
354 variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,
355 mncDigit3,mncDigit1,mncDigit2,lac)";
356 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
357 length2, ext = '0'B;)";
358 variant (ext,lengthIndicator) "FIELDORDER(msb)";
359};
360
361// 11.3.18
362type record LSA_Identifier_List_BSSGP
363{
364 OCT1 iEI,
365 BIT1 ext,
366 LIN2_2a lengthIndicator,
367 octetstring lSA_Identifier_List // encoded LSA Identifier List
368} with {
369 variant "PRESENCE(iEI = '26'O)";
370 variant (lengthIndicator) "LENGTHTO (lSA_Identifier_List)";
371 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
372 length2, ext = '0'B;)";
373 variant (ext,lengthIndicator) "FIELDORDER(msb)";
374}
375
376
377// 11.3.19
378type record LSA_Information_BSSGP
379{
380 OCT1 iEI,
381 BIT1 ext,
382 LIN2_2a lengthIndicator,
383 LSA_Information lSA_Information // encoded LSA Information 48.008
384} with {
385 variant "PRESENCE(iEI = '27'O)";
386 variant (lengthIndicator) "LENGTHTO (lSA_Information)";
387 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
388 length2, ext = '0'B;)";
389 variant (ext,lengthIndicator) "FIELDORDER(msb)";
390}
391
392type record LSA_Information // encoded LSA Information 48.008
393{
394 BIT1 lSA_Only,
395 BIT7 spare,
396 LSA_Identification_and_Attributes_List lSA_Identification_and_Attributes_List
397}
398
399type record of LSA_Identification_and_Attributes LSA_Identification_and_Attributes_List;
400
401type record LSA_Identification_and_Attributes
402{
403 BIT4 priority,
404 BIT1 pref,
405 BIT1 act,
406 BIT2 spare,
407 OCT3 lSA_ID
408}
409
410
411// 11.3.20
412type record Mobile_Id_BSSGP
413{
414 OCT1 iEI,
415 BIT1 ext,
416 LIN2_2a lengthIndicator,
417 MobileIdentityV_BSSGP mobile_Identity
418} with {
419 variant "PRESENCE(iEI = '11'O)";
420 variant (lengthIndicator) "LENGTHTO (mobile_Identity)";
421 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
422 length2, ext = '0'B;)";
423 variant (ext,lengthIndicator) "FIELDORDER(msb)";
424};
425
426// MobileIdentityV structure copied from 24.008 MobileL3
427type record MobileIdentityV_BSSGP
428{
429 BIT3 typeOfIdentity,
430 OddEvenInd_Identity_BSSGP oddEvenInd_identity
431} with {
432 variant (oddEvenInd_identity) "CROSSTAG
433 (
434 imei, typeOfIdentity ='010'B;
435 imsi, typeOfIdentity ='001'B;
436 imei_sv, typeOfIdentity ='011'B;
437 )"
438};
439
440type union OddEvenInd_Identity_BSSGP
441{
442 IMSI_MobileIdentityV imsi,
443 IMEI_MobileIdentityV imei,
444 IMEI_SV_MobileIdentityV imei_sv
445};
446
447type record IMSI_MobileIdentityV
448{
449 BIT1 oddevenIndicator, // '1'B or '0'B
450 hexstring digits length(5..15),
451 BIT4 fillerDigit optional // B'1111, fillerDigit is present
452 // if oddevenIndicator=0
453}
454with
455{
456 variant (fillerDigit) "PRESENCE (oddevenIndicator = '0'B) ";
457};
458
459type record IMEI_MobileIdentityV
460{
461 BIT1 oddevenIndicator, // '1'B
462 hexstring digits length(15)
463};
464
465type record IMEI_SV_MobileIdentityV
466{
467 BIT1 oddevenIndicator, // '0'B
468 hexstring digits length(16),
469 BIT4 fillerDigit // filler '1111'B
470};
471
472// 11.3.21
473type record MS_Bucket_Size
474{
475 OCT1 iEI,
476 BIT1 ext,
477 LIN2_2a lengthIndicator,
478 OCT2 bmax
479} with {
480 variant "PRESENCE(iEI = '12'O)";
481 variant (lengthIndicator) "LENGTHTO (bmax)";
482 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
483 length2, ext = '0'B;)";
484 variant (ext,lengthIndicator) "FIELDORDER(msb)";
485};
486
487
488// 11.3.22
489// Note : structure from 24.008 Mobile L3
490type record MS_Radio_Access_Capability
491{
492 OCT1 iEI,
493 BIT1 ext,
494 LIN2_2a lengthIndicator,
495 MSRadioAccessCapabilityV_BSSGP mSRadioAccessCapabilityV_BSSGP
496} with {
497 variant "PRESENCE(iEI = '13'O)";
498 variant (lengthIndicator) "LENGTHTO (mSRadioAccessCapabilityV_BSSGP)";
499 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
500 length2, ext = '0'B;)";
501 variant /*(ext,lengthIndicator)*/ "FIELDORDER(msb)";
502 variant "PADDING(yes)"
503};
504
505type record of MSRACapabilityValuesRecord_BSSGP MSRadioAccessCapabilityV_BSSGP
506with { variant "EXTENSION_BIT(reverse)";variant "FIELDORDER(msb)" };
507
508
509type record MSRACapabilityValuesRecord_BSSGP
510{
511 MSRACapabilityValues_BSSGP mSRACapabilityValues,
512 BIT1 presenceBitMSRACap
513} with { variant "FIELDORDER(msb)" };
514
515
516type union MSRACapabilityValues_BSSGP
517{
518 MSRACapabilityValuesExclude1111_BSSGP mSRACapabilityValuesExclude1111,
519 MSRACapabilityValues1111_BSSGP mSRACapabilityValues1111
520} with { variant "FIELDORDER(msb)" };
521
522
523type record MSRACapabilityValuesExclude1111_BSSGP
524{
525 BIT4 accessTechnType,
526 AccessCapabilitiesStruct_BSSGP accessCapabilities
527} with {
528 variant "PRESENCE (
529 accessTechnType = '0000'B, // GSM P
530 accessTechnType = '0001'B, // GSM E
531 accessTechnType = '0010'B, // GSM R
532 accessTechnType = '0011'B, // GSM 1800
533 accessTechnType = '0100'B, // GSM190
534 accessTechnType = '0101'B, // GSM 450
535 accessTechnType = '0110'B, // GSM480
536 accessTechnType = '0111'B, // GSM 480
537 accessTechnType = '1000'B, // GSM 700
538 accessTechnType = '1001'B, // GSM T 310
539 accessTechnType = '1010'B, // GSM T 410
540 accessTechnType = '1011'B // GSM T 900
541 )"
542 variant "FIELDORDER(msb)"
543};
544
545
546// Access Capabilities Struct
547type record AccessCapabilitiesStruct_BSSGP
548{
549 integer lengthIndicator,
550 AccessCapabilities_BSSGP accessCapabilities,
551 // spare_bits "expands to the indicated length",
552 // i.e. 24.008 spec puts no restriction on number
553 // of spare_bits. The only restriction is that the whole
554 // MS Radio Access Capability IE is less than 52 octets
555 bitstring spare_bits optional
556} with {
557 variant (lengthIndicator) "FIELDLENGTH(7)";
558 variant (lengthIndicator) "LENGTHTO(accessCapabilities,spare_bits)";
559 variant (lengthIndicator) "UNIT(bits)";
560 variant "FIELDORDER(msb)";
561 variant (lengthIndicator) "BYTEORDER(last)";
562}
563
564
565//Access Capabilities
566type record AccessCapabilities_BSSGP
567{
568 BIT3 rfPowerCapability,
569 BIT1 presenceBitA5,
570 A5BITS_BSSGP a5bits optional,
571 BIT1 esind,
572 BIT1 psbit,
573 BIT1 vgcs,
574 BIT1 vbs,
575 BIT1 presenceBitMultislot,
576 MultislotCap_BSSGP multislotcap optional,
577 AccessCapAdditionsAfterRel97_BSSGP accessCapAdditionsAfterRel97 optional //opt because of V97
578 //Note: AccessCapAdditionsAfterRel97 can include:
579 // Rel99 or
580 // Rel99 + Rel4 or
581 // Rel99 + Rel4 + Rel5 or
582 // Rel99 + Rel4 + Rel5 + Rel6
583} with {
584 variant "FIELDORDER(msb)";
585 variant (a5bits) "PRESENCE(presenceBitA5 = '1'B)";
586 variant (multislotcap) "PRESENCE(presenceBitMultislot = '1'B)";
587}
588
589
590type record AccessCapAdditionsAfterRel97_BSSGP
591{
592 AccessCapAdditionsRel99_BSSGP accessCapAdditionsRel99,
593 AccessCapAdditionsAfterRel99_BSSGP accessCapAdditionsAfterRel99 optional
594} with {
595 variant "FIELDORDER(msb)";
596}
597
598
599type record AccessCapAdditionsRel99_BSSGP
600{
601 BIT1 presenceBitPskpow,
602 BIT2 pskpowercap optional,
603 BIT1 compactIntMeasurCap,
604 BIT1 revisionLevelInd,
605 BIT1 umtsfddRadAccTechCap,
606 BIT1 umtstddRadAccTechCap,
607 BIT1 cdma2kRadAccTechCap
608} with {
609 variant "FIELDORDER(msb)";
610 variant (pskpowercap) "PRESENCE(presenceBitPskpow = '1'B)";
611}
612
613
614type record AccessCapAdditionsAfterRel99_BSSGP
615{
616 AccessCapAdditionsRel4_BSSGP accessCapAdditionsRel4,
617 AccessCapAdditionsAfterRel4_BSSGP accessCapAdditionsAfterRel4 optional
618} with {
619 variant "FIELDORDER(msb)";
620}
621
622
623type record AccessCapAdditionsRel4_BSSGP
624{
625 BIT1 umts128RadAccTechCap,
626 BIT1 geranFeaturePackage,
627 BIT1 presenceBitExtendedDTM,
628 ExtendedDTM_BSSGP extendedDTM optional,
629 BIT1 modulationBasedMultislotClass
630} with {
631 variant "FIELDORDER(msb)";
632 variant (extendedDTM) "PRESENCE(presenceBitExtendedDTM = '1'B)";
633}
634
635
636type record AccessCapAdditionsAfterRel4_BSSGP
637{
638 AccessCapAdditionsRel5_BSSGP accessCapAdditionsRel5,
639 AccessCapAdditionsAfterRel5_BSSGP accessCapAdditionsAfterRel5 optional
640} with {
641 variant "FIELDORDER(msb)";
642}
643
644
645type record AccessCapAdditionsRel5_BSSGP
646{
647 BIT1 presenceBitHighMultislotCapability,
648 BIT2 highMultislotCapability optional,
649 BIT1 presenceBitGeranIuModeCapability,
650 GeranIuModeCap_BSSGP geranIuModeCap optional,
651 BIT2 gMSKMultislotPowerProfile,
652 BIT2 eightPSKMultislotPowerProfile
653} with {
654 variant "FIELDORDER(msb)";
655 variant (highMultislotCapability)
656 "PRESENCE(presenceBitHighMultislotCapability = '1'B)"
657 variant (geranIuModeCap)"PRESENCE(presenceBitGeranIuModeCapability = '1'B)"
658}
659
660
661type record GeranIuModeCap_BSSGP
662{
663 integer lengthIndicator,
664 BIT1 fLOIuCapability,
665 bitstring spare_bits
666 // spare_bits "expands to the indicated length",
667 // i.e. 24.008 spec puts no restriction on number
668 // of spare_bits. The only restriction is that the whole
669 // MS Radio Access Capability IE is less than 52 octets
670} with {
671 variant "FIELDORDER(msb)";
672 variant (lengthIndicator) "FIELDLENGTH(4)";
673 variant (lengthIndicator) "LENGTHTO(fLOIuCapability,spare_bits)";
674 variant (lengthIndicator) "UNIT(bits)";
675}
676
677type record AccessCapAdditionsAfterRel5_BSSGP
678{
679 AccessCapAdditionsRel6_BSSGP accessCapAdditionsRel6,
680 AccessCapAdditionsRel7_BSSGP accessCapAdditionsAfterRel6 optional
681} with {
682 variant "FIELDORDER(msb)";
683}
684
685type record AccessCapAdditionsRel6_BSSGP
686{
687 BIT1 multipleTBFCapability,
688 BIT2 downlinkAdvancedReceiverPerformance,
689 BIT1 extendedRLCMACCtrlMsgSegmentationCap,
690 BIT1 dTMEnhancementsCapability,
691 BIT1 presenceBitDTMGPRSHighMultiSlotClass,
692 DTMGPRSHighMultiSlotClass_BSSGP dTMGPRSHighMultiSlotClass optional,
693 BIT1 pSHandoverCapability
694} with {
695 variant "FIELDORDER(msb)";
696 variant (dTMGPRSHighMultiSlotClass)
697 "PRESENCE(presenceBitDTMGPRSHighMultiSlotClass = '1'B)"
698}
699
700
701type record DTMGPRSHighMultiSlotClass_BSSGP
702{
703 BIT3 dTMGPRSHighMultiSlotClassValue,
704 BIT1 presenceBitDTMEGPRSHighMultiSlotClass,
705 BIT3 dTMEGPRSHighMultiSlotClassValue optional
706} with {
707 variant "FIELDORDER(msb)";
708 variant (dTMEGPRSHighMultiSlotClassValue)
709 "PRESENCE(presenceBitDTMEGPRSHighMultiSlotClass = '1'B)"
710
711}
712
713
714type record AccessCapAdditionsRel7_BSSGP
715{
716 BIT1 dTMHandoverCapability,
717 BIT1 presenceBitDownlinkDualCarrier,
718 DownlinkDualCarrier_BSSGP downlinkDualCarrier,
719 BIT1 flexibleTimeslotAssignment,
720 BIT1 gANPSHandoverCapability,
721 BIT1 rLCNonPersistentMode,
722 BIT1 reducedLatencyEGPRSCapability
723} with {
724 variant "FIELDORDER(msb)";
725 variant (downlinkDualCarrier)
726 "PRESENCE(presenceBitDownlinkDualCarrier = '1'B)"
727}
728
729
730type record DownlinkDualCarrier_BSSGP
731{
732 BIT3 multislotCapReductionforDownLinkDualCarrier,
733 BIT1 downlinkDualCarrierforDTMCapability
734} with { variant "FIELDORDER(msb)" };
735
736
737type record ExtendedDTM_BSSGP
738{
739 BIT2 ExtendedDTM_GPRSMultislot,
740 BIT2 ExtendedDTM_EGPRSMultislot
741} with { variant "FIELDORDER(msb)" };
742
743
744//MultislotCap
745type record MultislotCap_BSSGP
746{
747 BIT1 presenceBitHscsd,
748 BIT5 hscsdmultislotclass optional,
749 BIT1 presenceBitGprs,
750 MultislotCap_GPRS_BSSGP gprsmultislot optional,
751 BIT1 presenceBitSms,
752 MultislotCap_SMS_BSSGP multislotCap_SMS optional,
753 MultislotCapAdditionsAfterRel97_BSSGP multislotCapAdditionsAfterRel97 optional
754} with {
755 variant "FIELDORDER(msb)";
756 variant (hscsdmultislotclass) "PRESENCE(presenceBitHscsd = '1'B)";
757 variant (gprsmultislot) "PRESENCE(presenceBitGprs = '1'B)";
758 variant (multislotCap_SMS) "PRESENCE(presenceBitSms = '1'B)";
759
760}
761
762
763type record MultislotCapAdditionsAfterRel97_BSSGP
764{
765 BIT1 presenceBitEcsdmulti,
766 BIT5 ecsdmultislotclass optional,
767 BIT1 presenceBitEgprsmulti,
768 MultislotCap_EGPRS_BSSGP multislotCap_EGPRS optional,
769 BIT1 presenceBitDtmGprsmulti,
770 MultislotCap_dtmgprsmultislotsubclass_BSSGP
771 multislotCapdtmgprsmultislotsubclass optional
772} with {
773 variant "FIELDORDER(msb)";
774 variant (ecsdmultislotclass) "PRESENCE(presenceBitEcsdmulti = '1'B)";
775 variant (multislotCap_EGPRS) "PRESENCE(presenceBitEgprsmulti = '1'B)" ;
776 variant (multislotCapdtmgprsmultislotsubclass)
777 "PRESENCE(presenceBitDtmGprsmulti = '1'B)"
778}
779
780
781type record MultislotCap_GPRS_BSSGP
782{
783 BIT5 gprsmultislotclass,
784 BIT1 gprsextendeddynalloccap
785} with { variant "FIELDORDER(msb)" };
786
787
788type record MultislotCap_SMS_BSSGP
789{
790 BIT4 smsValue,
791 BIT4 smValue
792} with { variant "FIELDORDER(msb)" };
793
794
795type record MultislotCap_EGPRS_BSSGP
796{
797 BIT5 egprsmultislotclass,
798 BIT1 egprsextendeddynalloccap
799} with { variant "FIELDORDER(msb)" };
800
801type record MultislotCap_dtmgprsmultislotsubclass_BSSGP
802{
803 BIT2 dtmgprsmultislotsubclass,
804 BIT1 singleSlotDTM,
805 BIT1 presenceBitDTM_EGPRSMultiSlot,
806 BIT2 dTM_EGPRSMultiSlot optional
807} with {
808 variant "FIELDORDER(msb)";
809 variant (dTM_EGPRSMultiSlot) "PRESENCE(presenceBitDTM_EGPRSMultiSlot = '1'B)"
810};
811
812
813//A5BITS
814
815type record A5BITS_BSSGP
816{
817 BIT1 a51 ,
818 BIT1 a52 ,
819 BIT1 a53 ,
820 BIT1 a54 ,
821 BIT1 a55 ,
822 BIT1 a56 ,
823 BIT1 a57
824} with { variant "FIELDORDER(msb)" };
825
826
827type record MSRACapabilityValues1111_BSSGP
828{
829 BIT4 accessTechnType, //1111
830 integer lengthIndicator,
831 BIT1 presenceIndicator_AdditionalAccessTechnologiesRepetition,
832 AdditionalAccessTechnologiesRepetition_BSSGP // coded '1'B if list is not empty
833 additionalAccessTechnologiesRepetition optional,
834 bitstring spare_bits
835} with {
836 variant "PRESENCE (accessTechnType = '1111'B)";
837 variant "FIELDORDER(msb)";
838 variant (lengthIndicator) "FIELDLENGTH(7)";
839 variant (lengthIndicator) "UNIT(bits)";
840 variant (lengthIndicator) "BYTEORDER(last)";
841 variant (additionalAccessTechnologiesRepetition)
842 "PRESENCE(presenceIndicator_AdditionalAccessTechnologiesRepetition = '1'B)";
843 variant (lengthIndicator)
844 "LENGTHTO(presenceIndicator_AdditionalAccessTechnologiesRepetition,
845 additionalAccessTechnologiesRepetition,spare_bits)";
846
847};
848
849type record of AdditionalAccessTechnologiesRecord_BSSGP
850 AdditionalAccessTechnologiesRepetition_BSSGP
851with { variant "EXTENSION_BIT(reverse)" };
852
853
854type record AdditionalAccessTechnologiesRecord_BSSGP
855{
856 AdditionalAccessTechnologies_BSSGP additionalAccessTechnologies,
857 BIT1 extensionBit
858} with { variant "FIELDORDER(msb)" };
859
860
861type record AdditionalAccessTechnologies_BSSGP
862{
863 BIT4 accessTechnType,
864 BIT3 gMSKPowerClass,
865 BIT2 psk8PowerClass
866} with { variant "FIELDORDER(msb)" };
867
868
869
870// 11.3.23
871type record OMC_Id_BSSGP
872{
873 OCT1 iEI,
874 BIT1 ext,
875 LIN2_2a lengthIndicator,
876 OCT20 oMC_Identity
877} with {
878 variant "PRESENCE(iEI = '14'O)";
879 variant (lengthIndicator) "LENGTHTO (oMC_Identity)";
880 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
881 length2, ext = '0'B;)";
882 variant (ext,lengthIndicator) "FIELDORDER(msb)";
883}
884
885
886// 11.3.24
887//NOTE: lengthIndicator-short form will be converted to
888// long form if needed during encoding
889type record PDU_in_Error
890{
891 OCT1 iEI,
892 BIT1 ext,
893 LIN2_2a lengthIndicator,
894 octetstring erroneous_BSSGP_PDU
895} with {
896 variant "PRESENCE(iEI = '15'O)";
897 variant (lengthIndicator) "LENGTHTO (erroneous_BSSGP_PDU)";
898 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
899 length2, ext = '0'B;)";
900 variant (ext,lengthIndicator) "FIELDORDER(msb)";
901};
902
903// 11.3.25
904type record PDU_Lifetime
905{
906 OCT1 iEI,
907 BIT1 ext,
908 LIN2_2a lengthIndicator,
909 OCT2 delay_Value
910} with {
911 variant "PRESENCE(iEI = '16'O)";
912 variant (lengthIndicator) "LENGTHTO (delay_Value)";
913 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
914 length2, ext = '0'B;)";
915 variant (ext,lengthIndicator) "FIELDORDER(msb)";
916};
917
918// 11.3.27
919type record Priority_BSSGP
920{
921 OCT1 iEI,
922 BIT1 ext,
923 LIN2_2a lengthIndicator,
924 BIT1 pvi,
925 BIT1 qa,
926 BIT4 priority_Level, //(1..14) 0: spare, 15: not used
927 BIT1 pci,
928 BIT1 spare
929} with {
930 variant "PRESENCE(iEI = '17'O)";
931 variant (lengthIndicator) "LENGTHTO (pvi,qa,priority_Level,pci,spare)";
932 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
933 length2, ext = '0'B;)";
934 variant (ext,lengthIndicator) "FIELDORDER(msb)";
935}
936
937// 11.3.28
938type record QoS_Profile
939{
940 OCT1 iEI,
941 BIT1 ext,
942 LIN2_2a lengthIndicator,
943 OCT2 peak_Bit_Rate,
944 BIT3 precedence,
945 BIT1 a_bit,
946 BIT1 t_bit,
947 BIT1 c_r_bit,
948 BIT2 peakBitRateGranularity
949} with {
950 variant "PRESENCE(iEI = '18'O)";
951 variant (lengthIndicator) "LENGTHTO (peak_Bit_Rate,precedence,
952 a_bit,t_bit,c_r_bit,peakBitRateGranularity)";
953 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
954 length2, ext = '0'B;)";
955 variant (ext,lengthIndicator) "FIELDORDER(msb)";
956};
957
958
959type record QoS_Profile_V
960{
961 OCT2 peak_Bit_Rate,
962 BIT3 precedence,
963 BIT1 a_bit,
964 BIT1 t_bit,
965 BIT1 c_r_bit,
966 BIT2 peakBitRateGranularity
967}
968
969// 11.3.29
970type record Radio_Cause
971{
972 OCT1 iEI,
973 BIT1 ext,
974 LIN2_2a lengthIndicator,
975 OCT1 radio_Cause_Value
976} with {
977 variant "PRESENCE(iEI = '19'O)";
978 variant (lengthIndicator) "LENGTHTO (radio_Cause_Value)";
979 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
980 length2, ext = '0'B;)";
981 variant (ext,lengthIndicator) "FIELDORDER(msb)";
982};
983
984// 11.3.30
985type record RA_Cap_UPD_CAUSE
986{
987 OCT1 iEI,
988 BIT1 ext,
989 LIN2_2a lengthIndicator,
990 OCT1 rA_CAP_UPD_Cause_value
991} with {
992 variant "PRESENCE(iEI = '1A'O)";
993 variant (lengthIndicator) "LENGTHTO (rA_CAP_UPD_Cause_value)";
994 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
995 length2, ext = '0'B;)";
996 variant (ext,lengthIndicator) "FIELDORDER(msb)";
997};
998
999// 11.3.31
1000type record Routeing_Area
1001{
1002 OCT1 iEI,
1003 BIT1 ext,
1004 LIN2_2a lengthIndicator,
1005 HEX1 mccDigit1,
1006 HEX1 mccDigit2,
1007 HEX1 mccDigit3,
1008 HEX1 mncDigit3,
1009 HEX1 mncDigit1,
1010 HEX1 mncDigit2,
1011 OCT2 lac,
1012 OCT1 rac
1013} with {
1014 variant "PRESENCE(iEI = '1B'O)";
1015 variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,
1016 mncDigit1,mncDigit2,lac,rac)";
1017 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1018 length2, ext = '0'B;)";
1019 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1020};
1021
1022// 11.3.32
1023type record R_default_MS
1024{
1025 OCT1 iEI,
1026 BIT1 ext,
1027 LIN2_2a lengthIndicator,
1028 OCT2 r_default_MS_value
1029} with {
1030 variant "PRESENCE(iEI = '1C'O)";
1031 variant (lengthIndicator) "LENGTHTO (r_default_MS_value)";
1032 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1033 length2, ext = '0'B;)";
1034 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1035};
1036
1037// 11.3.33
1038type record Suspend_Reference_Number
1039{
1040 OCT1 iEI,
1041 BIT1 ext,
1042 LIN2_2a lengthIndicator,
1043 OCT1 suspend_Reference_Number_value
1044} with {
1045 variant "PRESENCE(iEI = '1D'O)";
1046 variant (lengthIndicator) "LENGTHTO (suspend_Reference_Number_value)";
1047 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1048 length2, ext = '0'B;)";
1049 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1050};
1051
1052// 11.3.34
1053type record Tag
1054{
1055 OCT1 iEI,
1056 BIT1 ext,
1057 LIN2_2a lengthIndicator,
1058 OCT1 unstructured_Value
1059} with {
1060 variant "PRESENCE(iEI = '1E'O)";
1061 variant (lengthIndicator) "LENGTHTO (unstructured_Value)";
1062 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1063 length2, ext = '0'B;)";
1064 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1065};
1066
1067// 11.3.35
1068type record TLLI_BSSGP
1069{
1070 OCT1 iEI,
1071 BIT1 ext,
1072 LIN2_2a lengthIndicator,
1073 OCT4 tLLI_Value
1074} with {
1075 variant "PRESENCE(iEI = '1F'O)";
1076 variant (lengthIndicator) "LENGTHTO (tLLI_Value)";
1077 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1078 length2, ext = '0'B;)";
1079 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1080};
1081
1082// 11.3.36
1083// Note : reference in spec is to "TMSI/P-TMSI information element in
1084// 3GPP TS 24.008", however this specification has Mobile Identity
1085// IE which includes TMSI/P-TMSI
1086type record TMSI_BSSGP
1087{
1088 OCT1 iEI,
1089 BIT1 ext,
1090 LIN2_2a lengthIndicator,
1091 OCT4 tMSI_Value
1092} with {
1093 variant "PRESENCE(iEI = '20'O)";
1094 variant (lengthIndicator) "LENGTHTO (tMSI_Value)";
1095 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1096 length2, ext = '0'B;)";
1097 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1098};
1099
1100
1101// 11.3.37
1102type record Trace_Reference_BSSGP
1103{
1104 OCT1 iEI,
1105 BIT1 ext,
1106 LIN2_2a lengthIndicator,
1107 OCT2 trace_Reference
1108} with {
1109 variant "PRESENCE(iEI = '21'O)";
1110 variant (lengthIndicator) "LENGTHTO (trace_Reference)";
1111 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1112 length2, ext = '0'B;)";
1113 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1114}
1115
1116
1117// 11.3.38
1118type record Trace_Type_BSSGP
1119{
1120 OCT1 iEI,
1121 BIT1 ext,
1122 LIN2_2a lengthIndicator,
1123 OCT1 equipment_Trace
1124} with {
1125 variant "PRESENCE(iEI = '22'O)";
1126 variant (lengthIndicator) "LENGTHTO (equipment_Trace)";
1127 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1128 length2, ext = '0'B;)";
1129 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1130
1131};
1132
1133
1134// 11.3.39
1135type record TransactionId_BSSGP
1136{
1137 OCT1 iEI,
1138 BIT1 ext,
1139 LIN2_2a lengthIndicator,
1140 OCT2 transaction_Id
1141} with {
1142 variant "PRESENCE(iEI = '23'O)";
1143 variant (lengthIndicator) "LENGTHTO (transaction_Id)";
1144 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1145 length2, ext = '0'B;)";
1146 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1147}
1148
1149
1150// 11.3.40
1151type record Trigger_Id_BSSGP
1152{
1153 OCT1 iEI,
1154 BIT1 ext,
1155 LIN2_2a lengthIndicator,
1156 OCT20 entity_Identity
1157} with {
1158 variant "PRESENCE(iEI = '24'O)";
1159 variant (lengthIndicator) "LENGTHTO (entity_Identity)";
1160 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1161 length2, ext = '0'B;)";
1162 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1163}
1164
1165
1166// 11.3.41
1167type record Number_of_octets_affected
1168{
1169 OCT1 iEI,
1170 BIT1 ext,
1171 LIN2_2a lengthIndicator,
1172 OCT3 number_of_octets_transfered_or_deleted
1173 // could be changed to integer input if simpler
1174} with {
1175 variant "PRESENCE(iEI = '25'O)";
1176 variant (lengthIndicator)
1177 "LENGTHTO (number_of_octets_transfered_or_deleted)";
1178 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1179 length2, ext = '0'B;)";
1180 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1181};
1182
1183
1184// 11.3.42
1185type record PFI
1186{
1187 OCT1 iEI,
1188 BIT1 ext,
1189 LIN2_2a lengthIndicator,
1190 BIT7 pFI_Value,
1191 BIT1 spare // '0'B according to 10.5.6.11 of 24.008
1192
1193} with {
1194 variant "PRESENCE(iEI = '28'O)";
1195 variant (lengthIndicator)
1196 "LENGTHTO (pFI_Value,spare)";
1197 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1198 length2, ext = '0'B;)";
1199 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1200};
1201
1202
1203// 11.3.43
1204// Note : structure from 24.008
1205type record ABQP
1206{
1207 OCT1 iEI,
1208 BIT1 ext,
1209 LIN2_2a lengthIndicator,
1210 BIT3 reliabilityClass,
1211 BIT3 delayClass,
1212 BIT2 spare1, // '00'B
1213 BIT3 precedenceClass,
1214 BIT1 spare2,
1215 BIT4 peakThroughput,
1216 BIT5 meanThroughput,
1217 BIT3 spare3,
1218 BIT3 deliverErroneusSDU optional, //opt because of V97
1219 BIT2 deliveryOrder optional, //opt because of V97
1220 BIT3 trafficClass optional, //opt because of V97
1221 OCT1 maxSDUSize optional, //opt because of V97
1222 OCT1 maxBitrateUplink optional, //opt because of V97
1223 OCT1 maxBitrateDownlink optional, //opt because of V97
1224 BIT4 sduErrorRatio optional, //opt because of V97
1225 BIT4 residualBER optional, //opt because of V97
1226 BIT2 trafficHandlingPriority optional, //opt because of V97
1227 BIT6 transferDelay optional, //opt because of V97
1228 OCT1 guaranteedBitRateUplink optional, //opt because of V97
1229 OCT1 guaranteedBitRateDownlink optional, //opt because of V97
1230 BIT4 sourceStatisticsDescriptor optional, //opt because of V97
1231 BIT1 signallingIndication optional, //opt because of V97
1232 BIT3 spare4 optional, //opt because of V97
1233 OCT1 maxBitRateDownlinkExtended optional,
1234 OCT1 guaranteedBitRateDownlinkExtended optional,
1235 OCT1 maxBitrateUplinkExtended optional, //opt because of V97
1236 OCT1 guaranteedBitRateUplinkExtended optional //opt because of V97
1237} with {
1238 variant "PRESENCE(iEI = '3A'O)";
1239 variant (lengthIndicator)
1240 "LENGTHTO (reliabilityClass,delayClass,spare1,precedenceClass,
1241 spare2,peakThroughput,
1242 meanThroughput,spare3
1243 ,deliverErroneusSDU,deliveryOrder,trafficClass,maxSDUSize,
1244 maxBitrateUplink,maxBitrateDownlink,sduErrorRatio,residualBER,
1245 trafficHandlingPriority,transferDelay,guaranteedBitRateUplink,
1246 guaranteedBitRateDownlink,sourceStatisticsDescriptor,
1247 signallingIndication,spare4,maxBitRateDownlinkExtended,
1248 guaranteedBitRateDownlinkExtended,maxBitrateUplinkExtended,
1249 guaranteedBitRateUplinkExtended)";
1250
1251 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1252 length2, ext = '0'B;)";
1253 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1254 };
1255
1256
1257// 11.3.44
1258type record GPRS_Timer
1259{
1260 OCT1 iEI,
1261 BIT1 ext,
1262 LIN2_2a lengthIndicator,
1263 BIT5 timer_Value,
1264 BIT3 unit_Value
1265} with {
1266 variant "PRESENCE(iEI = '29'O)";
1267 variant (lengthIndicator)
1268 "LENGTHTO (timer_Value,unit_Value)";
1269 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1270 length2, ext = '0'B;)";
1271 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1272};
1273
1274// 11.3.45
1275type record Feature_bitmap
1276{
1277 OCT1 iEI,
1278 BIT1 ext,
1279 LIN2_2a lengthIndicator,
1280 BIT1 pFC,
1281 BIT1 cBL,
1282 BIT1 iNR,
1283 BIT1 lCS,
1284 BIT1 rIM,
1285 BIT1 pFC_FC,
1286 BIT1 enhancedRadioStatus,
1287 BIT1 mBMS
1288} with {
1289 variant "PRESENCE(iEI = '3B'O)";
1290 variant (lengthIndicator) "LENGTHTO (pFC,cBL,iNR,lCS,rIM,pFC_FC,
1291 enhancedRadioStatus,mBMS)";
1292 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1293 length2, ext = '0'B;)";
1294 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1295};
1296
1297// 11.3.46
1298type record Bucket_Full_Ratio
1299{
1300 OCT1 iEI,
1301 BIT1 ext,
1302 LIN2_2a lengthIndicator,
1303 OCT1 rate_of_the_Bucket
1304 // could be changed to integer input if simpler
1305} with {
1306 variant "PRESENCE(iEI = '3C'O)";
1307 variant (lengthIndicator) "LENGTHTO (rate_of_the_Bucket)";
1308 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1309 length2, ext = '0'B;)";
1310 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1311 }
1312
1313
1314// 11.3.47
1315type record Service_UTRAN_CCO
1316{
1317 OCT1 iEI,
1318 BIT1 ext,
1319 LIN2_2a lengthIndicator,
1320 BIT3 service_UTRAN_CCO_Value,
1321 BIT2 service_E_UTRAN_CCO_Value,
1322 BIT3 spare
1323} with {
1324 variant "PRESENCE(iEI = '3D'O)";
1325 variant (lengthIndicator) "LENGTHTO (service_UTRAN_CCO_Value,service_E_UTRAN_CCO_Value,spare)";
1326 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1327 length2, ext = '0'B;)";
1328 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1329};
1330
1331// new IE for Wendy Xiang and Freeman Feng
1332type record Service_Class_Indicator {
1333 OCT1 iEI,
1334 BIT1 ext,
1335 LIN2_2a lengthIndicator,
1336 OCT1 serviceClassIndicator
1337} with {
1338 variant "PRESENCE(iEI = '99'O)";
1339 variant (lengthIndicator) "LENGTHTO (serviceClassIndicator)";
1340 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1341 length2, ext = '0'B;)";
1342 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1343};
1344
1345// 11.3.48
1346type record NSEI_BSSGP
1347{
1348 OCT1 iEI,
1349 BIT1 ext,
1350 LIN2_2a lengthIndicator,
1351 OCT2 nSEI
1352} with {
1353 variant "PRESENCE(iEI = '3E'O)";
1354 variant (lengthIndicator) "LENGTHTO (nSEI)";
1355 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1356 length2, ext = '0'B;)";
1357 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1358}
1359
1360// 11.3.49
1361type record RRLP_APDU_BSSGP
1362{
1363 OCT1 iEI,
1364 BIT1 ext,
1365 LIN2_2a lengthIndicator,
1366 octetstring rRLP_Message
1367} with {
1368 variant "PRESENCE(iEI = '3F'O)";
1369 variant (lengthIndicator) "LENGTHTO (rRLP_Message)";
1370 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1371 length2, ext = '0'B;)";
1372 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1373 //variant "PADDING(yes)";
1374}
1375
1376
1377// 11.3.50
1378// 24.008 -> 49.031
1379type record LCS_QoS_BSSGP
1380{
1381 OCT1 iEI,
1382 BIT1 ext,
1383 LIN2_2a lengthIndicator,
1384 BIT1 vert,
1385 BIT1 vel,
1386 BIT6 spare1,
1387 BIT7 horizontal_Accuracy,
1388 BIT1 hA_Indicator, // 1: is specified
1389 BIT7 vertical_Accuracy,
1390 BIT1 vA_Indicator, // 1: is specified
1391 BIT6 spare2,
1392 BIT2 response_Time_Category
1393} with {
1394 variant "PRESENCE(iEI = '40'O)";
1395 variant (lengthIndicator) "LENGTHTO (vert,vel,spare1,horizontal_Accuracy,hA_Indicator,vertical_Accuracy,vA_Indicator,spare2,response_Time_Category)";
1396 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1397 length2, ext = '0'B;)";
1398 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1399}
1400
1401// 11.3.51
1402// 49.031
1403type record LCS_Client_Type_BSSGP
1404{
1405 OCT1 iEI,
1406 BIT1 ext,
1407 LIN2_2a lengthIndicator,
1408 BIT4 client_Subtype,
1409 BIT4 client_Category
1410} with {
1411 variant "PRESENCE(iEI = '41'O)";
1412 variant (lengthIndicator) "LENGTHTO (client_Subtype,client_Category)";
1413 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1414 length2, ext = '0'B;)";
1415 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1416}
1417
1418
1419// 11.3.52
1420// 49.031
1421type record Requested_GPS_Assistance_Data_BSSGP
1422{
1423 OCT1 iEI,
1424 BIT1 ext,
1425 LIN2_2a lengthIndicator,
1426 Requested_GPS_Assistance_Data_Value requested_GPS_Assistance_Data
1427} with {
1428 variant "PRESENCE(iEI = '42'O)";
1429 variant (lengthIndicator) "LENGTHTO (requested_GPS_Assistance_Data)";
1430 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1431 length2, ext = '0'B;)";
1432 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1433}
1434
1435type record Requested_GPS_Assistance_Data_Value
1436{
1437 OCT1 bits_H_to_A,
1438 OCT1 bits_P_to_I,
1439 SatelliteRelatedData satelliteRelatedData
1440}
1441
1442type record SatelliteRelatedData
1443{
1444 BIT6 spare,
1445 BIT10 gPS_Week,
1446 OCT1 gPS_Toe,
1447 BIT4 t_Toe_Limit,
1448 integer nSAT,
1449 SatID_and_IODE_List satID_and_IODE_List
1450} with { variant(nSAT) "FIELDLENGTH(4)";
1451 variant(nSAT) "LENGTHTO(satID_and_IODE_List)";
1452 variant(nSAT) "UNIT(elements)";
1453}
1454
1455type record of SatID_and_IODE SatID_and_IODE_List;
1456
1457type record SatID_and_IODE
1458{
1459 BIT6 satID,
1460 BIT2 spare,
1461 OCT1 iODE
1462}
1463
1464// 11.3.53
1465// 49.031
1466type record Location_Type_BSSGP
1467{
1468 OCT1 iEI,
1469 BIT1 ext,
1470 LIN2_2a lengthIndicator,
1471 OCT1 location_Information,
1472 OCT1 positioning_Method optional
1473} with {
1474 variant "PRESENCE(iEI = '43'O)";
1475 variant (lengthIndicator) "LENGTHTO (location_Information,positioning_Method)";
1476 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1477 length2, ext = '0'B;)";
1478 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1479}
1480
1481// 11.3.54
1482// 48.008 -> 23.03
1483type record Location_Estimate_BSSGP
1484{
1485 OCT1 iEI,
1486 BIT1 ext,
1487 LIN2_2a lengthIndicator,
1488 octetstring location // encoded location information
1489} with {
1490 variant "PRESENCE(iEI = '44'O)";
1491 variant (lengthIndicator) "LENGTHTO (location)";
1492 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1493 length2, ext = '0'B;)";
1494 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1495}
1496
1497// 11.3.55
1498// 49.031
1499type record Positioning_Data_BSSGP
1500{
1501 OCT1 iEI,
1502 BIT1 ext,
1503 LIN2_2a lengthIndicator,
1504 PositioningDataValue positioningDataValue // encoded location data
1505} with {
1506 variant "PRESENCE(iEI = '45'O)";
1507 variant (lengthIndicator) "LENGTHTO (positioningDataValue)";
1508 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1509 length2, ext = '0'B;)";
1510 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1511}
1512
1513type record PositioningDataValue
1514{
1515 BIT4 positioningDataDiscriminator,
1516 BIT4 spare,
1517 PositioningMethod_List positioningMethod_List
1518}
1519
1520type record of PositioningMethodValue PositioningMethod_List;
1521
1522type record PositioningMethodValue
1523{
1524 BIT3 usage,
1525 BIT5 positioningMethod
1526}
1527
1528// 11.3.56
1529type record Deciphering_Keys_BSSGP
1530{
1531 OCT1 iEI,
1532 BIT1 ext,
1533 LIN2_2a lengthIndicator,
1534 DecipheringKeysValue decipheringKeysValue // encoded deciphering keys data
1535} with {
1536 variant "PRESENCE(iEI = '46'O)";
1537 variant (lengthIndicator) "LENGTHTO (decipheringKeysValue)";
1538 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1539 length2, ext = '0'B;)";
1540 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1541}
1542
1543type record DecipheringKeysValue
1544{
1545 BIT1 cipheringkeyFlag,
1546 BIT7 spare,
1547 OCT7 currentDecipheringKeyValue,
1548 OCT7 nextDecipheringKeyValue
1549}
1550
1551// 11.3.57
1552// 49.031
1553type record LCS_Priority_BSSGP
1554{
1555 OCT1 iEI,
1556 BIT1 ext,
1557 LIN2_2a lengthIndicator,
1558 OCT1 priority_Value // 0: highest, other: normal
1559} with {
1560 variant "PRESENCE(iEI = '47'O)";
1561 variant (lengthIndicator) "LENGTHTO (priority_Value)";
1562 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1563 length2, ext = '0'B;)";
1564 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1565}
1566
1567// 11.3.58
1568// 49.031
1569type record LCS_Cause_BSSGP
1570{
1571 OCT1 iEI,
1572 BIT1 ext,
1573 LIN2_2a lengthIndicator,
1574 OCT1 cause_Value,
1575 OCT1 diagnostic_Value optional
1576} with {
1577 variant "PRESENCE(iEI = '48'O)";
1578 variant (lengthIndicator) "LENGTHTO (cause_Value,diagnostic_Value)";
1579 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1580 length2, ext = '0'B;)";
1581 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1582}
1583
1584// 11.3.59
1585// 24.008
1586type record LCS_Capability_BSSGP
1587{
1588 OCT1 iEI,
1589 BIT1 ext,
1590 LIN2_2a lengthIndicator,
1591 BIT1 gPS_C,
1592 BIT1 gPS_B,
1593 BIT1 gPS_A,
1594 BIT1 oTD_B,
1595 BIT1 oTD_A,
1596 BIT3 spare
1597} with {
1598 variant "PRESENCE(iEI = '49'O)";
1599 variant (lengthIndicator) "LENGTHTO (gPS_C,gPS_B,gPS_A,oTD_B,oTD_A,spare)";
1600 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1601 length2, ext = '0'B;)";
1602 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1603}
1604
1605// 11.3.60
1606type record RRLP_Flags_BSSGP
1607{
1608 OCT1 iEI,
1609 BIT1 ext,
1610 LIN2_2a lengthIndicator,
1611 BIT1 flag1,
1612 BIT7 spare
1613} with {
1614 variant "PRESENCE(iEI = '4A'O)";
1615 variant (lengthIndicator) "LENGTHTO (flag1,spare)";
1616 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1617 length2, ext = '0'B;)";
1618 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1619}
1620
1621
1622//11.3.61
1623type record RIM_Application_Identity
1624{
1625 OCT1 iEI,
1626 BIT1 ext,
1627 LIN2_2a lengthIndicator,
1628 OCT1 rIMApplicationIdentity
1629} with {
1630 variant "PRESENCE(iEI = '4B'O)";
1631 variant (lengthIndicator) "LENGTHTO (rIMApplicationIdentity)";
1632 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1633 length2, ext = '0'B;)";
1634 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1635};
1636
1637
1638//11.3.62
1639type record RIM_Sequence_Number
1640{
1641 OCT1 iEI,
1642 BIT1 ext,
1643 LIN2_2a lengthIndicator,
1644 OCT4 rIMSequenceNumber
1645} with {
1646 variant "PRESENCE(iEI = '4C'O)";
1647 variant (lengthIndicator) "LENGTHTO (rIMSequenceNumber)";
1648 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1649 length2, ext = '0'B;)";
1650 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1651};
1652
1653
1654// Table 11.3.62a.1
1655type record RAN_Information_Request_RIM_Container
1656{
1657OCT1 iEI,
1658BIT1 ext,
1659LIN2_2a lengthIndicator,
1660RIM_Application_Identity rIM_Application_Identity,
1661RIM_Sequence_Number rIM_Sequence_Number,
1662RIM_PDU_Indications rIM_PDU_Indications,
1663RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
1664RAN_Information_Request_Application_Container application_Container optional,
1665SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity_TLV optional
1666} with {
1667 variant "PRESENCE(iEI = '57'O)";
1668 variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
1669 rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
1670 application_Container,sON_Transfer_Application_Identity_TLV)";
1671 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1672 length2, ext = '0'B;)";
1673 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1674 variant (application_Container)
1675 "PRESENCE
1676 (rIM_Application_Identity.rIMApplicationIdentity = '01'O,
1677 rIM_Application_Identity.rIMApplicationIdentity = '02'O,
1678 rIM_Application_Identity.rIMApplicationIdentity = '03'O)";
1679 variant (application_Container)
1680 "CROSSTAG
1681 (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
1682 si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
1683 mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
1684};
1685
1686
1687// Table 11.3.62a.2
1688type record RAN_Information_RIM_Container
1689{
1690OCT1 iEI,
1691BIT1 ext,
1692LIN2_2a lengthIndicator,
1693RIM_Application_Identity rIM_Application_Identity,
1694RIM_Sequence_Number rIM_Sequence_Number,
1695RIM_PDU_Indications rIM_PDU_Indications,
1696RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
1697ApplContainer_or_ApplErrContainer applContainer_or_ApplErrContainer optional,
1698SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
1699} with {
1700 variant "PRESENCE(iEI = '58'O)";
1701 variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
1702 rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
1703 applContainer_or_ApplErrContainer,sON_Transfer_Application_Identity)";
1704 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1705 length2, ext = '0'B;)";
1706 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1707 variant (applContainer_or_ApplErrContainer)
1708 "PRESENCE
1709 (rIM_Application_Identity.rIMApplicationIdentity = '01'O,
1710 rIM_Application_Identity.rIMApplicationIdentity = '02'O,
1711 rIM_Application_Identity.rIMApplicationIdentity = '03'O)";
1712 variant (applContainer_or_ApplErrContainer)
1713 "CROSSTAG
1714 (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
1715 si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
1716 mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
1717};
1718
1719
1720type union ApplContainer_or_ApplErrContainer
1721{
1722 ApplContainer_or_ApplErrContainer_NACC nacc,
1723 ApplContainer_or_ApplErrContainer_SI3 si3,
1724 ApplContainer_or_ApplErrContainer_MBMS_data_channel mBMS_data_channel
1725}
1726
1727type union ApplContainer_or_ApplErrContainer_NACC
1728{
1729 RAN_Information_Application_Container_NACC application_Container,
1730 Application_Error_Container_NACC application_Error_Container
1731};
1732
1733type union ApplContainer_or_ApplErrContainer_SI3
1734{
1735 RAN_Information_Application_Container_SI3 application_Container,
1736 Application_Error_Container_SI3 application_Error_Container
1737};
1738
1739type union ApplContainer_or_ApplErrContainer_MBMS_data_channel
1740{
1741 RAN_Information_Application_Container_MBMS_data_channel application_Container,
1742 Application_Error_Container_MBMS_data_channel application_Error_Container
1743};
1744
1745// Table 11.3.62a.3
1746type record RAN_Information_Ack_RIM_Container
1747{
1748OCT1 iEI,
1749BIT1 ext,
1750LIN2_2a lengthIndicator,
1751RIM_Application_Identity rIM_Application_Identity,
1752RIM_Sequence_Number rIM_Sequence_Number,
1753RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
1754SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
1755} with {
1756 variant "PRESENCE(iEI = '5A'O)";
1757 variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
1758 rIM_Sequence_Number,rIM_Protocol_Version_Number,sON_Transfer_Application_Identity)";
1759 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1760 length2, ext = '0'B;)";
1761 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1762};
1763
1764
1765// Table 11.3.62a.4
1766type record RAN_Information_Error_RIM_Container
1767{
1768OCT1 iEI,
1769BIT1 ext,
1770LIN2_2a lengthIndicator,
1771RIM_Application_Identity rIM_Application_Identity,
1772Cause_BSSGP rIM_cause,
1773RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
1774PDU_in_Error pDU_in_Error,
1775SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
1776} with {
1777 variant "PRESENCE(iEI = '5B'O)";
1778 variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
1779 rIM_cause,rIM_Protocol_Version_Number,pDU_in_Error,sON_Transfer_Application_Identity)";
1780 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1781 length2, ext = '0'B;)";
1782 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1783};
1784
1785
1786// Table 11.3.62a.5
1787type record RAN_Information_Application_Error_RIM_Container
1788{
1789OCT1 iEI,
1790BIT1 ext,
1791LIN2_2a lengthIndicator,
1792RIM_Application_Identity rIM_Application_Identity,
1793RIM_Sequence_Number rIM_Sequence_Number,
1794RIM_PDU_Indications rIM_PDU_Indications,
1795RIM_Protocol_Version_Number rIM_Protocol_Version_Number optional,
1796Application_Error_Container application_Error_Container,
1797SON_Transfer_Application_Identity_TLV sON_Transfer_Application_Identity optional
1798} with {
1799 variant "PRESENCE(iEI = '59'O)";
1800 variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
1801 rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
1802 application_Error_Container,sON_Transfer_Application_Identity)";
1803 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1804 length2, ext = '0'B;)";
1805 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1806 variant (application_Error_Container)
1807 "CROSSTAG
1808 (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
1809 si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
1810 mBMS_data_channel,rIM_Application_Identity.rIMApplicationIdentity = '03'O;)"
1811};
1812
1813
1814// 11.3.63.1
1815type union RAN_Information_Request_Application_Container
1816{
1817RAN_Information_Request_Application_Container_NACC nacc,
1818RAN_Information_Request_Application_Container_SI3 si3,
1819RAN_Information_Request_Application_Container_MBMS_data_channel mBMS_data_channel
1820}
1821
1822
1823//Table 11.3.63.1.1
1824type record RAN_Information_Request_Application_Container_NACC
1825{
1826 OCT1 iEI,
1827 BIT1 ext,
1828 LIN2_2a lengthIndicator,
1829 Cell_Identifier reporting_Cell_Identifier
1830} with {
1831 variant "PRESENCE(iEI = '4D'O)";
1832 variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
1833 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1834 length2, ext = '0'B;)";
1835 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1836};
1837
1838//Table 11.3.63.1.2
1839type record RAN_Information_Request_Application_Container_SI3
1840{
1841 OCT1 iEI,
1842 BIT1 ext,
1843 LIN2_2a lengthIndicator,
1844 Cell_Identifier reporting_Cell_Identifier
1845} with {
1846 variant "PRESENCE(iEI = '4D'O)";
1847 variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
1848 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1849 length2, ext = '0'B;)";
1850 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1851};
1852
1853//Table 11.3.63.1.3
1854type record RAN_Information_Request_Application_Container_MBMS_data_channel
1855{
1856 OCT1 iEI,
1857 BIT1 ext,
1858 LIN2_2a lengthIndicator,
1859 Cell_Identifier reporting_Cell_Identifier
1860} with {
1861 variant "PRESENCE(iEI = '4D'O)";
1862 variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
1863 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1864 length2, ext = '0'B;)";
1865 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1866};
1867
1868//11.3.63.1.4
1869type record RAN_Information_Request_Application_Container_SON_transfer
1870{
1871 OCT1 iEI,
1872 BIT1 ext,
1873 LIN2_2a lengthIndicator,
1874 Cell_Identifier reporting_Cell_Identifier,
1875 OCTN sON_Transfer_Request_Container
1876} with {
1877 variant "PRESENCE(iEI = '4D'O)";
1878 variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier,sON_Transfer_Request_Container)";
1879 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1880 length2, ext = '0'B;)";
1881 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1882};
1883
1884//11.3.63.1.5
1885type record RAN_Information_Request_Application_Container_UTRA_SI
1886{
1887 OCT1 iEI,
1888 BIT1 ext,
1889 LIN2_2a lengthIndicator,
1890 Cell_Identifier reporting_Cell_Identifier
1891} with {
1892 variant "PRESENCE(iEI = '4D'O)";
1893 variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
1894 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1895 length2, ext = '0'B;)";
1896 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1897};
1898
1899//Table 11.3.63.2.1
1900type record RAN_Information_Application_Container_NACC
1901{
1902 OCT1 iEI,
1903 BIT1 ext,
1904 LIN2_2a lengthIndicator,
1905 Cell_Identifier reporting_Cell_Identifier,
1906 BIT1 typeBit,
1907 BIT7 number_of_SI_PSI,
1908 octetstring sI_PSI
1909} with {
1910 variant "PRESENCE(iEI = '4E'O)";
1911 variant (lengthIndicator)
1912 "LENGTHTO (reporting_Cell_Identifier,typeBit,number_of_SI_PSI,sI_PSI)";
1913 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1914 length2, ext = '0'B;)";
1915 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1916};
1917
1918//Table 11.3.63.2.2
1919type record RAN_Information_Application_Container_SI3
1920{
1921 OCT1 iEI,
1922 BIT1 ext,
1923 LIN2_2a lengthIndicator,
1924 Cell_Identifier reporting_Cell_Identifier,
1925 SI3 sI3
1926} with {
1927 variant "PRESENCE(iEI = '4E'O)";
1928 variant (lengthIndicator)
1929 "LENGTHTO (reporting_Cell_Identifier,sI3)";
1930 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
1931 length2, ext = '0'B;)";
1932 variant (ext,lengthIndicator) "FIELDORDER(msb)";
1933};
1934
1935//44.018 9.1.35
1936type record SI3
1937{
1938 OCT1 sI3MessageType, //'1B'O
1939 OCT2 cellIdentity, //10.5.1.1 -> 24.008
1940 LocationAreaIdentification locationAreaIdentification, //10.5.1.3 -> 24.008
1941 ControlChannelDescription controlChannelDescription, //10.5.2.11
1942 CellOptions cellOptions, //10.5.2.3
1943 CellSelectionParameters cellSelectionParameters, //10.5.2.4
1944 RACHControlParameters rACHControlParameters, //10.5.2.29
1945 OCT4 sI3RestOctets //10.5.2.34, bit encoded
1946}
1947
1948type record LocationAreaIdentification
1949{
1950 HEX1 mccDigit1,
1951 HEX1 mccDigit2,
1952 HEX1 mccDigit3,
1953 HEX1 mncDigit3,
1954 HEX1 mncDigit1,
1955 HEX1 mncDigit2,
1956 OCT2 lac
1957}
1958
1959type record ControlChannelDescription
1960{
1961 BIT3 cCCH_Conf,
1962 BIT3 bS_AG_BLKS_RES,
1963 BIT1 aTT,
1964 BIT1 mSCR,
1965 BIT3 bS_PA_MFRMS,
1966 BIT2 spare1, //'00'B
1967 BIT2 cBQ3,
1968 BIT1 spare2, //'0'B
1969 OCT1 t3212
1970}
1971
1972type record CellOptions
1973{
1974 BIT4 radioLinkTimeout,
1975 BIT2 dTX1,
1976 BIT1 pWRC,
1977 BIT1 dtx2
1978}
1979
1980type record CellSelectionParameters
1981{
1982 BIT5 mS_TXPWR_MAX_CCH,
1983 BIT3 cellReselectHysterisis,
1984 BIT6 rXLEV_Access_Min,
1985 BIT1 nECI,
1986 BIT1 aCS
1987}
1988
1989type record RACHControlParameters
1990{
1991 BIT1 rE,
1992 BIT1 cellBarrAccess,
1993 BIT4 tX_Integer,
1994 BIT2 maxRetrans,
1995 OCT1 aC_15_to_8,
1996 OCT1 aC_7_to_0
1997}
1998
1999//Table 11.3.63.2.3
2000type record RAN_Information_Application_Container_MBMS_data_channel
2001{
2002 OCT1 iEI,
2003 BIT1 ext,
2004 LIN2_2a lengthIndicator,
2005 Cell_Identifier reporting_Cell_Identifier,
2006 octetstring mBMS_data_channel_report //bit encoded
2007} with {
2008 variant "PRESENCE(iEI = '4E'O)";
2009 variant (lengthIndicator)
2010 "LENGTHTO (reporting_Cell_Identifier,mBMS_data_channel_report)";
2011 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2012 length2, ext = '0'B;)";
2013 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2014};
2015
2016//11.3.63.2.4
2017type record RAN_Information_Application_Container_SON_transfer
2018{
2019 OCT1 iEI,
2020 BIT1 ext,
2021 LIN2_2a lengthIndicator,
2022 BIT4 rAT_Discriminator,
2023 BIT4 spare,
2024 Cell_Identifier reporting_Cell_Identifier,
2025 OCTN sON_Transfer_Response_Container
2026} with {
2027 variant "PRESENCE(iEI = '4E'O)";
2028 variant (lengthIndicator)
2029 "LENGTHTO (rAT_Discriminator,spare,reporting_Cell_Identifier,sON_Transfer_Response_Container)";
2030 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2031 length2, ext = '0'B;)";
2032 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2033};
2034
2035//11.3.63.2.5
2036type record RAN_Information_Application_Container_UTRA_SI
2037{
2038 OCT1 iEI,
2039 BIT1 ext,
2040 LIN2_2a lengthIndicator,
2041 Cell_Identifier reporting_Cell_Identifier,
2042 OCTN uTRA_SI_Container
2043} with {
2044 variant "PRESENCE(iEI = '4E'O)";
2045 variant (lengthIndicator)
2046 "LENGTHTO (reporting_Cell_Identifier,uTRA_SI_Container)";
2047 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2048 length2, ext = '0'B;)";
2049 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2050};
2051
2052// 11.3.64
2053type union Application_Error_Container
2054{
2055 Application_Error_Container_NACC nacc,
2056 Application_Error_Container_SI3 si3,
2057 Application_Error_Container_MBMS_data_channel mBMS_data_channel
2058}
2059
2060//11.3.64.1
2061type record Application_Error_Container_NACC
2062{
2063 OCT1 iEI,
2064 BIT1 ext,
2065 LIN2_2a lengthIndicator,
2066 OCT1 nACC_cause,
2067 Application_Container_IE_NACC erroneousApplicationContainer
2068} with {
2069 variant "PRESENCE(iEI = '56'O)";
2070 variant (lengthIndicator)
2071 "LENGTHTO (nACC_cause,erroneousApplicationContainer)";
2072 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2073 length2, ext = '0'B;)";
2074 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2075};
2076
2077
2078type union Application_Container_IE_NACC
2079{
2080 RAN_Information_Request_Application_Container_NACC
2081 rAN_Information_Request_Application_Container,
2082
2083 RAN_Information_Application_Container_NACC
2084 rAN_Information_Application_Container
2085};
2086
2087//11.3.64.2
2088type record Application_Error_Container_SI3
2089{
2090 OCT1 iEI,
2091 BIT1 ext,
2092 LIN2_2a lengthIndicator,
2093 OCT1 sI3_cause,
2094 Application_Container_IE_SI3 erroneousApplicationContainer
2095} with {
2096 variant "PRESENCE(iEI = '56'O)";
2097 variant (lengthIndicator)
2098 "LENGTHTO (sI3_cause,erroneousApplicationContainer)";
2099 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2100 length2, ext = '0'B;)";
2101 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2102};
2103
2104type union Application_Container_IE_SI3
2105{
2106 RAN_Information_Request_Application_Container_SI3
2107 rAN_Information_Request_Application_Container,
2108
2109 RAN_Information_Application_Container_SI3
2110 rAN_Information_Application_Container
2111};
2112
2113
2114//11.3.64.3
2115type record Application_Error_Container_MBMS_data_channel
2116{
2117 OCT1 iEI,
2118 BIT1 ext,
2119 LIN2_2a lengthIndicator,
2120 OCT1 mBMS_data_channel_cause,
2121 Application_Container_IE_MBMS_data_channel erroneousApplicationContainer
2122} with {
2123 variant "PRESENCE(iEI = '56'O)";
2124 variant (lengthIndicator)
2125 "LENGTHTO (mBMS_data_channel_cause,erroneousApplicationContainer)";
2126 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2127 length2, ext = '0'B;)";
2128 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2129};
2130
2131type union Application_Container_IE_MBMS_data_channel
2132{
2133 RAN_Information_Request_Application_Container_MBMS_data_channel
2134 rAN_Information_Request_Application_Container,
2135
2136 RAN_Information_Application_Container_MBMS_data_channel
2137 rAN_Information_Application_Container
2138};
2139
2140//11.3.64.4
2141type record Application_Error_Container_SON_transfer
2142{
2143 OCT1 iEI,
2144 BIT1 ext,
2145 LIN2_2a lengthIndicator,
2146 OCT1 sON_transfer_cause,
2147 Application_Container_IE_SON_transfer erroneousApplicationContainer
2148};
2149
2150type union Application_Container_IE_SON_transfer
2151{
2152 RAN_Information_Request_Application_Container_SON_transfer
2153 rAN_Information_Request_Application_Container,
2154 RAN_Information_Application_Container_SON_transfer
2155 rAN_Information_Application_Container
2156};
2157
2158//11.3.64.5
2159type record Application_Error_Container_UTRA_SI
2160{
2161 OCT1 iEI,
2162 BIT1 ext,
2163 LIN2_2a lengthIndicator,
2164 OCT1 uTRA_SI_cause,
2165 Application_Container_IE_UTRA_SI erroneousApplicationContainer
2166};
2167
2168type union Application_Container_IE_UTRA_SI
2169{
2170 RAN_Information_Request_Application_Container_UTRA_SI
2171 rAN_Information_Request_Application_Container,
2172 RAN_Information_Application_Container_UTRA_SI
2173 rAN_Information_Application_Container
2174};
2175
2176//11.3.65
2177type record RIM_PDU_Indications
2178{
2179 OCT1 iEI,
2180 BIT1 ext,
2181 LIN2_2a lengthIndicator,
2182 BIT1 ack,
2183 BIT3 pDU_Type_Extension,
2184 BIT4 reserved
2185} with {
2186 variant "PRESENCE(iEI = '4F'O)";
2187 variant (lengthIndicator) "LENGTHTO (ack,pDU_Type_Extension,reserved)";
2188 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2189 length2, ext = '0'B;)";
2190 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2191};
2192
2193
2194//11.3.67
2195type record RIM_Protocol_Version_Number
2196{
2197 OCT1 iEI,
2198 BIT1 ext,
2199 LIN2_2a lengthIndicator,
2200 OCT1 rIMProtocolVersionNumber
2201} with {
2202 variant "PRESENCE(iEI = '55'O)";
2203 variant (lengthIndicator) "LENGTHTO (rIMProtocolVersionNumber)";
2204 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2205 length2, ext = '0'B;)";
2206 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2207};
2208
2209// 11.3.68
2210type record PFC_flow_control_parameters
2211{
2212 OCT1 iEI,
2213 BIT1 ext,
2214 LIN2_2a lengthIndicator,
2215 integer number_of_PFC (0..11),
2216 PFCs pFCs
2217} with {
2218 variant "PRESENCE(iEI = '52'O)";
2219 variant (lengthIndicator) "LENGTHTO (number_of_PFC,pFCs)";
2220 variant (number_of_PFC) "LENGTHTO (pFCs)";
2221 variant (number_of_PFC) "UNIT(elements)"
2222 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2223 length2, ext = '0'B;)";
2224 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2225};
2226
2227type record length(0..11) of PFC PFCs;
2228
2229type record PFC
2230{
2231BIT7 pFI_Value,
2232BIT1 spare, // '0'B according to 10.5.6.11 of 24.008
2233OCT2 bmax_PFC,
2234OCT2 r_PFC,
2235OCT1 b_PFC
2236};
2237
2238// 11.3.69
2239type record Global_CN_Id_BSSGP
2240{
2241 OCT1 iEI,
2242 BIT1 ext,
2243 LIN2_2a lengthIndicator,
2244 Global_CN_Id_Value global_CN_Id // encoded Global CN-Id
2245} with {
2246 variant "PRESENCE(iEI = '53'O)";
2247 variant (lengthIndicator) "LENGTHTO (global_CN_Id)";
2248 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2249 length2, ext = '0'B;)";
2250 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2251}
2252
2253type record Global_CN_Id_Value
2254{
2255 HEX1 mccDigit1,
2256 HEX1 mccDigit2,
2257 HEX1 mccDigit3,
2258 HEX1 mncDigit3,
2259 HEX1 mncDigit1,
2260 HEX1 mncDigit2,
2261 OCT2 cN_Id
2262}
2263
2264
2265// 11.3.70
2266type record RIM_Routing_Information
2267{
2268 OCT1 iEI,
2269 BIT1 ext,
2270 LIN2_2a lengthIndicator,
2271 HEX1 rIMRoutingAddressDiscriminator,
2272 HEX1 spare,
2273 RIM_Routing_Address rIM_Routing_Address
2274} with {
2275 variant "PRESENCE(iEI = '54'O)";
2276 variant (lengthIndicator)
2277 "LENGTHTO (rIMRoutingAddressDiscriminator,spare,rIM_Routing_Address)";
2278 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2279 length2, ext = '0'B;)";
2280 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2281 variant (rIM_Routing_Address)
2282 "CROSSTAG (cell_Identifier, rIMRoutingAddressDiscriminator = '0'H;
2283 globalRNCID, rIMRoutingAddressDiscriminator = '1'H;
2284 eNB_Identifier, rIMRoutingAddressDiscriminator = '2'H;
2285 eHRPD_SectorID, rIMRoutingAddressDiscriminator = '3'H
2286 )"
2287};
2288
2289type union RIM_Routing_Address
2290{
2291 Cell_Identifier_V cell_Identifier,
2292 GlobalRNC_ID_BSSGP globalRNCID,
2293 ENB_Identifier_V eNB_Identifier,
2294 octetstring eHRPD_SectorID
2295}
2296
2297type record GlobalRNC_ID_BSSGP
2298{
2299 HEX1 mccDigit1,
2300 HEX1 mccDigit2,
2301 HEX1 mccDigit3,
2302 HEX1 mncDigit3,
2303 HEX1 mncDigit1,
2304 HEX1 mncDigit2,
2305 OCT2 lac,
2306 OCT1 rac,
2307 HEX1 spare,
2308 integer rNC_ID
2309} with {
2310 variant (spare,rNC_ID) "FIELDORDER(msb)";
2311 variant (rNC_ID) "BYTEORDER(last)";
2312 variant (rNC_ID) "FIELDLENGTH(12)";
2313}
2314
2315type record ENB_Identifier_V {
2316 HEX1 mccDigit1,
2317 HEX1 mccDigit2,
2318 HEX1 mccDigit3,
2319 HEX1 mncDigit3,
2320 HEX1 mncDigit1,
2321 HEX1 mncDigit2,
2322 OCT2 tac,
2323 octetstring globaleNBID
2324}
2325
2326
2327// 11.3.71
2328type record MBMS_Session_Identity
2329{
2330 OCT1 iEI,
2331 BIT1 ext,
2332 LIN2_2a lengthIndicator,
2333 OCT1 mBMS_Session_Identifier_Value
2334} with {
2335 variant "PRESENCE(iEI = '5D'O)";
2336 variant (lengthIndicator) "LENGTHTO (mBMS_Session_Identifier_Value)";
2337 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2338 length2, ext = '0'B;)";
2339 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2340};
2341
2342
2343// 11.3.72
2344// 29.061
2345
2346type record MBMS_Session_Duration
2347{
2348 OCT1 iEI,
2349 BIT1 ext,
2350 LIN2_2a lengthIndicator,
2351 octetstring mBMS_Session_Duration_Value
2352} with {
2353 variant "PRESENCE(iEI = '5E'O)";
2354 variant (lengthIndicator) "LENGTHTO (mBMS_Session_Duration_Value)";
2355 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2356 length2, ext = '0'B;)";
2357 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2358};
2359
2360
2361// 11.3.73
2362type record MBMS_Service_Area_Identity_List
2363{
2364 OCT1 iEI,
2365 BIT1 ext,
2366 LIN2_2a lengthIndicator,
2367 octetstring mBMS_Service_Area_Identity_List_Value
2368} with {
2369 variant "PRESENCE(iEI = '5F'O)";
2370 variant (lengthIndicator)
2371 "LENGTHTO (mBMS_Service_Area_Identity_List_Value)";
2372 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2373 length2, ext = '0'B;)";
2374 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2375};
2376
2377
2378// 11.3.74
2379type record MBMS_Response
2380{
2381 OCT1 iEI,
2382 BIT1 ext,
2383 LIN2_2a lengthIndicator,
2384 HEX1 causeValue,
2385 HEX1 spare
2386} with {
2387 variant "PRESENCE(iEI = '60'O)";
2388 variant (lengthIndicator) "LENGTHTO (causeValue,spare)";
2389 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2390 length2, ext = '0'B;)";
2391 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2392};
2393
2394
2395// 11.3.75
2396type record MBMS_Routing_Area_List
2397{
2398 OCT1 iEI,
2399 BIT1 ext,
2400 LIN2_2a lengthIndicator,
2401 HEX1 spare,
2402 HEX1 number_of_Routing_Area_Identifications,
2403 octetstring routing_Area_Identifications optional
2404
2405} with {
2406 variant "PRESENCE(iEI = '61'O)";
2407 variant (lengthIndicator)
2408 "LENGTHTO (spare,number_of_Routing_Area_Identifications,
2409 routing_Area_Identifications)";
2410 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2411 length2, ext = '0'B;)";
2412 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2413};
2414
2415
2416// 11.3.76
2417type record MBMS_Session_Information
2418{
2419 OCT1 iEI,
2420 BIT1 ext,
2421 LIN2_2a lengthIndicator,
2422 BIT1 bCMC,
2423 BIT7 spare
2424} with {
2425 variant "PRESENCE(iEI = '62'O)";
2426 variant (lengthIndicator) "LENGTHTO (bCMC, spare)";
2427 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2428 length2, ext = '0'B;)";
2429 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2430};
2431
2432//11.3.77
2433// 24.008 10.5.6.13
2434type record TMGI_BSSGP
2435{
2436 OCT1 iEI,
2437 BIT1 ext,
2438 LIN2_2a lengthIndicator,
2439 OCT3 mBMS_Service_ID,
2440 HEX1 mccDigit1,
2441 HEX1 mccDigit2,
2442 HEX1 mccDigit3,
2443 HEX1 mncDigit3,
2444 HEX1 mncDigit1,
2445 HEX1 mncDigit2
2446} with {
2447 variant "PRESENCE(iEI = '5C'O)";
2448 variant (lengthIndicator) "LENGTHTO
2449 (mBMS_Service_ID,mccDigit1,mccDigit2,mccDigit3,mncDigit3,
2450 mncDigit1,mncDigit2)";
2451 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2452 length2, ext = '0'B;)";
2453 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2454};
2455
2456// 11.3.78 MBMS Stop Cause
2457type record MBMS_Stop_Cause
2458{
2459 OCT1 iEI,
2460 BIT1 ext,
2461 LIN2_2a lengthIndicator,
2462 HEX1 causeValue,
2463 HEX1 spare
2464} with {
2465 variant "PRESENCE(iEI = '63'O)";
2466 variant (lengthIndicator) "LENGTHTO (causeValue, spare)";
2467 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2468 length2, ext = '0'B;)";
2469 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2470};
2471
2472// 11.3.79
2473type record Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
2474{
2475 OCT1 iEI,
2476 BIT1 ext,
2477 LIN2_2a lengthIndicator,
2478 Source_BSS_to_Target_BSS_Transparent_Container_Contents
2479 source_BSS_to_Target_BSS_Transparent_Container_Contents
2480} with {
2481 variant "PRESENCE(iEI = '64'O)";
2482 variant (lengthIndicator) "LENGTHTO (source_BSS_to_Target_BSS_Transparent_Container_Contents)";
2483 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2484 length2, ext = '0'B;)";
2485 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2486}
2487
2488type record Source_BSS_to_Target_BSS_Transparent_Container_Contents
2489{
2490 MS_Radio_Access_Capability mS_Radio_Access_Capability,
2491 Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info optional,
2492 Page_Mode_BSSGP page_Mode_BSSGP optional,
2493 Container_ID_BSSGP container_ID optional,
2494 Global_TFI_BSSGP global_TFI optional,
2495 PS_HandoverIndications pS_HandoverIndications optional,
2496 CS_Indication cS_Indication optional,
2497 E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional,
2498 IRAT_Measurement_Configuration iRAT_Measurement_Configuration optional,
2499 Source_Cell_ID source_Cell_ID optional,
2500 IRAT_Measurement_Configuration_Extended_eARFCNs iRAT_Measurement_Configuration_Extended_eARFCNs optional
2501};
2502
2503// 11.3.80
2504type record Target_BSS_to_Source_BSS_Transparent_Container
2505{
2506 OCT1 iEI,
2507 BIT1 ext,
2508 LIN2_2a lengthIndicator,
2509 Target_BSS_to_Source_BSS_Transparent_Container_Contents
2510 target_BSS_to_Source_BSS_Transparent_Container_Contents
2511} with {
2512 variant "PRESENCE(iEI = '65'O)";
2513 variant (lengthIndicator) "LENGTHTO (target_BSS_to_Source_BSS_Transparent_Container_Contents)";
2514 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2515 length2, ext = '0'B;)";
2516 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2517}
2518//Note: Only PS_Handover_Command_BSSGP or DTM_Handover_Command is present
2519type record Target_BSS_to_Source_BSS_Transparent_Container_Contents
2520{
2521 PS_Handover_Command_BSSGP pS_Handover_Command optional,
2522 SI_PSI_Container sI_PSI_Container optional, //NEW
2523 DTM_Handover_Command dTM_Handover_Command optional //NEW
2524}
2525
2526// 11.3.81
2527type record NAS_container_for_PS_Handover
2528{
2529 OCT1 iEI,
2530 BIT1 ext,
2531 LIN2_2a lengthIndicator,
2532 NAS_Container_for_PS_HO nAS_Container_for_PS_HO
2533} with {
2534 variant "PRESENCE(iEI = '66'O)";
2535 variant (lengthIndicator) "LENGTHTO (nAS_Container_for_PS_HO)";
2536 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2537 length2, ext = '0'B;)";
2538 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2539}
2540
2541//24.008 10.5.1.14
2542type record NAS_Container_for_PS_HO
2543{
2544 BIT3 typeOfCipheringAlgorithm,
2545 BIT1 spare1,
2546 BIT1 oldXID,
2547 BIT3 spare2,
2548 OCT4 iOV_UI
2549}
2550
2551// 11.3.82
2552type record PFCs_to_be_set_up_list
2553{
2554 OCT1 iEI,
2555 BIT1 ext,
2556 LIN2_2a lengthIndicator,
2557 integer number_of_PFCs (1..11), // note: 0 and 12 .. 255 are reserved!!!
2558 Multiple_PFCs_BSSGP pFCs
2559} with {
2560 variant "PRESENCE(iEI = '67'O)";
2561 variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFCs)";
2562 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2563 length2, ext = '0'B;)";
2564 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2565 variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFCs),FIELDORDER(msb),FIELDLENGTH(8)";
2566}
2567
2568type record Single_PFC_BSSGP
2569{
2570 PFI pFI,
2571 GPRS_Timer pFT,
2572 ABQP aBQP,
2573 Priority_BSSGP allocation_Retention_Priority optional,
2574 GPRS_Timer t10 optional
2575}
2576
2577type record length (1..11) of Single_PFC_BSSGP Multiple_PFCs_BSSGP;
2578
2579
2580// 11.3.83
2581type record List_of_set_up_PFCs_BSSGP
2582{
2583 OCT1 iEI,
2584 BIT1 ext,
2585 LIN2_2a lengthIndicator,
2586 integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
2587 Multiple_PFIs_BSSGP pFIs
2588} with {
2589 variant "PRESENCE(iEI = '68'O)";
2590 variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFIs)";
2591 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2592 length2, ext = '0'B;)";
2593 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2594 variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDORDER(msb),FIELDLENGTH(8)";
2595}
2596
2597type record Single_PFI_BSSGP
2598{
2599 BIT7 pFI_Value,
2600 BIT1 spare
2601}
2602
2603type record length (0..11) of Single_PFI_BSSGP Multiple_PFIs_BSSGP;
2604
2605
2606// 11.3.84 Extended Feature Bitmap
2607type record Extended_Feature_Bitmap
2608{
2609 OCT1 iEI,
2610 BIT1 ext,
2611 LIN2_2a lengthIndicator,
2612 BIT1 pS_Handover,
2613 BIT1 gigabitInterface,
2614 BIT1 mOCN,
2615 BIT1 cS_PS_Coordination_Enhancements,
2616 BIT4 spare
2617} with {
2618 variant "PRESENCE(iEI = '69'O)";
2619 variant (lengthIndicator) "LENGTHTO (pS_Handover,gigabitInterface,mOCN,cS_PS_Coordination_Enhancements,spare)";
2620 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2621 length2, ext = '0'B;)";
2622 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2623}
2624
2625
2626// 11.3.85
2627type record Source_to_Target_Transparent_Container
2628{
2629 OCT1 iEI,
2630 BIT1 ext,
2631 LIN2_2a lengthIndicator,
2632 octetstring source_to_Target_Transparent_Container_Contents //RANAP ASN.1 PER
2633} with {
2634 variant "PRESENCE(iEI = '6A'O)";
2635 variant (lengthIndicator) "LENGTHTO (source_to_Target_Transparent_Container_Contents)";
2636 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2637 length2, ext = '0'B;)";
2638 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2639}
2640
2641
2642// 11.3.86
2643type record Target_to_Source_Transparent_Container
2644{
2645 OCT1 iEI,
2646 BIT1 ext,
2647 LIN2_2a lengthIndicator,
2648 octetstring handover_to_UTRAN_or_Radio_Bearer_Reconfiguration_radio_interface_message //ASN.1
2649} with {
2650 variant "PRESENCE(iEI = '6B'O)";
2651 variant (lengthIndicator) "LENGTHTO (handover_to_UTRAN_or_Radio_Bearer_Reconfiguration_radio_interface_message)";
2652 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2653 length2, ext = '0'B;)";
2654 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2655}
2656
2657
2658
2659// 11.3.87
2660type record RNC_Identifier_BSSGP
2661{
2662 OCT1 iEI,
2663 BIT1 ext,
2664 LIN2_2a lengthIndicator,
2665 HEX1 mccDigit1,
2666 HEX1 mccDigit2,
2667 HEX1 mccDigit3,
2668 HEX1 mncDigit3,
2669 HEX1 mncDigit1,
2670 HEX1 mncDigit2,
2671 OCT2 lac,
2672 OCT1 rac,
2673 OCT2 rNC_ID
2674} with {
2675 variant "PRESENCE(iEI = '6C'O)";
2676 variant (lengthIndicator) "LENGTHTO (mccDigit1, mccDigit2, mccDigit3, mncDigit3, mncDigit1, mncDigit2,
2677 lac, rac, rNC_ID)";
2678 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2679 length2, ext = '0'B;)";
2680 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2681}
2682
2683
2684// 11.3.88
2685type record Page_Mode_BSSGP
2686{
2687 OCT1 iEI,
2688 BIT1 ext,
2689 LIN2_2a lengthIndicator,
2690 BIT2 page_mode, // specified in 3GPP TS 44.060
2691 BIT6 reserved
2692} with {
2693 variant "PRESENCE(iEI = '6D'O)";
2694 variant (lengthIndicator) "LENGTHTO (page_mode,reserved)";
2695 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2696 length2, ext = '0'B;)";
2697 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2698}
2699
2700
2701// 11.3.89
2702type record Container_ID_BSSGP
2703{
2704 OCT1 iEI,
2705 BIT1 ext,
2706 LIN2_2a lengthIndicator,
2707 BIT2 container_ID, // specified in 3GPP TS 44.060
2708 BIT6 reserved
2709} with {
2710 variant "PRESENCE(iEI = '6E'O)";
2711 variant (lengthIndicator) "LENGTHTO (container_ID,reserved)";
2712 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2713 length2, ext = '0'B;)";
2714 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2715}
2716
2717
2718// 11.3.90
2719type record Global_TFI_BSSGP
2720{
2721 OCT1 iEI,
2722 BIT1 ext,
2723 LIN2_2a lengthIndicator,
2724 BIT6 global_TFI, // specified in 3GPP TS 44.060
2725 BIT2 reserved
2726} with {
2727 variant "PRESENCE(iEI = '6F'O)";
2728 variant (lengthIndicator) "LENGTHTO (global_TFI,reserved)";
2729 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2730 length2, ext = '0'B;)";
2731 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2732}
2733
2734
2735// 11.3.91
2736type record IMEI_BSSGP
2737{
2738 OCT1 iEI,
2739 BIT1 ext,
2740 LIN2_2a lengthIndicator,
2741 IMEI_Value iMEI
2742} with {
2743 variant "PRESENCE(iEI = '70'O)";
2744 variant (lengthIndicator) "LENGTHTO (iMEI)";
2745 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2746 length2, ext = '0'B;)";
2747 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2748}
2749
2750type record IMEI_Value
2751{
2752 BIT3 typeOfIdentity,
2753 BIT1 oddevenIndicator,
2754 hexstring digits length(15)
2755}
2756
2757
2758// 11.3.92 Time to MBMS Data Transfer
2759type record Time_To_MBMS_Data_Transfer
2760{
2761 OCT1 iEI,
2762 BIT1 ext,
2763 LIN2_2a lengthIndicator,
2764 OCT1 valuePart
2765} with {
2766 variant "PRESENCE(iEI = '71'O)";
2767 variant (lengthIndicator) "LENGTHTO (valuePart)";
2768 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2769 length2, ext = '0'B;)";
2770 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2771}
2772
2773// 11.3.93 MBMS Session Repetition Number
2774type record MBMS_Session_Repetition_Number
2775{
2776 OCT1 iEI,
2777 BIT1 ext,
2778 LIN2_2a lengthIndicator,
2779 octetstring repetitionNumber
2780} with {
2781 variant "PRESENCE(iEI = '72'O)";
2782 variant (lengthIndicator) "LENGTHTO (repetitionNumber)";
2783 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2784 length2, ext = '0'B;)";
2785 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2786}
2787
2788
2789// 11.3.94
2790type record Inter_RAT_Handover_Info_BSSGP
2791{
2792 OCT1 iEI,
2793 BIT1 ext,
2794 LIN2_2a lengthIndicator,
2795 octetstring inter_RAT_Handover_Information //as specified in 3GPP TS 25.331
2796} with {
2797 variant "PRESENCE(iEI = '73'O)";
2798 variant (lengthIndicator) "LENGTHTO (inter_RAT_Handover_Information)";
2799 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2800 length2, ext = '0'B;)";
2801 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2802}
2803
2804
2805// 11.3.95
2806type record PS_Handover_Command_BSSGP
2807{
2808 OCT1 iEI,
2809 BIT1 ext,
2810 LIN2_2a lengthIndicator,
2811 octetstring pS_Handover_Command_radio_interface_message
2812} with {
2813 variant "PRESENCE(iEI = '74'O)";
2814 variant (lengthIndicator) "LENGTHTO (pS_Handover_Command_radio_interface_message)";
2815 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2816 length2, ext = '0'B;)";
2817 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2818}
2819
2820// 11.3.95a
2821type record PS_HandoverIndications
2822{
2823 OCT1 iEI,
2824 BIT1 ext,
2825 LIN2_2a lengthIndicator,
2826 BIT1 sI_PSI,
2827 BIT2 dMLC_Carriers,
2828 BIT5 spare
2829} with {
2830 variant "PRESENCE(iEI = '75'O)";
2831 variant (lengthIndicator) "LENGTHTO (sI_PSI,dMLC_Carriers,spare)";
2832 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2833 length2, ext = '0'B;)";
2834 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2835}
2836
2837
2838// 11.3.95b
2839type record SI_PSI_Container
2840{
2841 OCT1 iEI,
2842 BIT1 ext,
2843 LIN2_2a lengthIndicator,
2844 BIT1 typeField,
2845 SI_PSI_ContainerValue sI_PSI_ContainerValue
2846} with {
2847 variant "PRESENCE(iEI = '76'O)";
2848 variant (lengthIndicator) "LENGTHTO (typeField,sI_PSI_ContainerValue)";
2849 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2850 length2, ext = '0'B;)";
2851 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2852 variant (sI_PSI_ContainerValue) "CROSSTAG
2853 (
2854 sI_message_Container, typeField ='0'B;
2855 pSI_message_Container, typeField ='1'B;
2856 )";
2857 };
2858
2859type union SI_PSI_ContainerValue
2860{
2861 SI_message_Container sI_message_Container,
2862 PSI_message_Container pSI_message_Container
2863}
2864
2865type record SI_message_Container
2866{
2867 integer number_of_SI,
2868 SI_message_List sI_message_List
2869} with {
2870 variant (number_of_SI) "UNIT(elements),LENGTHTO(sI_message_List),FIELDORDER(msb),FIELDLENGTH(7)";
2871}
2872
2873type record PSI_message_Container
2874{
2875 integer number_of_PSI,
2876 PSI_message_List pSI_message_List
2877} with {
2878 variant (number_of_PSI) "UNIT(elements),LENGTHTO(pSI_message_List),FIELDORDER(msb),FIELDLENGTH(7)";
2879}
2880
2881type record of SI_message SI_message_List;
2882
2883type record of PSI_message PSI_message_List;
2884
2885type octetstring SI_message length (21);
2886
2887type octetstring PSI_message length (22);
2888
2889
2890// 11.3.95c 48.008 CR 240
2891type record Active_PFCs_List_BSSGP
2892{
2893 OCT1 iEI,
2894 BIT1 ext,
2895 LIN2_2a lengthIndicator,
2896 integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
2897 Multiple_PFIs_BSSGP pFIs
2898} with {
2899 variant "PRESENCE(iEI = '77'O)";
2900 variant (lengthIndicator) "LENGTHTO (number_of_PFCs,pFIs)";
2901 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2902 length2, ext = '0'B;)";
2903 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2904 variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDORDER(msb),FIELDLENGTH(8)";
2905}
2906
2907//11.3.96
2908type record VelocityData
2909{
2910 OCT1 iEI,
2911 BIT1 ext,
2912 LIN2_2a lengthIndicator,
2913 octetstring velocityDataValue // 23.032
2914}with {
2915 variant "PRESENCE(iEI = '78'O)";
2916 variant (lengthIndicator) "LENGTHTO (velocityDataValue)";
2917 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2918 length2, ext = '0'B;)";
2919 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2920}
2921
2922//11.3.97
2923type record DTM_Handover_Command
2924{
2925 OCT1 iEI,
2926 BIT1 ext,
2927 LIN2_2a lengthIndicator,
2928 octetstring dTM_HandoverCommandValue // 44.060
2929} with {
2930 variant "PRESENCE(iEI = '79'O)";
2931 variant (lengthIndicator) "LENGTHTO (dTM_HandoverCommandValue)";
2932 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2933 length2, ext = '0'B;)";
2934 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2935}
2936
2937//11.3.98
2938type record CS_Indication
2939{
2940 OCT1 iEI,
2941 BIT1 ext,
2942 LIN2_2a lengthIndicator,
2943 OCT1 cS_IndicationContents //48.008
2944} with {
2945 variant "PRESENCE(iEI = '7A'O)";
2946 variant (lengthIndicator) "LENGTHTO (cS_IndicationContents)";
2947 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2948 length2, ext = '0'B;)";
2949 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2950}
2951
2952// 11.3.99
2953type record Requested_GANSS_Assistance_Data
2954{
2955 OCT1 iEI,
2956 BIT1 ext,
2957 LIN2_2a lengthIndicator,
2958 octetstring requested_GANSS_Assistance_Data_Value //49.031
2959} with {
2960 variant "PRESENCE(iEI = '7B'O)";
2961 variant (lengthIndicator) "LENGTHTO (requested_GANSS_Assistance_Data_Value)";
2962 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2963 length2, ext = '0'B;)";
2964 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2965}
2966
2967// 11.3.100
2968type record GANSS_Location_Type
2969{
2970 OCT1 iEI,
2971 BIT1 ext,
2972 LIN2_2a lengthIndicator,
2973 BIT1 galileo,
2974 BIT7 spare
2975} with {
2976 variant "PRESENCE(iEI = '7C'O)";
2977 variant (lengthIndicator) "LENGTHTO (galileo,spare)";
2978 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2979 length2, ext = '0'B;)";
2980 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2981}
2982
2983// 11.3.101
2984//49.031
2985type record GANSS_Positioning_Data
2986{
2987 OCT1 iEI,
2988 BIT1 ext,
2989 LIN2_2a lengthIndicator,
2990 GANSS_Positioning_DataList gANSS_Positioning_DataList
2991} with {
2992 variant "PRESENCE(iEI = '7D'O)";
2993 variant (lengthIndicator) "LENGTHTO (gANSS_Positioning_DataList)";
2994 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
2995 length2, ext = '0'B;)";
2996 variant (ext,lengthIndicator) "FIELDORDER(msb)";
2997}
2998
2999type record of GANSS_Positioning_DataValue GANSS_Positioning_DataList
3000
3001type record GANSS_Positioning_DataValue
3002{
3003 BIT3 usage,
3004 BIT3 gANSS_ID,
3005 BIT2 method
3006}
3007
3008//11.3.102
3009type record Flow_Control_Granularity
3010{
3011 OCT1 iEI,
3012 BIT1 ext,
3013 LIN2_2a lengthIndicator,
3014 BIT2 granularity,
3015 BIT6 reserved
3016} with {
3017 variant "PRESENCE(iEI = '7E'O)";
3018 variant (lengthIndicator) "LENGTHTO (granularity,reserved)";
3019 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3020 length2, ext = '0'B;)";
3021 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3022}
3023
3024
3025//11.3.103
3026type record ENB_Identifier
3027{
3028 OCT1 iEI,
3029 BIT1 ext,
3030 LIN2_2a lengthIndicator,
3031 HEX1 mccDigit1,
3032 HEX1 mccDigit2,
3033 HEX1 mccDigit3,
3034 HEX1 mncDigit3,
3035 HEX1 mncDigit1,
3036 HEX1 mncDigit2,
3037 OCT2 tac,
3038 OCTN globalEnbID
3039
3040} with {
3041 variant "PRESENCE(iEI = '7F'O)";
3042 variant (lengthIndicator) "LENGTHTO (mccDigit1, mccDigit2, mccDigit3, mncDigit3, mncDigit1,
3043 mncDigit2, tac, globalEnbID)";
3044 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3045 length2, ext = '0'B;)";
3046 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3047}
3048
3049
3050//11.3.104
3051type record E_UTRAN_Inter_RAT_Handover_Info
3052{
3053 OCT1 iEI,
3054 BIT1 ext,
3055 LIN2_2a lengthIndicator,
3056 OCTN ue_EUTRA_Capability
3057
3058} with {
3059 variant "PRESENCE(iEI = '80'O)";
3060 variant (lengthIndicator) "LENGTHTO (ue_EUTRA_Capability)";
3061 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3062 length2, ext = '0'B;)";
3063 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3064}
3065
3066
3067//11.3.105
3068type record Subscriber_Profile_ID_For_RAT_Priority
3069{
3070 OCT1 iEI,
3071 BIT1 ext,
3072 LIN2_2a lengthIndicator,
3073 BIT8 profile_ID
3074} with {
3075 variant "PRESENCE(iEI = '81'O)";
3076 variant (lengthIndicator) "LENGTHTO (profile_ID)";
3077 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3078 length2, ext = '0'B;)";
3079 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3080}
3081
3082//11.3.106
3083type record Request_For_Inter_RAT_Handover_Info
3084{
3085 OCT1 iEI,
3086 BIT1 ext,
3087 LIN2_2a lengthIndicator,
3088 BIT1 interRATHandoverInfoRequest,
3089 BIT1 eUTRANinterRATHandoverInfoRequest,
3090 BIT6 spare
3091} with {
3092 variant "PRESENCE(iEI = '82'O)";
3093 variant (lengthIndicator) "LENGTHTO (interRATHandoverInfoRequest,eUTRANinterRATHandoverInfoRequest,spare)";
3094 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3095 length2, ext = '0'B;)";
3096 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3097}
3098
3099//11.3.107
3100type record Reliable_Inter_RAT_Handover_Info
3101{
3102 OCT1 iEI,
3103 BIT1 ext,
3104 LIN2_2a lengthIndicator,
3105 BIT1 reliableInterRATHandoverInfoIndicator,
3106 BIT7 spare
3107} with {
3108 variant "PRESENCE(iEI = '83'O)";
3109 variant (lengthIndicator) "LENGTHTO (reliableInterRATHandoverInfoIndicator,spare)";
3110 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3111 length2, ext = '0'B;)";
3112 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3113}
3114
3115//11.3.108
3116type record SON_Transfer_Application_Identity_TLV
3117{
3118 OCT1 iEI,
3119 BIT1 ext,
3120 LIN2_2a lengthIndicator,
3121 OCTN sON_Transfer_Application_Identity //3GPP TS 36.413 [36]
3122} with {
3123 variant "PRESENCE(iEI = '84'O)";
3124 variant (lengthIndicator) "LENGTHTO (sON_Transfer_Application_Identity)";
3125 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3126 length2, ext = '0'B;)";
3127 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3128}
3129
3130//11.3.109
3131type record CSG_Identifier_TLV
3132{
3133 OCT1 iEI,
3134 BIT1 ext,
3135 LIN2_2a lengthIndicator,
3136 CSG_Identity cSG_Identity, //3GPP TS 23.003, bits 4 to 8 of octet 6 are spare
3137 BIT1 cell_Acces_Mode,
3138 BIT7 spare
3139} with {
3140 variant "PRESENCE(iEI = '85'O)";
3141 variant (lengthIndicator) "LENGTHTO (cSG_Identity,cell_Acces_Mode,spare)";
3142 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3143 length2, ext = '0'B;)";
3144 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3145}
3146
3147type record CSG_Identity
3148{
3149 OCT3 cSG_Id24,
3150 BIT3 cSG_Id3,
3151 BIT5 spare // '0'B
3152};
3153
3154//11.3.110
3155type record Tracking_Area_Code_TLV
3156{
3157 OCT1 iEI,
3158 BIT1 ext,
3159 LIN2_2a lengthIndicator,
3160 OCT3 valueField //3GPP TS 24.301
3161} with {
3162 variant "PRESENCE(iEI = '86'O)";
3163 variant (lengthIndicator) "LENGTHTO (valueField)";
3164 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3165 length2, ext = '0'B;)";
3166 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3167}
3168
3169//11.3.111
3170type record Redirect_Attempt_Flag
3171{
3172 OCT1 iEI,
3173 BIT1 ext,
3174 LIN2_2a lengthIndicator,
3175 OCT1 spare
3176} with {
3177 variant "PRESENCE(iEI = '87'O)";
3178 variant (lengthIndicator) "LENGTHTO (spare)";
3179 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3180 length2, ext = '0'B;)";
3181 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3182}
3183
3184//11.3.112
3185type record Redirection_Indication
3186{
3187 OCT1 iEI,
3188 BIT1 ext,
3189 LIN2_2a lengthIndicator,
3190 BIT8 reroute_Reject_Cause_value
3191} with {
3192 variant "PRESENCE(iEI = '88'O)";
3193 variant (lengthIndicator) "LENGTHTO (reroute_Reject_Cause_value)";
3194 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3195 length2, ext = '0'B;)";
3196 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3197}
3198
3199//11.3.113
3200type record Redirection_Completed
3201{
3202 OCT1 iEI,
3203 BIT1 ext,
3204 LIN2_2a lengthIndicator,
3205 BIT8 outcome_value
3206} with {
3207 variant "PRESENCE(iEI = '89'O)";
3208 variant (lengthIndicator) "LENGTHTO (outcome_value)";
3209 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3210 length2, ext = '0'B;)";
3211 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3212}
3213
3214//11.3.114
3215type record Unconfirmed_Send_State_Variable
3216{
3217 OCT1 iEI,
3218 BIT1 ext,
3219 LIN2_2a lengthIndicator,
3220 BIT7 spare,
3221 integer vU
3222} with {
3223 variant "PRESENCE(iEI = '8A'O)";
3224 variant (lengthIndicator) "LENGTHTO (spare,vU)";
3225 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3226 length2, ext = '0'B;)";
3227 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3228 variant (vU) "FIELDLENGTH(9)";
3229 variant (vU) "BYTEORDER(last)";
3230 variant (spare,vU) "FIELDORDER(msb)";
3231}
3232
3233//11.3.115
3234type record IRAT_Measurement_Configuration
3235{
3236 OCT1 iEI,
3237 BIT1 ext,
3238 LIN2_2a lengthIndicator,
3239 INT6b reportingThreshold,
3240 BIT1 repQuant,
3241 BIT1 spare,
3242 INT1 measurementDuration,
3243 Measurement_List measurement_List
3244} with {
3245 variant "PRESENCE(iEI = '8B'O)";
3246 variant (lengthIndicator) "LENGTHTO (reportingThreshold,repQuant,spare,measurementDuration,measurement_List)";
3247 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3248 length2, ext = '0'B;)";
3249 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3250}
3251
3252type record Measurement
3253{
3254 LIN2_BO_LAST e_ARFCN,
3255 BIT3 measurementBandwidth,
3256 BIT5 spare
3257}
3258
3259type record of Measurement Measurement_List;
3260
3261type record RNC_Id_with_Transparent_Container_BSSGP
3262{
3263 RNC_Identifier_BSSGP target_RNC_Identifier,
3264 Source_to_Target_Transparent_Container
3265 source_to_Target_Transparent_Container
3266}
3267
3268type union Cell_or_RNC_Id_with_Transparent_Container_BSSGP
3269{
3270 Cell_Id_with_Transparent_Container_BSSGP cell_Id_with_Transparent_Container,
3271 RNC_Id_with_Transparent_Container_BSSGP rnc_Id_with_Transparent_Container
3272}
3273
3274type record Cell_Id_with_Transparent_Container_BSSGP
3275{
3276 Cell_Identifier target_Cell_Identifier,
3277 Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
3278 source_BSS_to_Target_BSS_Transparent_Container
3279}
3280
3281//11.3.116
3282type record SCI
3283{
3284 OCT1 iEI,
3285 BIT1 ext,
3286 LIN2_2a lengthIndicator,
3287 OCT1 service_Class_Value
3288} with {
3289 variant "PRESENCE(iEI = '8c'O)";
3290 variant (lengthIndicator) "LENGTHTO (service_Class_Value)";
3291 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3292 length2, ext = '0'B;)";
3293 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3294}
3295
3296//11.3.117
3297type record GGSN_PGW_Location
3298{
3299 OCT1 iEI,
3300 BIT1 ext,
3301 LIN2_2a lengthIndicator,
3302 BIT3 gGSN_PGW_Location_Value,
3303 BIT5 spare
3304} with {
3305 variant "PRESENCE(iEI = '8d'O)";
3306 variant (lengthIndicator) "LENGTHTO (gGSN_PGW_Location_Value)";
3307 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3308 length2, ext = '0'B;)";
3309 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3310}
3311
3312//11.3.118
3313type record Selected_PLMN_ID
3314{
3315 OCT1 iEI,
3316 BIT1 ext,
3317 LIN2_2a lengthIndicator,
3318 HEX1 mccDigit1,
3319 HEX1 mccDigit2,
3320 HEX1 mccDigit3,
3321 HEX1 mncDigit3,
3322 HEX1 mncDigit1,
3323 HEX1 mncDigit2
3324} with {
3325 variant "PRESENCE(iEI = '8e'O)";
3326 variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2)";
3327 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3328 length2, ext = '0'B;)";
3329 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3330}
3331
3332//11.3.119
3333type record Priority_Class_Indicator
3334{
3335 OCT1 iEI,
3336 BIT1 ext,
3337 LIN2_2a lengthIndicator,
3338 BIT1 priority_Class_Indicator_Value,
3339 BIT7 spare
3340} with {
3341 variant "PRESENCE(iEI = '8f'O)";
3342 variant (lengthIndicator) "LENGTHTO (priority_Class_Indicator_Value,spare)";
3343 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3344 length2, ext = '0'B;)";
3345 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3346}
3347
3348//11.3.120
3349type record Source_Cell_ID
3350{
3351 OCT1 iEI,
3352 BIT1 ext,
3353 LIN2_2a lengthIndicator,
3354 TrackingAreaIdentity_BSSGP tracking_Area_Identity,
3355 ECGI_BSSGP eUTRAN_CGI,
3356 octetstring globaleNBID
3357} with {
3358 variant "PRESENCE(iEI = '90'O)";
3359 variant (lengthIndicator) "LENGTHTO (tracking_Area_Identity,eUTRAN_CGI,globaleNBID)";
3360 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3361 length2, ext = '0'B;)";
3362 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3363}
3364type record TrackingAreaIdentity_BSSGP
3365{
3366 HEX1 mccDigit1,
3367 HEX1 mccDigit2,
3368 HEX1 mccDigit3,
3369 HEX1 mncDigit3,
3370 HEX1 mncDigit1,
3371 HEX1 mncDigit2,
3372 OCT2 tAC
3373}
3374
3375type record ECGI_BSSGP
3376{
3377 HEX1 mccDigit1,
3378 HEX1 mccDigit2,
3379 HEX1 mccDigit3,
3380 HEX1 mncDigit3,
3381 HEX1 mncDigit1,
3382 HEX1 mncDigit2,
3383 HEX1 spare,
3384 integer eCI
3385} with {
3386 variant (spare,eCI) "FIELDORDER(msb)";
3387 variant(eCI) "FIELDLENGTH(28)";
3388 variant (eCI) "BYTEORDER(last)";
3389};
3390
3391
3392//11.3.121
3393type record IRAT_Measurement_Configuration_Extended_eARFCNs
3394{
3395 OCT1 iEI,
3396 BIT1 ext,
3397 LIN2_2a lengthIndicator,
3398 INT6b reportingThreshold,
3399 BIT1 repQuant,
3400 BIT1 spare,
3401 INT1 measurementDuration,
3402 Measurement_List_Extended measurement_List
3403} with {
3404 variant "PRESENCE(iEI = '91'O)";
3405 variant (lengthIndicator) "LENGTHTO (reportingThreshold,repQuant,spare,measurementDuration,measurement_List)";
3406 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3407 length2, ext = '0'B;)";
3408 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3409}
3410
3411type record Measurement_Extended
3412{
3413 INT18b_BO_LAST e_ARFCN,
3414 BIT3 spare,
3415 BIT3 measurementBandwidth
3416} with {
3417 variant (e_ARFCN,spare,measurementBandwidth) "FIELDORDER(msb)";
3418}
3419type record of Measurement_Extended Measurement_List_Extended;
3420
3421//11.3.122
3422type record EDRX_Parameters
3423{
3424 OCT1 iEI,
3425 BIT1 ext,
3426 LIN2_2a lengthIndicator,
3427 BIT4 eDRX_Cycle_Value,
3428 BIT4 spare
3429} with {
3430 variant "PRESENCE(iEI = '92'O)";
3431 variant (lengthIndicator) "LENGTHTO (eDRX_Cycle_Value,spare)";
3432 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3433 length2, ext = '0'B;)";
3434 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3435}
3436
3437//11.3.123
3438type record Time_Until_Next_Paging_Occasion
3439{
3440 OCT1 iEI,
3441 BIT1 ext,
3442 LIN2_2a lengthIndicator,
3443 INT6b minutes,
3444 BIT2 spare,
3445 INT6b seconds,
3446 BIT2 spare2
3447} with {
3448 variant "PRESENCE(iEI = '93'O)";
3449 variant (lengthIndicator) "LENGTHTO (minutes,spare,seconds,spare2)";
3450 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3451 length2, ext = '0'B;)";
3452 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3453}
3454
3455//11.3.124
3456type record Old_Routing_Area_Identification
3457{
3458 OCT1 iEI,
3459 BIT1 ext,
3460 LIN2_2a lengthIndicator,
3461 HEX1 mccDigit1,
3462 HEX1 mccDigit2,
3463 HEX1 mccDigit3,
3464 HEX1 mncDigit3,
3465 HEX1 mncDigit1,
3466 HEX1 mncDigit2,
3467 OCT2 lac,
3468 OCT1 rac
3469} with {
3470 variant "PRESENCE(iEI = '94'O)";
3471 variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2,lac,rac)";
3472 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3473 length2, ext = '0'B;)";
3474 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3475}
3476
3477//11.3.125
3478type record Attach_Indicator
3479{
3480 OCT1 iEI,
3481 BIT1 ext,
3482 LIN2_2a lengthIndicator,
3483 OCT1 spare
3484} with {
3485 variant "PRESENCE(iEI = '95'O)";
3486 variant (lengthIndicator) "LENGTHTO (spare)";
3487 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3488 length2, ext = '0'B;)";
3489 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3490}
3491
3492//11.3.126
3493type record PLMN_Identity
3494{
3495 OCT1 iEI,
3496 BIT1 ext,
3497 LIN2_2a lengthIndicator,
3498 HEX1 mccDigit1,
3499 HEX1 mccDigit2,
3500 HEX1 mccDigit3,
3501 HEX1 mncDigit3,
3502 HEX1 mncDigit1,
3503 HEX1 mncDigit2
3504} with {
3505 variant "PRESENCE(iEI = '96'O)";
3506 variant (lengthIndicator) "LENGTHTO (mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,mncDigit2)";
3507 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3508 length2, ext = '0'B;)";
3509 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3510}
3511
3512//11.3.127
3513type record MME_Query
3514{
3515 OCT1 iEI,
3516 BIT1 ext,
3517 LIN2_2a lengthIndicator,
3518 OCT1 spare
3519} with {
3520 variant "PRESENCE(iEI = '97'O)";
3521 variant (lengthIndicator) "LENGTHTO (spare)";
3522 variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
3523 length2, ext = '0'B;)";
3524 variant (ext,lengthIndicator) "FIELDORDER(msb)";
3525}
3526
3527
3528//-----------------------------------------------------------------------------
3529// PDUs
3530//-----------------------------------------------------------------------------
3531
3532//10.2.1
3533type record PDU_BSSGP_DL_UNITDATA
3534{
3535 OCT1 bssgpPduType,
3536 OCT4 tLLI_current,
3537 QoS_Profile_V qoS_Profile,
3538 PDU_Lifetime pDU_Lifetime,
3539 MS_Radio_Access_Capability mS_Radio_Access_Capability optional,
3540 Priority_BSSGP priority optional,
3541 DRX_Parameters dRX_Parameters optional,
3542 IMSI_BSSGP iMSI optional,
3543 TLLI_BSSGP tLLI_old optional,
3544 PFI pFI optional,
3545 LSA_Information_BSSGP lSA_Information optional,
3546 Service_UTRAN_CCO service_UTRAN_CCO optional,
3547 Service_Class_Indicator service_Class_Indicator optional,
3548 Subscriber_Profile_ID_For_RAT_Priority subscriber_Profile_ID_For_RAT_Priority optional,
3549 Redirection_Indication redirection_Indication optional,
3550 Redirection_Completed redirection_Completed optional,
3551 Unconfirmed_Send_State_Variable unconfirmed_Send_State_Variable optional,
3552 SCI sCI optional,
3553 GGSN_PGW_Location gGSN_PGW_Location optional,
3554 EDRX_Parameters eDRX_Paremeters optional,
3555 Old_Routing_Area_Identification old_Routing_Area_Identification optional,
3556 Attach_Indicator attach_Indicator optional,
3557 Alignment_octets alignment_octets optional,
3558 LLC_PDU lLC_PDU,
3559 LLC_PDU initialLLC_PDU optional
3560} with { variant "PRESENCE(bssgpPduType = '00'O)"; };
3561
3562//10.2.2
3563type record PDU_BSSGP_UL_UNITDATA
3564{
3565 OCT1 bssgpPduType,
3566 OCT4 tLLI,
3567 QoS_Profile_V qoS_Profile,
3568 Cell_Identifier cell_Identifier,
3569 PFI pFI optional,
3570 LSA_Identifier_List_BSSGP lSA_Identifier_List optional,
3571 Redirect_Attempt_Flag redirect_Attempt_Flag optional,
3572 IMSI_BSSGP iMSI_BSSGP optional,
3573 Unconfirmed_Send_State_Variable unconfirmed_Send_State_Variable optional,
3574 Selected_PLMN_ID selected_PLMN_ID optional,
3575 PLMN_Identity selected_Operator optional,
3576 PLMN_Identity cS_Registered_Operator optional,
3577 Alignment_octets alignment_octets optional,
3578 LLC_PDU lLC_PDU
3579} with { variant "PRESENCE(bssgpPduType = '01'O)"; };
3580
3581//10.2.3
3582type record PDU_BSSGP_RA_CAPABILITY
3583{
3584 OCT1 bssgpPduType,
3585 TLLI_BSSGP tLLI,
3586 MS_Radio_Access_Capability mS_Radio_Access_Capability
3587} with { variant "PRESENCE(bssgpPduType = '02'O)"; };
3588
3589//10.2.5
3590type record PDU_BSSGP_DL_MBMS_UNITDATA
3591{
3592 OCT1 bssgpPduType,
3593 PDU_Lifetime pDU_Lifetime,
3594 TMGI_BSSGP tMGI,
3595 MBMS_Session_Identity mBMS_Session_Identity optional,
3596 Alignment_octets alignment_octets optional,
3597 LLC_PDU lLC_PDU
3598} with { variant "PRESENCE(bssgpPduType = '04'O)"; };
3599
3600
3601// 10.2.6; Deleted from spec 7.10.0,kept in prot module for backward compatibility
3602type record PDU_BSSGP_UL_MBMS_UNITDATA
3603{
3604 OCT1 bssgpPduType,
3605 TMGI_BSSGP tMGI,
3606 MBMS_Session_Identity mBMS_Session_Identity optional,
3607 Alignment_octets alignment_octets optional,
3608 LLC_PDU lLC_PDU
3609} with { variant "PRESENCE(bssgpPduType = '05'O)"; };
3610
3611// 10.3.1
3612type record PDU_BSSGP_PAGING_PS
3613{
3614 OCT1 bssgpPduType,
3615 IMSI_BSSGP iMSI,
3616 DRX_Parameters dRX_Parameters optional,
3617 Paging_Field4 paging_Field4,
3618 PFI pFI optional,
3619 ABQP aBQP optional,
3620 QoS_Profile qoS_Profile,
3621 TMSI_BSSGP pTMSI optional,
3622 EDRX_Parameters eDRX_Paremeters optional
3623} with { variant "PRESENCE(bssgpPduType = '06'O)"; };
3624
3625//10.3.2
3626type record PDU_BSSGP_PAGING_CS
3627{
3628 OCT1 bssgpPduType,
3629 IMSI_BSSGP iMSI,
3630 DRX_Parameters dRX_Parameters,
3631 Paging_Field4 paging_Field4,
3632 TLLI_BSSGP tLLI optional,
3633 Channel_needed channel_needed optional,
3634 EMLPP_Priority_BSSGP eMLPP_Priority optional,
3635 TMSI_BSSGP tMSI optional,
3636 Global_CN_Id_BSSGP global_CN_Id optional
3637} with { variant "PRESENCE(bssgpPduType = '07'O)"; };
3638
3639
3640type union Paging_Field4
3641{
3642 BVCI bVCI,
3643 Location_Area location_Area,
3644 Routeing_Area routeing_Area,
3645 BSS_Area_Indication bSS_Area_Indication
3646};
3647
3648//10.3.3
3649type record PDU_BSSGP_RA_CAPABILITY_UPDATE
3650{
3651 OCT1 bssgpPduType,
3652 TLLI_BSSGP tLLI,
3653 Tag tag
3654} with { variant "PRESENCE(bssgpPduType = '08'O)"; };
3655
3656
3657//10.3.4
3658type record PDU_BSSGP_RA_CAPABILITY_UPDATE_ACK
3659{
3660 OCT1 bssgpPduType,
3661 TLLI_BSSGP tLLI,
3662 Tag tag,
3663 IMSI_BSSGP iMSI optional,
3664 RA_Cap_UPD_CAUSE rA_Cap_UPDATE_CAUSE,
3665 MS_Radio_Access_Capability mS_Radio_Access_Capability optional
3666} with { variant "PRESENCE(bssgpPduType = '09'O)"; };
3667
3668//10.3.5
3669type record PDU_BSSGP_RADIO_STATUS
3670{
3671 OCT1 bssgpPduType,
3672 TLLI_BSSGP tLLI optional,
3673 TMSI_BSSGP tMSI optional,
3674 IMSI_BSSGP iMSI optional,
3675 Radio_Cause radio_Cause
3676} with { variant "PRESENCE(bssgpPduType = '0A'O)"; };
3677
3678//10.3.6
3679type record PDU_BSSGP_SUSPEND
3680{
3681 OCT1 bssgpPduType,
3682 TLLI_BSSGP tLLI,
3683 Routeing_Area routeing_Area
3684} with { variant "PRESENCE(bssgpPduType = '0B'O)"; };
3685
3686// 10.3.7
3687type record PDU_BSSGP_SUSPEND_ACK
3688{
3689 OCT1 bssgpPduType,
3690 TLLI_BSSGP tLLI,
3691 Routeing_Area routeing_Area ,
3692 Suspend_Reference_Number suspend_Reference_Number
3693} with { variant "PRESENCE(bssgpPduType = '0C'O)"; };
3694
3695// 10.3.8
3696type record PDU_BSSGP_SUSPEND_NACK
3697{
3698 OCT1 bssgpPduType,
3699 TLLI_BSSGP tLLI,
3700 Routeing_Area routeing_Area,
3701 Cause_BSSGP cause optional
3702} with { variant "PRESENCE(bssgpPduType = '0D'O)"; };
3703
3704// 10.3.9
3705type record PDU_BSSGP_RESUME
3706{
3707 OCT1 bssgpPduType,
3708 TLLI_BSSGP tLLI,
3709 Routeing_Area routeing_Area,
3710 Suspend_Reference_Number suspend_Reference_Number
3711} with { variant "PRESENCE(bssgpPduType = '0E'O)"; };
3712
3713//10.3.10
3714type record PDU_BSSGP_RESUME_ACK
3715{
3716 OCT1 bssgpPduType,
3717 TLLI_BSSGP tLLI,
3718 Routeing_Area routeing_Area
3719} with { variant "PRESENCE(bssgpPduType = '0F'O)"; };
3720
3721// 10.3.11
3722type record PDU_BSSGP_RESUME_NACK
3723{
3724 OCT1 bssgpPduType,
3725 TLLI_BSSGP tLLI,
3726 Routeing_Area routeing_Area,
3727 Cause_BSSGP cause optional
3728} with { variant "PRESENCE(bssgpPduType = '10'O)"; };
3729
3730// 10.3.12
3731type record PDU_BSSGP_PAGING_PS_REJECT
3732{
3733 OCT1 bssgpPduType,
3734 IMSI_BSSGP iMSI,
3735 TMSI_BSSGP pTMSI optional,
3736 Time_Until_Next_Paging_Occasion time_Until_Next_Paging_Occasion
3737} with { variant "PRESENCE(bssgpPduType = '11'O)"; };
3738
3739// 10.3.13
3740type record PDU_BSSGP_DUMMY_PAGING_PS
3741{
3742 OCT1 bssgpPduType,
3743 IMSI_BSSGP iMSI,
3744 Routeing_Area routeing_Area optional,
3745 EDRX_Parameters eDRX_Paremeters optional
3746} with { variant "PRESENCE(bssgpPduType = '12'O)"; };
3747
3748// 10.3.14
3749type record PDU_BSSGP_DUMMY_PAGING_PS_RESPONSE
3750{
3751 OCT1 bssgpPduType,
3752 IMSI_BSSGP iMSI,
3753 Time_Until_Next_Paging_Occasion time_Until_Next_Paging_Occasion
3754} with { variant "PRESENCE(bssgpPduType = '13'O)"; };
3755
3756// 10.3.15
3757type record PDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE
3758{
3759 OCT1 bssgpPduType,
3760 IMSI_BSSGP iMSI,
3761 PLMN_Identity pS_Registered_Operator optional
3762} with { variant "PRESENCE(bssgpPduType = '15'O)"; };
3763
3764// 10.3.15
3765type record PDU_BSSGP_MS_REGISTRATION_ENQUIRY
3766{
3767 OCT1 bssgpPduType,
3768 IMSI_BSSGP iMSI,
3769 MME_Query mME_Query optional
3770} with { variant "PRESENCE(bssgpPduType = '14'O)"; };
3771
3772// 10.4.1
3773type record PDU_BSSGP_FLUSH_LL
3774{
3775 OCT1 bssgpPduType,
3776 TLLI_BSSGP tLLI,
3777 BVCI bVCI_old,
3778 BVCI bVCI_new optional,
3779 NSEI_BSSGP nSEI optional
3780} with { variant "PRESENCE(bssgpPduType = '2A'O)"; };
3781
3782// 10.4.2
3783type record PDU_BSSGP_FLUSH_LL_ACK
3784{
3785 OCT1 bssgpPduType,
3786 TLLI_BSSGP tLLI,
3787 Flush_Action flush_Action,
3788 BVCI bVCI_new optional,
3789 Number_of_octets_affected number_of_octets_affected,
3790 NSEI_BSSGP nSEI optional
3791} with { variant "PRESENCE(bssgpPduType = '2B'O)"; };
3792
3793// 10.4.3
3794type record PDU_BSSGP_LLC_DISCARDED
3795{
3796 OCT1 bssgpPduType,
3797 TLLI_BSSGP tLLI,
3798 LLC_Frames_Discarded lLC_Frames_Discarded,
3799 BVCI bVCI,
3800 Number_of_octets_affected number_of_octets_deleted,
3801 PFI pFI optional
3802} with { variant "PRESENCE(bssgpPduType = '2C'O)"; };
3803
3804// 10.4.4
3805type record PDU_BSSGP_FLOW_CONTROL_BVC
3806{
3807 OCT1 bssgpPduType,
3808 Tag tag,
3809 BVC_Bucket_Size bVC_Bucket_Size,
3810 Bucket_Leak_Rate bucket_Leak_Rate,
3811 Bmax_default_MS bmax_default_MS,
3812 R_default_MS r_default_MS,
3813 Bucket_Full_Ratio bucket_Full_Ratio optional,
3814 BVC_Measurement bVC_Measurement optional,
3815 Flow_Control_Granularity flow_Control_Granularity optional
3816} with { variant "PRESENCE(bssgpPduType = '26'O)"; };
3817
3818// 10.4.5
3819type record PDU_BSSGP_FLOW_CONTROL_BVC_ACK
3820{
3821 OCT1 bssgpPduType,
3822 Tag tag
3823} with { variant "PRESENCE(bssgpPduType = '27'O)"; };
3824
3825// 10.4.6
3826type record PDU_BSSGP_FLOW_CONTROL_MS
3827{
3828 OCT1 bssgpPduType,
3829 TLLI_BSSGP tLLI,
3830 Tag tag,
3831 MS_Bucket_Size mS_Bucket_Size,
3832 Bucket_Leak_Rate bucket_Leak_Rate,
3833 Bucket_Full_Ratio bucket_Full_Ratio optional,
3834 Flow_Control_Granularity flow_Control_Granularity optional
3835} with { variant "PRESENCE(bssgpPduType = '28'O)"; };
3836
3837// 10.4.7
3838type record PDU_BSSGP_FLOW_CONTROL_MS_ACK
3839{
3840 OCT1 bssgpPduType,
3841 TLLI_BSSGP tLLI,
3842 Tag tag
3843} with { variant "PRESENCE(bssgpPduType = '29'O)"; };
3844
3845
3846// 10.4.8
3847type record PDU_BSSGP_BVC_BLOCK
3848{
3849 OCT1 bssgpPduType,
3850 BVCI bVCI,
3851 Cause_BSSGP cause
3852} with { variant "PRESENCE(bssgpPduType = '20'O)"; };
3853
3854// 10.4.9
3855type record PDU_BSSGP_BVC_BLOCK_ACK
3856{
3857 OCT1 bssgpPduType,
3858 BVCI bVCI
3859} with { variant "PRESENCE(bssgpPduType = '21'O)"; };
3860
3861// 10.4.10
3862type record PDU_BSSGP_BVC_UNBLOCK
3863{
3864 OCT1 bssgpPduType,
3865 BVCI bVCI
3866} with { variant "PRESENCE(bssgpPduType = '24'O)"; };
3867
3868// 10.4.11
3869type record PDU_BSSGP_BVC_UNBLOCK_ACK
3870{
3871 OCT1 bssgpPduType,
3872 BVCI bVCI
3873} with { variant "PRESENCE(bssgpPduType = '25'O)"; };
3874
3875// 10.4.12
3876type record PDU_BSSGP_BVC_RESET
3877{
3878 OCT1 bssgpPduType,
3879 BVCI bVCI,
3880 Cause_BSSGP cause,
3881 Cell_Identifier cell_Identifier optional,
3882 Feature_bitmap feature_bitmap optional,
3883 Extended_Feature_Bitmap extended_Feature_Bitmap optional
3884} with { variant "PRESENCE(bssgpPduType = '22'O)"; };
3885
3886// 10.4.13
3887type record PDU_BSSGP_BVC_RESET_ACK
3888{
3889 OCT1 bssgpPduType,
3890 BVCI bVCI,
3891 Cell_Identifier cell_Identifier optional,
3892 Feature_bitmap feature_bitmap optional,
3893 Extended_Feature_Bitmap extended_Feature_Bitmap optional
3894} with { variant "PRESENCE(bssgpPduType = '23'O)"; };
3895
3896// 10.4.14
3897type record PDU_BSSGP_STATUS
3898{
3899 OCT1 bssgpPduType,
3900 Cause_BSSGP cause,
3901 BVCI bVCI optional,
3902 PDU_in_Error pDU_in_Error optional
3903} with { variant "PRESENCE(bssgpPduType = '41'O)"; };
3904
3905// 10.4.15
3906type record PDU_BSSGP_SGSN_INVOKE_TRACE
3907{
3908 OCT1 bssgpPduType,
3909 Trace_Type_BSSGP traceType,
3910 Trace_Reference_BSSGP traceReference,
3911 Trigger_Id_BSSGP triggerId optional,
3912 Mobile_Id_BSSGP mobileId optional,
3913 OMC_Id_BSSGP omcId optional,
3914 TransactionId_BSSGP transactionId optional
3915} with { variant "PRESENCE(bssgpPduType = '40'O)"; };
3916
3917// 10.4.16
3918type record PDU_BSSGP_DOWNLOAD_BSS_PFC
3919{
3920 OCT1 bssgpPduType,
3921 TLLI_BSSGP tLLI,
3922 PFI pFI
3923} with { variant "PRESENCE(bssgpPduType = '50'O)"; };
3924
3925// 10.4.17
3926type record PDU_BSSGP_CREATE_BSS_PFC
3927{
3928 OCT1 bssgpPduType,
3929 TLLI_BSSGP tLLI,
3930 IMSI_BSSGP iMSI optional,
3931 PFI pFI,
3932 GPRS_Timer pFT,
3933 ABQP aBQP,
3934 Service_UTRAN_CCO service_UTRAN_CCO optional,
3935 MS_Radio_Access_Capability mS_Radio_Access_Capability optional,
3936 Priority_BSSGP allocation_Retention_Priority optional,
3937 GPRS_Timer t10 optional,
3938 Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info optional,
3939 E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional,
3940 Subscriber_Profile_ID_For_RAT_Priority subscriber_Profile_ID_For_RAT optional
3941
3942
3943} with { variant "PRESENCE(bssgpPduType = '51'O)"; };
3944
3945// 10.4.18
3946type record PDU_BSSGP_CREATE_BSS_PFC_ACK
3947{
3948 OCT1 bssgpPduType,
3949 TLLI_BSSGP tLLI,
3950 PFI pFI,
3951 ABQP aBQP,
3952 Cause_BSSGP cause optional
3953} with { variant "PRESENCE(bssgpPduType = '52'O)"; };
3954
3955// 10.4.19
3956type record PDU_BSSGP_CREATE_BSS_PFC_NACK
3957{
3958 OCT1 bssgpPduType,
3959 TLLI_BSSGP tLLI,
3960 PFI pFI,
3961 Cause_BSSGP cause
3962} with { variant "PRESENCE(bssgpPduType = '53'O)"; };
3963
3964// 10.4.20
3965type record PDU_BSSGP_MODIFY_BSS_PFC
3966{
3967 OCT1 bssgpPduType,
3968 TLLI_BSSGP tLLI,
3969 PFI pFI,
3970 ABQP aBQP
3971} with { variant "PRESENCE(bssgpPduType = '54'O)"; };
3972
3973// 10.4.21
3974type record PDU_BSSGP_MODIFY_BSS_PFC_ACK
3975{
3976 OCT1 bssgpPduType,
3977 TLLI_BSSGP tLLI,
3978 PFI pFI,
3979 GPRS_Timer pFT,
3980 ABQP aBQP
3981} with { variant "PRESENCE(bssgpPduType = '55'O)"; };
3982
3983// 10.4.22
3984type record PDU_BSSGP_DELETE_BSS_PFC
3985{
3986 OCT1 bssgpPduType,
3987 TLLI_BSSGP tLLI,
3988 PFI pFI
3989} with { variant "PRESENCE(bssgpPduType = '56'O)"; };
3990
3991// 10.4.23
3992type record PDU_BSSGP_DELETE_BSS_PFC_ACK
3993{
3994 OCT1 bssgpPduType,
3995 TLLI_BSSGP tLLI,
3996 PFI pFI
3997} with { variant "PRESENCE(bssgpPduType = '57'O)"; };
3998
3999// 10.4.24
4000type record PDU_BSSGP_FLOW_CONTROL_PFC
4001{
4002 OCT1 bssgpPduType,
4003 TLLI_BSSGP tLLI,
4004 Tag tag,
4005 MS_Bucket_Size mS_Bucket_Size optional,
4006 Bucket_Leak_Rate bucket_Leak_Rate optional,
4007 Bucket_Full_Ratio bucket_Full_Ratio optional,
4008 PFC_flow_control_parameters pFC_flow_control_parameters,
4009 Flow_Control_Granularity flow_Control_Granularity optional
4010
4011} with { variant "PRESENCE(bssgpPduType = '2D'O)"; };
4012
4013// 10.4.25
4014type record PDU_BSSGP_FLOW_CONTROL_PFC_ACK
4015{
4016 OCT1 bssgpPduType,
4017 TLLI_BSSGP tLLI,
4018 Tag tag
4019} with { variant "PRESENCE(bssgpPduType = '2E'O)"; };
4020
4021// 10.4.26
4022type record PDU_BSSGP_DELETE_BSS_PFC_REQ
4023{
4024 OCT1 bssgpPduType,
4025 TLLI_BSSGP tLLI,
4026 PFI pFI,
4027 Cause_BSSGP cause
4028} with { variant "PRESENCE(bssgpPduType = '58'O)"; };
4029
4030// 10.4.27
4031type record PDU_BSSGP_PS_HANDOVER_REQUIRED
4032{
4033 OCT1 bssgpPduType,
4034 TLLI_BSSGP tLLI,
4035 Cause_BSSGP cause,
4036 Cell_Identifier source_Cell_Identifier,
4037 Cell_or_RNC_Id_with_Transparent_Container_BSSGP
4038 cell_or_RNC_Id_with_Transparent_Container,
4039 Active_PFCs_List_BSSGP active_PFCs_List,
4040 ENB_Identifier target_ENB_Identifier optional,
4041 Reliable_Inter_RAT_Handover_Info
4042 reliable_Inter_RAT_Handover_Info optional,
4043 CSG_Identifier_TLV cSG_Identifier optional,
4044 Tracking_Area_Code_TLV tracking_Area_Code optional
4045 } with { variant "PRESENCE(bssgpPduType = '59'O)"; };
4046
4047
4048// 10.4.28
4049type record PDU_BSSGP_PS_HANDOVER_REQUIRED_ACK
4050{
4051 OCT1 bssgpPduType,
4052 TLLI_BSSGP tLLI,
4053 List_of_set_up_PFCs_BSSGP list_of_set_up_PFCs,
4054 Target_BSS_to_Source_BSS_Transparent_Container
4055 target_BSS_to_Source_BSS_Transparent_Container optional,
4056 Target_to_Source_Transparent_Container
4057 target_to_Source_Transparent_Container optional
4058} with { variant "PRESENCE(bssgpPduType = '5A'O)"; };
4059
4060
4061// 10.4.29
4062type record PDU_BSSGP_PS_HANDOVER_REQUIRED_NACK
4063{
4064 OCT1 bssgpPduType,
4065 TLLI_BSSGP tLLI,
4066 Cause_BSSGP cause
4067} with { variant "PRESENCE(bssgpPduType = '5B'O)"; };
4068
4069
4070// 10.4.30
4071type record PDU_BSSGP_PS_HANDOVER_REQUEST
4072{
4073 OCT1 bssgpPduType,
4074 TLLI_BSSGP tLLI,
4075 IMSI_BSSGP iMSI,
4076 Cause_BSSGP cause,
4077 Cell_Identifier source_Cell_Identifier optional,
4078 RNC_Identifier_BSSGP source_RNC_Identifier optional,
4079 Cell_Identifier target_Cell_Identifier optional, // it is mandatory
4080 Source_BSS_to_Target_BSS_Transparent_Container_BSSGP
4081 source_BSS_to_Target_BSS_Transparent_Container_BSSGP,
4082 PFCs_to_be_set_up_list pFCs_to_be_set_up_list,
4083 NAS_container_for_PS_Handover nAS_container_for_PS_Handover optional,
4084 Service_UTRAN_CCO service_UTRAN_CCO optional,
4085 Subscriber_Profile_ID_For_RAT_Priority
4086 subscriber_Profile_ID_For_RAT_Priority optional,
4087 Reliable_Inter_RAT_Handover_Info
4088 reliable_Inter_RAT_Handover_Info optional
4089} with { variant "PRESENCE(bssgpPduType = '5C'O)"; };
4090
4091
4092// 10.4.31
4093type record PDU_BSSGP_PS_HANDOVER_REQUEST_ACK
4094{
4095 OCT1 bssgpPduType,
4096 TLLI_BSSGP tLLI,
4097 List_of_set_up_PFCs_BSSGP list_of_set_up_PFCs,
4098 Target_BSS_to_Source_BSS_Transparent_Container
4099 target_BSS_to_Source_BSS_Transparent_Container
4100} with { variant "PRESENCE(bssgpPduType = '5D'O)"; };
4101
4102
4103// 10.4.32
4104type record PDU_BSSGP_PS_HANDOVER_REQUEST_NACK
4105{
4106 OCT1 bssgpPduType,
4107 TLLI_BSSGP tLLI,
4108 Cause_BSSGP cause
4109} with { variant "PRESENCE(bssgpPduType = '5E'O)"; };
4110
4111
4112// 10.4.33
4113type record PDU_BSSGP_PS_HANDOVER_COMPLETE
4114{
4115 OCT1 bssgpPduType,
4116 TLLI_BSSGP tLLI,
4117 IMSI_BSSGP iMSI,
4118 Cell_Identifier target_Cell_Identifier optional,
4119 Request_For_Inter_RAT_Handover_Info
4120 request_For_Inter_RAT_Handover_Info optional
4121} with { variant "PRESENCE(bssgpPduType = '91'O)"; };
4122
4123
4124// 10.4.34
4125type record PDU_BSSGP_PS_HANDOVER_CANCEL
4126{
4127 OCT1 bssgpPduType,
4128 TLLI_BSSGP tLLI,
4129 Cause_BSSGP cause,
4130 Cell_Identifier source_Cell_Identifier,
4131 Cell_Identifier target_Cell_Identifier optional,
4132 RNC_Identifier_BSSGP target_RNC_Identifier optional,
4133 ENB_Identifier target_Enb_Identifier optional
4134} with { variant "PRESENCE(bssgpPduType = '92'O)"; };
4135
4136// 10.4.35
4137type record PDU_BSSGP_PS_HANDOVER_COMPLETE_ACK
4138{
4139 OCT1 bssgpPduType,
4140 TLLI_BSSGP tLLI,
4141 Inter_RAT_Handover_Info_BSSGP inter_RAT_Handover_Info_BSSGP,
4142 E_UTRAN_Inter_RAT_Handover_Info e_UTRAN_Inter_RAT_Handover_Info optional
4143} with { variant "PRESENCE(bssgpPduType = '93'O)";};
4144
4145// 10.4.36
4146type record PDU_BSSGP_OVERLOAD
4147{
4148 OCT1 bssgpPduType,
4149 Priority_Class_Indicator priority_Class_Indicator
4150} with { variant "PRESENCE(bssgpPduType = '42'O)";};
4151
4152// 10.5.1
4153type record PDU_BSSGP_PERFORM_LOCATION_REQUEST
4154{
4155 OCT1 bssgpPduType,
4156 TLLI_BSSGP tLLI,
4157 IMSI_BSSGP iMSI,
4158 DRX_Parameters dRX_Parameters optional,
4159 BVCI bVCI,
4160 NSEI_BSSGP nSEI,
4161 Location_Type_BSSGP location_Type,
4162 Cell_Identifier cell_Identifier,
4163 LCS_Capability_BSSGP lCS_Capability optional,
4164 LCS_Priority_BSSGP lCS_Priority optional,
4165 LCS_QoS_BSSGP lCS_QoS optional,
4166 LCS_Client_Type_BSSGP lCS_Client_Type optional,
4167 Requested_GPS_Assistance_Data_BSSGP requested_GPS_Assistance_Data optional,
4168 IMEI_BSSGP iMEI optional,
4169 GANSS_Location_Type gANSS_Location_Type optional,
4170 Requested_GANSS_Assistance_Data requested_GANSS_Assistance_Data optional,
4171 EDRX_Parameters eDRX_Parameters optional
4172} with { variant "PRESENCE(bssgpPduType = '60'O)"; };
4173
4174
4175// 10.5.2
4176type record PDU_BSSGP_PERFORM_LOCATION_RESPONSE
4177{
4178 OCT1 bssgpPduType,
4179 TLLI_BSSGP tLLI,
4180 BVCI bVCI,
4181 Location_Estimate_BSSGP location_Estimate optional,
4182 Positioning_Data_BSSGP positioning_Data optional,
4183 Deciphering_Keys_BSSGP deciphering_Keys optional,
4184 LCS_Cause_BSSGP lCS_Cause optional,
4185 VelocityData velocityData optional,
4186 GANSS_Positioning_Data gANSS_Positioning_Data optional
4187} with { variant "PRESENCE(bssgpPduType = '61'O)"; };
4188
4189
4190// 10.5.3
4191type record PDU_BSSGP_PERFORM_LOCATION_ABORT
4192{
4193 OCT1 bssgpPduType,
4194 TLLI_BSSGP tLLI,
4195 BVCI bVCI,
4196 LCS_Cause_BSSGP lCS_Cause
4197} with { variant "PRESENCE(bssgpPduType = '62'O)"; };
4198
4199
4200// 10.5.4
4201type record PDU_BSSGP_POSITION_COMMAND
4202{
4203 OCT1 bssgpPduType,
4204 TLLI_BSSGP tLLI,
4205 BVCI bVCI,
4206 RRLP_Flags_BSSGP rRLP_Flags,
4207 RRLP_APDU_BSSGP rRLP_APDU
4208} with { variant "PRESENCE(bssgpPduType = '63'O)"; };
4209
4210
4211// 10.5.5
4212type record PDU_BSSGP_POSITION_RESPONSE
4213{
4214 OCT1 bssgpPduType,
4215 TLLI_BSSGP tLLI,
4216 BVCI bVCI,
4217 RRLP_Flags_BSSGP rRLP_Flags optional,
4218 RRLP_APDU_BSSGP rRLP_APDU optional,
4219 LCS_Cause_BSSGP lCS_Cause optional
4220} with { variant "PRESENCE(bssgpPduType = '64'O)"; };
4221
4222// 10.6.1
4223type record PDU_BSSGP_RAN_INFORMATION_REQUEST
4224{
4225 OCT1 bssgpPduType,
4226 RIM_Routing_Information destination_Cell_Identifier,
4227 RIM_Routing_Information source_Cell_Identifier,
4228 RAN_Information_Request_RIM_Container rIM_Container
4229} with { variant "PRESENCE(bssgpPduType = '71'O)"; };
4230
4231// 10.6.2
4232type record PDU_BSSGP_RAN_INFORMATION
4233{
4234 OCT1 bssgpPduType,
4235 RIM_Routing_Information destination_Cell_Identifier,
4236 RIM_Routing_Information source_Cell_Identifier,
4237 RAN_Information_RIM_Container rIM_Container
4238} with { variant "PRESENCE(bssgpPduType = '70'O)"; };
4239
4240// 10.6.3
4241type record PDU_BSSGP_RAN_INFORMATION_ACK
4242{
4243 OCT1 bssgpPduType,
4244 RIM_Routing_Information destination_Cell_Identifier,
4245 RIM_Routing_Information source_Cell_Identifier,
4246 RAN_Information_Ack_RIM_Container rIM_Container
4247} with { variant "PRESENCE(bssgpPduType = '72'O)"; };
4248
4249// 10.6.4
4250type record PDU_BSSGP_RAN_INFORMATION_ERROR
4251{
4252 OCT1 bssgpPduType,
4253 RIM_Routing_Information destination_Cell_Identifier,
4254 RIM_Routing_Information source_Cell_Identifier,
4255 RAN_Information_Error_RIM_Container rIM_Container
4256} with { variant "PRESENCE(bssgpPduType = '73'O)"; };
4257
4258// 10.6.5
4259type record PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
4260{
4261 OCT1 bssgpPduType,
4262 RIM_Routing_Information destination_Cell_Identifier,
4263 RIM_Routing_Information source_Cell_Identifier,
4264 RAN_Information_Application_Error_RIM_Container rIM_Container
4265} with { variant "PRESENCE(bssgpPduType = '74'O)"; };
4266
4267// 10.7.1
4268type record PDU_BSSGP_MBMS_SESSION_START_REQUEST
4269{
4270 OCT1 bssgpPduType,
4271 TMGI_BSSGP tMGI,
4272 MBMS_Session_Identity mBMS_Session_Identity optional,
4273 ABQP aBQP,
4274 MBMS_Service_Area_Identity_List mBMS_Service_Area_Identity_List,
4275 MBMS_Routing_Area_List mBMS_Routing_Area_List,
4276 MBMS_Session_Duration mBMS_Session_Duration,
4277 MBMS_Session_Information mBMS_Session_Information,
4278 Time_To_MBMS_Data_Transfer time_To_MBMS_Data_Transfer,
4279 Priority_BSSGP allocation_Retention_Priority optional,
4280 MBMS_Session_Repetition_Number mBMS_Session_Repetition_Number optional
4281} with { variant "PRESENCE(bssgpPduType = '80'O)"; };
4282
4283// 10.7.2
4284type record PDU_BSSGP_MBMS_SESSION_START_RESPONSE
4285{
4286 OCT1 bssgpPduType,
4287 TMGI_BSSGP tMGI,
4288 MBMS_Session_Identity mBMS_Session_Identity optional,
4289 MBMS_Response mBMS_Response
4290} with { variant "PRESENCE(bssgpPduType = '81'O)"; };
4291
4292// 10.7.3
4293type record PDU_BSSGP_MBMS_SESSION_STOP_REQUEST
4294{
4295 OCT1 bssgpPduType,
4296 TMGI_BSSGP tMGI,
4297 MBMS_Session_Identity mBMS_Session_Identity optional,
4298 MBMS_Stop_Cause mBMS_Stop_Cause
4299} with { variant "PRESENCE(bssgpPduType = '82'O)"; };
4300
4301// 10.7.4
4302type record PDU_BSSGP_MBMS_STOP_RESPONSE
4303{
4304 OCT1 bssgpPduType,
4305 TMGI_BSSGP tMGI,
4306 MBMS_Session_Identity mBMS_Session_Identity optional,
4307 MBMS_Response mBMS_Response
4308} with { variant "PRESENCE(bssgpPduType = '83'O)"; };
4309
4310
4311// 10.7.5
4312type record PDU_BSSGP_SESSION_UPDATE_REQUEST
4313{
4314 OCT1 bssgpPduType,
4315 TMGI_BSSGP tMGI,
4316 MBMS_Session_Identity mBMS_Session_Identity optional,
4317 ABQP aBQP,
4318 MBMS_Service_Area_Identity_List mBMS_Service_Area_Identity_List,
4319 MBMS_Routing_Area_List mBMS_Routing_Area_List,
4320 MBMS_Session_Duration mBMS_Session_Duration,
4321 MBMS_Session_Information mBMS_Session_Information,
4322 Time_To_MBMS_Data_Transfer time_To_MBMS_Data_Transfer,
4323 Priority_BSSGP allocation_Retention_Priority optional,
4324 MBMS_Session_Repetition_Number mBMS_Session_Repetition_Number optional
4325} with { variant "PRESENCE(bssgpPduType = '84'O)"; };
4326
4327
4328// 10.7.6
4329type record PDU_BSSGP_SESSION_UPDATE_RESPONSE
4330{
4331 OCT1 bssgpPduType,
4332 TMGI_BSSGP tMGI,
4333 MBMS_Session_Identity mBMS_Session_Identity optional,
4334 MBMS_Response mBMS_Response
4335} with { variant "PRESENCE(bssgpPduType = '85'O)"; };
4336
4337
4338
4339type union PDU_BSSGP
4340{
4341
4342 PDU_BSSGP_DL_UNITDATA pDU_BSSGP_DL_UNITDATA,
4343 PDU_BSSGP_UL_UNITDATA pDU_BSSGP_UL_UNITDATA,
4344 PDU_BSSGP_RA_CAPABILITY pDU_BSSGP_RA_CAPABILITY,
4345 PDU_BSSGP_DL_MBMS_UNITDATA pDU_BSSGP_DL_MBMS_UNITDATA,
4346 PDU_BSSGP_UL_MBMS_UNITDATA pDU_BSSGP_UL_MBMS_UNITDATA,
4347 PDU_BSSGP_PAGING_PS pDU_BSSGP_PAGING_PS,
4348 PDU_BSSGP_PAGING_CS pDU_BSSGP_PAGING_CS,
4349 PDU_BSSGP_RA_CAPABILITY_UPDATE pDU_BSSGP_RA_CAPABILITY_UPDATE,
4350 PDU_BSSGP_RA_CAPABILITY_UPDATE_ACK pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK,
4351 PDU_BSSGP_RADIO_STATUS pDU_BSSGP_RADIO_STATUS,
4352 PDU_BSSGP_SUSPEND pDU_BSSGP_SUSPEND,
4353 PDU_BSSGP_SUSPEND_ACK pDU_BSSGP_SUSPEND_ACK,
4354 PDU_BSSGP_SUSPEND_NACK pDU_BSSGP_SUSPEND_NACK,
4355 PDU_BSSGP_RESUME pDU_BSSGP_RESUME,
4356 PDU_BSSGP_RESUME_ACK pDU_BSSGP_RESUME_ACK,
4357 PDU_BSSGP_RESUME_NACK pDU_BSSGP_RESUME_NACK,
4358 PDU_BSSGP_PAGING_PS_REJECT pDU_BSSGP_PAGING_PS_REJECT,
4359 PDU_BSSGP_DUMMY_PAGING_PS pDU_BSSGP_DUMMY_PAGING_PS,
4360 PDU_BSSGP_DUMMY_PAGING_PS_RESPONSE pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE,
4361 PDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE,
4362 PDU_BSSGP_MS_REGISTRATION_ENQUIRY pDU_BSSGP_MS_REGISTRATION_ENQUIRY,
4363 PDU_BSSGP_FLUSH_LL pDU_BSSGP_FLUSH_LL,
4364 PDU_BSSGP_FLUSH_LL_ACK pDU_BSSGP_FLUSH_LL_ACK,
4365 PDU_BSSGP_LLC_DISCARDED pDU_BSSGP_LLC_DISCARDED,
4366 PDU_BSSGP_FLOW_CONTROL_BVC pDU_BSSGP_FLOW_CONTROL_BVC,
4367 PDU_BSSGP_FLOW_CONTROL_BVC_ACK pDU_BSSGP_FLOW_CONTROL_BVC_ACK,
4368 PDU_BSSGP_FLOW_CONTROL_MS pDU_BSSGP_FLOW_CONTROL_MS,
4369 PDU_BSSGP_FLOW_CONTROL_MS_ACK pDU_BSSGP_FLOW_CONTROL_MS_ACK,
4370 PDU_BSSGP_FLOW_CONTROL_PFC pDU_BSSGP_FLOW_CONTROL_PFC,
4371 PDU_BSSGP_FLOW_CONTROL_PFC_ACK pDU_BSSGP_FLOW_CONTROL_PFC_ACK,
4372 PDU_BSSGP_STATUS pDU_BSSGP_STATUS,
4373 PDU_BSSGP_BVC_BLOCK pDU_BSSGP_BVC_BLOCK,
4374 PDU_BSSGP_BVC_BLOCK_ACK pDU_BSSGP_BVC_BLOCK_ACK,
4375 PDU_BSSGP_BVC_UNBLOCK pDU_BSSGP_BVC_UNBLOCK,
4376 PDU_BSSGP_BVC_UNBLOCK_ACK pDU_BSSGP_BVC_UNBLOCK_ACK,
4377 PDU_BSSGP_BVC_RESET pDU_BSSGP_BVC_RESET,
4378 PDU_BSSGP_BVC_RESET_ACK pDU_BSSGP_BVC_RESET_ACK,
4379 PDU_BSSGP_SGSN_INVOKE_TRACE pDU_BSSGP_SGSN_INVOKE_TRACE,
4380 PDU_BSSGP_DOWNLOAD_BSS_PFC pDU_BSSGP_DOWNLOAD_BSS_PFC,
4381 PDU_BSSGP_CREATE_BSS_PFC pDU_BSSGP_CREATE_BSS_PFC,
4382 PDU_BSSGP_CREATE_BSS_PFC_ACK pDU_BSSGP_CREATE_BSS_PFC_ACK,
4383 PDU_BSSGP_CREATE_BSS_PFC_NACK pDU_BSSGP_CREATE_BSS_PFC_NACK,
4384 PDU_BSSGP_MODIFY_BSS_PFC pDU_BSSGP_MODIFY_BSS_PFC,
4385 PDU_BSSGP_MODIFY_BSS_PFC_ACK pDU_BSSGP_MODIFY_BSS_PFC_ACK,
4386 PDU_BSSGP_DELETE_BSS_PFC pDU_BSSGP_DELETE_BSS_PFC,
4387 PDU_BSSGP_DELETE_BSS_PFC_ACK pDU_BSSGP_DELETE_BSS_PFC_ACK,
4388 PDU_BSSGP_DELETE_BSS_PFC_REQ pDU_BSSGP_DELETE_BSS_PFC_REQ,
4389 PDU_BSSGP_PS_HANDOVER_REQUIRED pDU_BSSGP_PS_HANDOVER_REQUIRED,
4390 PDU_BSSGP_PS_HANDOVER_REQUIRED_ACK pDU_BSSGP_PS_HANDOVER_REQUIRED_ACK,
4391 PDU_BSSGP_PS_HANDOVER_REQUIRED_NACK pDU_BSSGP_PS_HANDOVER_REQUIRED_NACK,
4392 PDU_BSSGP_PS_HANDOVER_REQUEST pDU_BSSGP_PS_HANDOVER_REQUEST,
4393 PDU_BSSGP_PS_HANDOVER_REQUEST_ACK pDU_BSSGP_PS_HANDOVER_REQUEST_ACK,
4394 PDU_BSSGP_PS_HANDOVER_REQUEST_NACK pDU_BSSGP_PS_HANDOVER_REQUEST_NACK,
4395 PDU_BSSGP_PS_HANDOVER_COMPLETE pDU_BSSGP_PS_HANDOVER_COMPLETE,
4396 PDU_BSSGP_PS_HANDOVER_COMPLETE_ACK pDU_BSSGP_PS_HANDOVER_COMPLETE_ACK,
4397 PDU_BSSGP_PS_HANDOVER_CANCEL pDU_BSSGP_PS_HANDOVER_CANCEL,
4398 PDU_BSSGP_OVERLOAD pDU_BSSGP_OVERLOAD,
4399 PDU_BSSGP_PERFORM_LOCATION_REQUEST pDU_BSSGP_PERFORM_LOCATION_REQUEST,
4400 PDU_BSSGP_PERFORM_LOCATION_RESPONSE pDU_BSSGP_PERFORM_LOCATION_RESPONSE,
4401 PDU_BSSGP_PERFORM_LOCATION_ABORT pDU_BSSGP_PERFORM_LOCATION_ABORT,
4402 PDU_BSSGP_POSITION_COMMAND pDU_BSSGP_POSITION_COMMAND,
4403 PDU_BSSGP_POSITION_RESPONSE pDU_BSSGP_POSITION_RESPONSE,
4404 PDU_BSSGP_RAN_INFORMATION pDU_BSSGP_RAN_INFORMATION,
4405 PDU_BSSGP_RAN_INFORMATION_REQUEST pDU_BSSGP_RAN_INFORMATION_REQUEST,
4406 PDU_BSSGP_RAN_INFORMATION_ACK pDU_BSSGP_RAN_INFORMATION_ACK,
4407 PDU_BSSGP_RAN_INFORMATION_ERROR pDU_BSSGP_RAN_INFORMATION_ERROR,
4408 PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
4409 pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR,
4410 PDU_BSSGP_MBMS_SESSION_START_REQUEST pDU_BSSGP_MBMS_SESSION_START_REQUEST,
4411 PDU_BSSGP_MBMS_SESSION_START_RESPONSE pDU_BSSGP_MBMS_SESSION_START_RESPONSE,
4412 PDU_BSSGP_MBMS_SESSION_STOP_REQUEST pDU_BSSGP_MBMS_SESSION_STOP_REQUEST,
4413 PDU_BSSGP_MBMS_STOP_RESPONSE pDU_BSSGP_MBMS_STOP_RESPONSE,
4414 PDU_BSSGP_SESSION_UPDATE_REQUEST pDU_BSSGP_SESSION_UPDATE_REQUEST,
4415 PDU_BSSGP_SESSION_UPDATE_RESPONSE pDU_BSSGP_SESSION_UPDATE_RESPONSE,
4416 octetstring pDU_BSSGP_unknown
4417} with { variant "" };
4418
4419} with {encode "RAW"} // end of module