summaryrefslogtreecommitdiffstats
path: root/MobileL3_v13.4.0_CNL113832_LATEST/src/MobileL3_CommonIE_Types.ttcn
blob: 9d890281e3130f65a79b47bc2f67da7c70f8c177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Copyright Test Competence Center (TCC) ETH 2016                           //
//                                                                           //
// The copyright to the computer  program(s) herein  is the property of TCC. //
// The program(s) may be used and/or copied only with the written permission //
// of TCC or in accordance with  the terms and conditions  stipulated in the //
// agreement/contract under which the program(s) has been supplied.          //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
//
//  File:               MobileL3_CommonIE_Types.ttcn
//  Rev:                R1B
//  Prodnr:             CNL 113 832
//  Contact:            http://ttcn.ericsson.se
//  Reference:          3GPP TS 24.008 v13.4.0

module  MobileL3_CommonIE_Types {

import from General_Types all;

// This type is a container for all necessary MS related parameters
type record MS_parameters
{
  integer       imsi_length,  //in
  BIT4          imsi_firstdigit,
  octetstring   imsi,
  octetstring   number,
  integer       SCCP_connId, //connection Id of currently used SCCP connection
  integer       L3_NSD,  // actual value of L3 NSD
  BIT1          tiFlag   // '0'B for call originator, '1' for call destination
  // this is an example how to set the value
  // tsp_imsi_1_firstdigit := '0010'B
  // tsp_imsi_1 :=  '26200103000015'O;   // '262021030000051'O;
  // tsp_calledPartyBCD_Number_digits := '7112300020'O  ;   // '1721030002'O
}

// Use these Types instead of repeating it !

type record Type1_V
{
  BIT4  dummy,
  BIT4  valuePart
};

type record Type1_TV
{
  BIT4  valuePart,
  BIT4  elementIdentifier
};

type record Type2
{
  OCT1  elementIdentifier
};

type record Type3_V
{
  OCTN  valuePart
};

type record Type3_TV
{
  OCT1  elementIdentifier,
  OCTN  valuePart
};

type record Type4_LV
{
  LIN1  lengthIndicator,
  OCTN  valuePart
} with { variant (lengthIndicator) "LENGTHTO (valuePart)"};

type record Type4_TLV
{
  OCT1  elementIdentifier,
  LIN1  lengthIndicator,
  OCTN  valuePart
} with { variant (lengthIndicator) "LENGTHTO (valuePart)"};

///////////////////////////////////////
//   IE Type definitions
///////////////////////////////////////

type record ML3_NotifySS_Arg
{
  OCT1  sequenceTag,
  OCT1  sequenceLength,
  OCT1  ssCodeTag,
  OCT1  ssCodeLength,
  OCT1  ssCodeValue,
  OCT1  ssIndicatorTag,
  OCT1  ssIndicatorLength,
  OCT1  ssIndicatorValue
};


//============================================================================
// 10.5.1 Common Information elements
//============================================================================

// 10.5.1.1 Cell Identity
type record CellIdentity
{
  OCT1  elementIdentifier,
  OCT2  cIvalue
};

// 10.5.1.2 CipheringKeySequenceNumber
type record CipheringKeySequenceNumberTV
{
  CipheringKeySequenceNumberV  keySequence,
  BIT4                         elementIdentifier
} with { variant "PRESENCE (elementIdentifier = '1000'B)"; };

type record CipheringKeySequenceNumberV
{
  BIT3               keySequence,
  BIT1               spare
};

//24.008/10.5.1.3 Location Area Identification
type record LocationAreaIdentification_V
{
  OCT3  mcc_mnc,
  OCT2  lac
};

type record LocationAreaIdentification_TV
{
  OCT1  elementIdentifier,
  OCT3  mcc_mnc,
  OCT2  lac
};

// 24.008/ 10.5.1.4 Mobile Identity
type record MobileIdentityTLV
{
  BIT7               elementIdentifier,
  BIT1               spare1,
  MobileIdentityLV   mobileIdentityLV
};

type record MobileIdentityLV
{
  LIN1               lengthIndicator,
  MobileIdentityV    mobileIdentityV
} with { variant (lengthIndicator) "LENGTHTO (mobileIdentityV)"};

type record MobileIdentityV
{
  BIT3                         typeOfIdentity,
  OddEvenInd_Identity          oddEvenInd_identity
} with { variant (oddEvenInd_identity) "CROSSTAG
  (
  imei,                     typeOfIdentity ='010'B;
  imsi,                     typeOfIdentity ='001'B;
  imei_sv,                  typeOfIdentity ='011'B;
  tmsi_ptmsi,               typeOfIdentity ='100'B;
  tmgi_and_MBMS_SessionID,  typeOfIdentity ='101'B;
  no_identity,              typeOfIdentity ='000'B;
  )"};


type union OddEvenInd_Identity
{
  IMSI_L3                  imsi,  // avoid name conflict with RANAP
  IMEI_L3                  imei,     // avoid name conflict with RANAP
  IMEI_SV                  imei_sv,
  TMSI_PTMSI               tmsi_ptmsi,
  TMGI_and_MBMS_SessionID  tmgi_and_MBMS_SessionID,
  No_Identity              no_identity
};

type record IMSI_L3
{
  BIT1               oddevenIndicator,       // '1'B or '0'B
  hexstring          digits  length(5..15),
  BIT4               fillerDigit  optional   // B'1111, fillerDigit is present
  // if oddevenIndicator=0
} with { variant (fillerDigit) "PRESENCE (oddevenIndicator   = '0'B) ";};

type record IMEI_L3
{
  BIT1               oddevenIndicator,   // '1'B
  hexstring          digits  length(15)
};

type record TMSI_PTMSI
{
  BIT1               oddevenIndicator, // '0'B
  BIT4               fillerDigit, // B'1111
  OCT4               octets
};

type record IMEI_SV
{
  BIT1               oddevenIndicator,  // '0'B
  hexstring          digits length(16),
  BIT4               fillerDigit    // filler '1111'B
};

type record TMGI_and_MBMS_SessionID
{
  BIT1               oddevenIndicator,
  BIT1               mCC_MNCIndicator,  // 1: present
  BIT1               mBMS_SessionIdentityIndicator,  // 1: present
  BIT2               spare,
  OCT3               mBMS_ServiceID,
  HEX1               mccDigit1,
  HEX1               mccDigit2,
  HEX1               mccDigit3,
  HEX1               mncDigit3,
  HEX1               mncDigit1,
  HEX1               mncDigit2,
  OCT1               mBMS_SessionIdentity
}

type record No_Identity
{
  BIT1               oddevenIndicator,  // '0'B (guessed)
  hexstring          fillerDigits length(5) // length to be "3" if the GMM identification procedure is used
};

// 24.008/ 10.5.1.5 MobileStationClassmark1
type record MobileStationClassmark1_TV
{
  OCT1   elementIdentifier, //'???'H
  BIT3   rf_PowerCapability,
  BIT1   a5_1,
  BIT1   esind,
  BIT2   revisionLevel,
  BIT1   spare1_1
};

type record MobileStationClassmark1_V
{
  BIT3  rf_PowerCapability,
  // class1 (000) (for GSM+DCS+PCS)
  // class2 (001) (for GSM+DCS+PCS)
  // class3 (010) (for GSM+DCS+PCS)
  // class4 (011) (only for GSM)
  // class5 (100) (only for GSM)
  BIT1  a5_1,
  // encryption algor. A5/available  1  (1)
  // encryption algor. A5/1 available  not  (0)
  BIT1  esind,
  BIT2  revisionLevel,
  BIT1  spare1_1
};

// 24.008/ 10.5.1.6 MobileStationClassmark2
//4th octet:
type record MobileStationClassmark2_oct4
{
  BIT1  fc, // '0'B no MS support of E/R_GSM
  // '1'B      MS support of E/R_GSM
  ////BIT2  spare1_2, // '00'B  removed by ethbaat
  BIT1  vgcs,//'0'B no VGCS capability
  //'1'B  VGCS capability and notifications wanted
  BIT1  vbs, //'0'B no VBS capability,
  //  '1'B VBS capability and notifications wanted
  BIT1  sm_Capability, // '0'B SM capbility present  not
  // '1'B SM capbility        present
  BIT2 ss_ScreenIndicator,
  // '00'B default value of phase1 (GSM+DCS) reserved or (PCS)
  // '01'B capability of notation  ellipsis
  // '10'B for future use
  // '11'B for use  future
  BIT1  ps_Capability, // 'x'B  ignored, received  if
  BIT1  spare2_1   // '0'B
};


//5th octet ( Table 10.5.6a ):
type record MobileStationClassmark2_oct5
{
  BIT1  a5_2,     // '0'B encryption algorithm A5/2 available not(0)
  // '1'B encryption algorithm A5/available  2  (1)
  BIT1  a5_3,     // '0'B encryption algorithm A5/3 available not(0)
  // '1'B encryption algorithm A5/available  3  (1)
  //removed by ethbaat: BIT5  spare3_5, //   '00000'B
  BIT1  cmsp,
  BIT1  solsa,
  BIT1  ucs2,
  BIT1  lcsva_cap,
  BIT1  spare5_7,
  BIT1  cm3       // '0'B  no additional capability info
  // '1'B The MS supports options that are indicated in classmark 3 IE
  //      (additional info  capability)
};

type record MobileStationClassmark2_LV
{
  LIN1  lengthIndicator, // '01'O..'03'O
  BIT3  rf_PowerCapability, //        '000'B class1 (for GSM+DCS+PCS)
  //        '001'B class2 (for GSM+DCS+PCS)
  //        '010'B class3 (for GSM+DCS+PCS)
  //        '011'class4  B  (only for GSM)
  //        '100'class5  B  (only for GSM)
  BIT1  a5_1, // '0'B encryption algorithm A5/1 available (0)
  // '1'B encryption algorithm A5/1 not available  1  (1)
  BIT1  esind,
  // '0'B controlled early classmark sending option implemented not (0)
  // '1'B controlled early classmark sending implemented option (1)
  BIT2  revisionLevel, //   '00'B reserved for phase1 (GSM+DCS)
  //   '00'B reserved for GSM phase 1 (PCS)
  //   '01'B used by phase2 MSs  (GSM+DCS)
  //   '01'B used by PCS1900 MSs  phase1  (PCS)
  //   '10'B used by  MSs  R99  supporting
  //   '11'B reserved for future use
  BIT1  spare1_1, // '0'B
  MobileStationClassmark2_oct4  mobileStationClassmark2_oct4    optional,
  MobileStationClassmark2_oct5  mobileStationClassmark2_oct5    optional
} with { variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1, esind,
  revisionLevel, spare1_1,
  mobileStationClassmark2_oct4,
  mobileStationClassmark2_oct5)"};

type record MobileStationClassmark2_TLV
{
  OCT1                        elementIdentifier,
  MobileStationClassmark2_LV  mobileStationClassmark2LV
} with {
  variant "PRESENCE (elementIdentifier = '11'O)";
};



//**********************************************************************
// 24.008/ 10.5.1.6 5th octet ( Table 10.5.6a ):
// almost the same as MobileStationClassmark2_LV, but
// _TLV ie elementIdentifier is present
// oct4 and oct5 is mandatory
// The record name is inherited from (and used in) old test cases
//**********************************************************************
type record ClassmarkInformationType2_forUMTS
{
  OCT1  elementIdentifier,
  //'33'O instead of '12'O (normal Classmark2)
  LIN1  lengthIndicator,
  //always '03'O (unlike normal ClassMark2, which can be 2 or 3)
  BIT3  rf_PowerCapability,   //  '000'B class1 (for GSM+DCS+PCS)
  //      '001'B class2 (for GSM+DCS+PCS)
  //      '010'B class3 (for GSM+DCS+PCS)
  //      '011'class4  B  (only for GSM)
  //      '100'class5  B  (only for GSM)
  BIT1  a5_1, //  '0'B encryption algorithm A5/1 available not (0)
  //  '1'B encryption algorithm A5/available  1  (1)
  BIT1  esind,
  //'0'B controlled early classmark sending option implemented not (0)
  //  '1'B controlled early classmark sending implemented  option  (1)
  BIT2  revisionLevel, //  '00'B reserved for phase1 (GSM+DCS)
  //  '00'reserved  B  (PCS)
  //  '01'B used by phase2 MSs  (GSM+DCS)
  //  '01'B used by PCS1900 MSs  phase1  (PCS)
  BIT1  spare1_1, // '0'B
  BIT1  fc, //         '0'B  no MS' support of E/R_GSM
  //   '1'B       MS' support of E/R_GSM
  BIT1  vgcs,//'0'B no VGCS capability
  //'1'B  VGCS capability and notifications wanted
  BIT1  vbs, //'0'B no VBS capability,
  //  '1'B VBS capability and notifications wanted
  BIT1  sm_Capability, //     '0'B SM capbility present  not
  // '1'B SM capability     present
  BIT2  ss_ScreenIndicator, //  '00'B default value of phase1 (GSM+DCS)
  //  '00'reserved  B  (PCS)
  //  '01'B capability of notation  ellipsis
  //  '10'B for future use
  //  '11'B for use  future
  BIT1  ps_Capability, // '0'B or '1'B ignored, received  if
  BIT1  spare2_1,  // '0'B,
  BIT1  a5_2, // '0'B encryption algorithm A5/2 available  not  (0)
  // '1'B encryption algorithm A5/available  2  (1)
  BIT1  a5_3, // '0'B encryption algorithm A5/3 available  not  (0)
  // '1'B encryption algorithm A5/available  3  (1)
  //BIT5  spare3_5, // '00000'B
  BIT1  cmsp,
  BIT1  solsa,
  BIT1  ucs2,
  BIT1  lcsva_cap,
  BIT1  spare5_7,
  BIT1  cm3   // '0'B no additional capability info
  // '1'B   additional info  capability
} with { variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1, esind,
  revisionLevel, spare1_1, fc, vgcs, vbs,
  sm_Capability, ss_ScreenIndicator,
  ps_Capability, spare2_1, a5_2, a5_3,
  //spare3_5,
  cmsp,solsa,ucs2,lcsva_cap,spare5_7,
  cm3)"};



//24.008/ 10.5.1.7
type record MobileStationClassmark3_TLV
{
  OCT1  elementIdentifier,
  LIN1  lengthIndicator,
  OCTN  valuePart
} with {
  variant "PRESENCE (elementIdentifier = '20'O)"
  variant (lengthIndicator) "LENGTHTO (valuePart)"
};


type record MobileStationClassmark3_LV
{
  LIN1  lengthIndicator,
  OCTN  valuePart
} with { variant (lengthIndicator) "LENGTHTO (valuePart)"};
// used in: PDU_ML3_Setup_MSC_MS, PDU_ML3_CallProceeding,
//          PDU_ML3_CMServiceRequest

type record UTRACSGCellsReporting
{
  BIT1                  reportingofUTRANCSGCellsSupport
} with {
  variant "FIELDORDER(msb)"
}

type record VAMOSLevel
{
  BIT2                  vAMOSSupport
} with {
  variant "FIELDORDER(msb)"
}

//24.008/ 10.5.1.8 Spare half octet ---- not used

//24.008/ 10.5.1.9 Descriptive group or broadcast call reference
type record DescriptiveGroupOrBroadcastCallReference_V
{
  bitstring         binaryCodingOfGroupOrBroadcastCallReference length (27),
  BIT1              sF,
  BIT1              aF,
  BIT3              callPriority,
  BIT4              cipheringInformation,
  BIT4              spare
} with {  variant (binaryCodingOfGroupOrBroadcastCallReference,sF,aF,
    callPriority,cipheringInformation,spare)  "FIELDORDER(msb)"};

//10.5.1.10 Group Cipher Key Number
type record groupCipherKeyNumber_TV
{
  BIT4 valuePart,
  BIT4 elementIdentifier
};

type BIT4 groupCipherKeyNumber_V;


//24.008/10.5.1.10a
type record PdAndSapi
{
  BIT4 protocolDiscriminator,
  BIT2 sapi,
  BIT2 spare2
};

//10.5.1.11 Priority Level
type record PriorityLevel_ML3
{
  BIT3  callPriority, // B'...._000 no applied  priority
  // B'...._001 call priority level 4
  // B'...._010 call priority level 3
  // B'...._011 call priority level 2
  // B'...._100 call priority level 1
  // B'...._101 call priority level 0
  // B'...._110 call priority level B
  // B'...._111 call priority level A
  BIT1  spare1_1,      // B'....0.._
  // modified by ethbaat:OCT1  elementIdentifier for...
  BIT4  elementIdentifier       // B'1000' type 1 IEI Priority level
};
//ending "_ML3" added, because ambiguities of (RANAP is also using this name)


//10.5.1.12 Core Network System Information
// not implemented yet

//10.5.1.13 PLMN List
type record PLMNListTLV
{
  BIT7               elementIdentifier,
  BIT1               spare1,
  LIN1               lengthIndicator,
  octetstring        digits  length(3..45) // collapsed into one octetstring
  // instead of digits
} with { variant "PRESENCE (elementIdentifier = '1001010'B)";
  variant (lengthIndicator) "LENGTHTO (digits)"};
  
//10.5.1.15
type record MS_NetworkFeatureSupportTV
{
  BIT1      extendedPeriodicTimers,
  BIT3      spare,
  BIT4      elementIdentifier
}

// GPRS Timer3 - 10.5.7.4a
type record GPRSTimer3TLV
{
  OCT1               elementIdentifier,
  LIN1               lengthIndicator,
  GPRSTimer3V        gprsTimer3V
} with { 
   variant (lengthIndicator) "LENGTHTO (gprsTimer3V)"
}; 

type record GPRSTimer3V
{
  BIT5               timerValue,
  BIT3               unit
};

//****************************************************************************
// Common elements in CC and SS:
//****************************************************************************

//24.008/10.5.4.11 Cause
type record Diagnostics
{
  octetstring data   // to split into pieces????
} with { variant "EXTENSION_BIT (yes)"};

// This type is added for handling extension bit in octet 3 of Cause IE
type record ML3_Cause_oct3
{
  BIT4  location,   //      '0000'user  B
  //      '0001'B private network, local user
  //      '0010'B public  network, user  local
  //      '0011'B transit network
  //      '0100'B public  network, user  remote
  //      '0101'B private network, remote user
  //      '0111'B network  international
  //      '1010'B Network beyond interworking pt.
  BIT1  spare1_1, //     '0'B
  BIT2  codingStandard, // '00'B coding according Q.931
  // '01'B reserved for standards  other
  // '10'B National standard
  // '11'B standard  other  (e.g. one defined for GSM PLMNs)
  BIT1  ext1, // '0'B or '1'B
  //octet3a:
  BIT7  recommendation  optional,
  BIT1  ext2            optional // B'1......
} with { variant "EXTENSION_BIT (yes)"};

type record ML3_Cause_oct4
{
  BIT7  causeValue, // see 12/FS
  BIT1  ext3 // B'1......
} with { variant "EXTENSION_BIT (yes)"};

type record ML3_Cause_LV
{
  LIN1  lengthIndicator, // 2..30
  ML3_Cause_oct3 oct3,
  ML3_Cause_oct4 oct4,
  Diagnostics  diagnostics  optional  // size: 1..27
} with { variant (lengthIndicator) "LENGTHTO (oct3, oct4, diagnostics) "};

//24.008/10.5.4.11
type record ML3_Cause_TLV
{
  OCT1   elementIdentifier,
  LIN1  lengthIndicator, // 2..30
  ML3_Cause_oct3 oct3,
  ML3_Cause_oct4 oct4,
  Diagnostics  diagnostics  optional  // size: 1..27
} with { variant (lengthIndicator) "LENGTHTO (oct3, oct4, diagnostics) "};

//10.5.4.15 Facility IE (see also 24.080/3.6)
type record Facility_TLV
{
  OCT1  elementIdentifier, // H'1C
  LIN1  lengthIndicator, // 0..?
  OCTN  facilityInformation  optional //see 24.080/3.6
} with { variant (lengthIndicator) "LENGTHTO (facilityInformation)"};

type record Facility_LV
{
  LIN1  lengthIndicator, // 0..?
  OCTN  facilityInformation  optional  //see 24.080/3.6
} with { variant (lengthIndicator) "LENGTHTO (facilityInformation)"};

//24.008/10.5.4.24 SS Version Indicator
// used by SS and CC
type record SS_VersionIndicator
{
  OCT1  elementIdentifier, // H'7F
  LIN1  lengthIndicator, // 0..?
  OCTN  ss_VersionIndicatorContents  optional //see 24.080 !!!
} with { variant (lengthIndicator) "LENGTHTO (ss_VersionIndicatorContents)"};

//10.5.4.32 Supported Codec List
type record codec
{
  OCT1  systemIdentification1,
  OCT1  lengthOfBitmap1,
  OCT1  codecBitmap1_bits1to8,
  OCT1  codecBitmap1_bits9to16
}; 

type record of codec CodecList_ML3; 

type record SupportedCodecList
{
  OCT1            elementIdentifier,
  LIN1            lengthIndicator, //  
  CodecList_ML3   codecList 
} with {
  variant "PRESENCE (elementIdentifier = '40'O)";
  variant (lengthIndicator) "LENGTHTO( codecList )"
};

// 10.5.7.8
type record DevicePropertiesTV
{  
  BIT1               lowPriority,
  BIT3               spare,
  BIT4               elementIdentifier
}

//****************************************************************************
// Common elements in GMM and MM:
//****************************************************************************
// 10.5.5.8a - P-TMSI Signature 2
type record P_TMSISignature2TLV
{
  OCT1               elementIdentifier,
  LIN1               lengthIndicator,
  OCT3               valueField
} with {
  variant "PRESENCE (elementIdentifier = '19'O)";
  variant (lengthIndicator) "LENGTHTO (valueField)"
};

// 10.5.5.29 - P-TMSI Type
type record P_TMSI_TypeTV
{
  BIT1     pTMSI_TypeValue,
  BIT3     spare,
  BIT4     elementIdentifier
} with { variant "PRESENCE (elementIdentifier = '1110'B)" }; 

//10.5.5.15a - Routing Area Identification
type record RoutingAreaIdentification2TLV
{
  OCT1               elementIdentifier,
  LIN1               lengthIndicator,
  OCT6               routingAreaIdentification2
} with {
  variant "PRESENCE (elementIdentifier = '1B'O)";
  variant (lengthIndicator) "LENGTHTO (routingAreaIdentification2)"
};


//****************************************************************************
// Common elements in RRM and MM:
//****************************************************************************

//10.5.3.14 Additional Update Parameter
type record AdditionalUpdateParameterTV
{
  BIT1               cSMT,
  BIT1               cSMO,
  BIT1               spare2,
  BIT1               spare3,
  BIT4               elementIdentifier
} with {
  variant "PRESENCE (elementIdentifier = '1100'B)"
}

}//end of module
with {
extension "version R1B"
encode "RAW"
}